su
나는 와 사이의 차이점이 무엇인지 알고 있지만 su -
내 시스템(Debian)에서는 PATH
동일합니다.
[root]# su
[root]# echo $PATH
/user_path/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root]# exit
[root]$ su -
[root@debian ~]# echo $PATH
/user_path/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
그래서 설정 파일에서 설정을 변경할 수 있겠다는 생각이 들었습니다.
답변1
구성하려면 su
PATH
다음을 참조하세요 /etc/login.defs
.
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PATH
다음을 포함하여 변경할 수 있는 몇 가지 다른 사항이 있습니다 .
/etc/environment
/etc/bash.bashrc
/etc/profile
/etc/profile.d/*
~/.bashrc
~/.bash_profile
사용자별 설정에는 특별한 것이 없고, 에서 환경을 가져오는 것 su
같고 PATH
, 에서 환경을 가져오는 것 같습니다 ./etc/environment
su -
/etc/login.defs
ENV_SUPATH
PATH
따라서 귀하의 시스템에서는 에 동일한 값이 있거나 에 추가 구성이 있거나 rc 파일이 일부 있을 것으로 추측됩니다 ./etc/login.defs
/etc/environment
/etc/profile.d
/etc/bash.bashrc
/home/someuser
답변2
매개변수는 -
시작 환경을 나타내며, 이는 사용자의 로그인 환경과 거의 동일합니다.
-
원래 사용자 환경과 동일한 환경은 없습니다 .
예를 들어 PATH
루트 사용자와 일반 사용자는 일반적으로 동일합니다. 일부 시스템에서는 sbin
일반 사용자에게 폴더가 없습니다. -
쉽게 비활성화 할 수 없습니다 su
. 물론 소스코드를 편집할 수도 있습니다.
다음을 실행하여 시도해 볼 수 있습니다.
export FOO=bar
su # enter your password
echo $FOO
logout
su - # enter your password again
echo $FOO
처음에는 echo $FOO
"bar"를 인쇄하고 두 번째에는 아무것도 인쇄하지 않습니다.