sudo -s가 sudo su보다 나은 이유는 무엇입니까?


28

Ask Ubuntu에서 사용 sudo -s하기보다는 선호도에 관한 많은 의견이 있습니다 sudo su.

나에게 그 두 명령은 정확히 동일합니다. 그러나 왜 sudo -s더 나아야합니까?


1
여기에 언급 된 이유 보다 더 나은 것으로 생각 sudo -i하거나 sudo su더 낫습니다 sudo -s: ubuntuforums.org/showpost.php?p=6188826&postcount=4 또한 : 이것은 superuser.com/questions/29/…의
정렬

이 질문은 unix.stackexchange.com로 이동해야한다고 생각
IGI

답변:


26

나는 sudo -s"더 나은"것이 아니라고 생각 합니다.

sudo -s

$ HOME 디렉토리를 유지하므로 프로그램을 시작할 때 루트가 아닌 구성 파일 등을 사용합니다. 단점 : $ HOME 디렉토리에서 파일의 소유권을 변경할 수도 있습니다. 일반적인 예는 .Xauthority파일이지만, 그것에 문제가 없었습니다.

sudo su 또는 sudo -i

프로그램은 루트의 홈 디렉토리와 구성 파일을 사용합니다. 이것은 더 직관적 일 수도 있지만, 자신이 설정 한 구성 (별칭, bash 기록 등)을 사용하지 않을 수도 있습니다.


1
이제 차이점을 이해합니다. 고맙습니다!
fitojb

1
"sudo su"는 "sudo -i"와 동일하지 않습니다. "sudo -i"는 "sudo su-"와 동일하지만 "sudo
su-

13

sudo -s환경 변수, 특히 $HOME유지되는 변경하지 않기 때문 입니다 HOME=/home/USER. sudo su이것을 사용 HOME=/root하면 프로그램을 시작할 때 부정적인 부작용을 일으킬 수있는 것으로 변경되어 사용자의 홈 디렉토리에 액세스하려고합니다.

그래서 기본적으로는 같다 sudogksudo그래픽 프로그램을 실행할 때.


5

이미 언급 한 환경 변수와의 차이점 외에도 루트로 실행하도록 요청하고 쉘을 루트로 실행하도록 sudo su요청 sudo하기 때문에 어리 석고 낭비 su입니다. 첫 번째 프로그램에서 해당 쉘을 제공 할 수있을 때 프로그램에게 루트 쉘을 요청하는 이유는 무엇입니까? 그것은 실제적인 의미에서 중요합니까? 아뇨, 난 그냥 장난입니다.


당신이 옳습니다, 그것은 약간 중복됩니다.
fitojb

글쎄요, 완전히 그렇지는 않습니다 . 예를 들어 sudo su루트 로 사용한다면 예 sudo -i를 들어 가십시오 . 그러나 다른 사용자가되고 싶을 때 도움이됩니다 sudo su - myuser.
hggdh

2
또 다른 차이점 sudo -i이 있습니다. /root디렉토리로 변경하고 현재 디렉토리에 sudo su남아 있습니다.
laurent

1
@hggdh, sudo -u myuser.
psusi

3

쉘이없는 사용자로 로그인하려는 경우를 고려할 때 다른 답변에 동의하지 않습니다. 이는 사용자가 서비스에 할당 된 매우 일반적인 경우입니다.

"sudo su"를 사용하면 사용자가 지정한 쉘이 시작됩니다. 그러나 서버 프로세스에 지정된 사용자의 경우 쉘은 / usr / bin / false이며 로깅에 실패합니다. 대신 다음과 같이 입력해야합니다.

sudo -sHu <server-user>

사용자에게 쉘이 할당되지 않은 경우에도 로그인하여 홈 경로로 cd합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.