su 대 su - (Debian에서): PATH가 왜 같은가요?

su 대 su - (Debian에서): PATH가 왜 같은가요?

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/environmentsu -/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"를 인쇄하고 두 번째에는 아무것도 인쇄하지 않습니다.

관련 정보