![sudo 로그인과 프롬프트 표시의 차이점](https://rvso.com/image/1555402/sudo%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%EA%B3%BC%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%20%ED%91%9C%EC%8B%9C%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90.png)
sudo -s
와 의 차이점은 무엇 sudo -i
이며 왜 다른 껍질을 제공합니까? 그것은 -s
나를 내 안에 유지 bash
하고 -i
나에게 주는 것 같습니다 sh
.
MacOSX High Sierra 10.13에서 터미널에 입력하고 sudo -s
비밀번호를 입력하면 사용자 이름이 루트로 표시되지만 프롬프트에는 달러 기호가 표시됩니다.
user1@mymachine:~$ sudo -s
**root@mymachine:~$**
하지만 을 입력하면 다음과 같은 결과 sudo -i
가 나타납니다.
user1@mymachine:~$ sudo -i
Password:<br/>
**mymachine:~ root#**
위의 예에서 루트인 경우 해시 기호 #가 표시되지 않는 이유는 무엇입니까 sudo -s
? 나는 정말로 루트가 아닌가?
둘 사이에 환경 변수가 다른가요?
답변1
가장 먼저 깨달아야 할 것은 가 sudo -s
와 동일 sudo -s root
하고 와 sudo -i
동일하다는 것입니다 sudo -i root
. sudo에서 사용자를 생략할 때마다 사용자 루트를 대상으로 한다고 가정합니다.
sudo -s
sudo -i
대상 사용자로 로그인하는 동안 대상 사용자로 쉘을 실행합니다 .
실행할 때마다 sudo -s
효과적으로 쉘을 루트 사용자 쉘로 변경하는 반면, 실행할 때마다 sudo -i
효과적으로 현재 사용자에서 로그아웃하고 루트로 로그인하게 됩니다. 쉘을 루트 사용자 쉘로 변경할 때마다 사용자 내보내기 정보는 계속 유지되므로 이를 아는 것이 중요합니다. 실행하면 sudo -i
사용자에서 로그아웃하고 루트로 로그인하게 됩니다. 이는 루트 사용자의 셸 구성을 채택한다는 의미입니다.
이것은 관련이 없지만 실수로 문제가 발생할 수 있으므로 사용자를 루트로 변경하지 않아야 합니다. 성가시더라도 에스컬레이션이 필요한 모든 명령을 sudo해야 합니다. 정말로 루트 쉘로 변경하려면 su
루트로 로그인할 수 있는 명령을 실행해야 합니다.