su -l
모든 로그인 셸 파일을 읽지만 현재 있는 디렉터리를 변경하지 않는 유사한 기능을 실행하는 방법이 있습니까 ?
어떤 이유에서인지 Slackware Linux 패키지를 만들려고 합니다. 대부분 의 경우 su
.sbcl
TeX
su -l
su
내가 ~/opt/haskell-stack-slackbuild
.
$ pwd
/home/<user>/opt/haskell-stack-slackbuild
방금 실행하면 su
동일한 디렉터리로 돌아가지만, 실행하면 su -l
현재 있는 곳으로 이동하여 /root
작업 중이던 디렉터리로 다시 이동해야 합니다.
$ su -l
# pwd
/root
답변1
.profile
루트 셸에서 루트 소스 코드를 실행한 후 직접 루트 소스 코드를 가져오면 어떨까요 ?
$ su
Password:
# . ~root/.profile
#
물론, 루트 셸의 어디에서나 스크립트를 가져와 필요한 방식으로 루트 셸 환경을 복구하거나 변경할 수 있습니다.
su
"셸 인수"가 명령줄에서 허용된다는 사실을 사용하여 원래 셸에서 직접 루트 셸에 다양한 설정을 삽입하는 방법이 많이 있습니다 . 다음은 루트 셸을 실행하기 위한 명령 지침을 제공하는 예입니다. su
이 방법으로 루트의 구성 파일을 가져온 다음 해당 구성 파일의 환경을 사용하여 셸을 시작합니다(왜냐하면 exec
에서 시작한 셸을 대체하기 때문입니다 su
).
$ su -- root -c ". /root/.profile; exec /bin/sh"
Password:
#