답변:
그들은 기능적으로 같은 것에 가깝게 제공 할 수 있지만 'sudo -i'는 더 가벼워서 환경에서 편리한 역 참조를 유지합니다.
'ps auxf'를 보면 추가 프로세스를 볼 수 있습니다 (f는 포리스트 뷰 제공).
sudo -i는 이 프로세스 트리를 생성합니다
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
sudo su- 이 프로세스 트리를 생성합니다
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
그들은 동일한 bash 프로세스 pid, 4482에서 시작하지만 su는 다른 단계를 생성하는 것으로 보입니다.)
첫 번째 'sudo'는 이미 액세스 수준을 루트로 높이고 있습니다. sudo 내에 사용자 이름을 지정하지 않고 su를 실행하면 현재 사용자가 루트로 두 번 변경됩니다.
이를 조사하는 또 다른 방법은 strace -f를 사용하여 두 명령을 모두 실행하는 것입니다.
strace -f -o sudoi sudo -i
vs
strace -f -o sudosu sudo su -
이 두 줄기를 비교하면 sudo su-에 대해 더 많은 exeve가 실행되는 것을 볼 수 있습니다.
하나 더.
sudo -i 는 SUDO에 의해 설정된 추가 환경 변수를 유지합니다.
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
sudo su-해당 변수를 클로버합니다.
샷 답변 : 아니요, 동일하지 않습니다.
긴 대답 : sudo와 su-는 동일한 작업을 수행하는 다른 프로그램으로 루트 권한으로 상승합니다.
su 는 Linux 시스템에서 뿌리를 내리는 사실상의 방법이었습니다. 그러나 항상 권한을 분리하고 일부 감사 정보를 남겨 두어야했습니다. 또한 당신이 할 때 - 당신이하는 모든 일은 뿌리로 이루어지며 많은 힘을 갖는 것은 위험합니다. 여기 sudo가 구조에 왔습니다.
sudo는은 몇 가지 특징이있다 스와 하지 않습니다. sudo의 핵심 요소는 "하나"명령을 루트로 실행 한 다음 일반 사용자에게 권한을 삭제하는 기능입니다. 예 : 루트가 소유 한 파일을 제거하십시오.
sudo rm /root/someFile
sudo는 다른 명령 전에 sudo 명령을 사용할 때마다 루트 권한을 높이기 때문에이 명령은 파일을 지 웁니다. 다음에 실행 한 명령은 일반 사용자처럼 실행됩니다 (처음에 sudo 명령을 추가하지 않는 한). 이를 통해 관리 작업을 수행 한 다음 위험한 조건을 피하는 데 도움이되는 권한을 즉시 삭제할 수 있습니다.
sudo는 사용자가 실행할 수있는 프로그램 세트를 제한하고 sudo 및 기타 명령으로 실행되는 로그 명령과 같은 다른 이점도 제공합니다. 더 많은 정보를 위해 한마디에 sudo를
당신이 할 때 스와 - 또는 -i를 SUDO 당신은 같은 일을한다. 그것은 뿌리가되었지만 su 와 sudo 는 완전히 다르며 시스템 관리자로서 다른 도구를 제공 한다는 것을 명심 하십시오. 개인적으로 나는 결코 su 를 실행하지 않으며 내 pam 정책은 그것을 금지 하여 아무도 그것을 실행할 수 없습니다. 내 시스템에서는 항상 추가 혜택의 sudo 원인을 사용해야합니다.
추가 정보 : sudo 사용 및 활성화
su
하나의 명령 만 실행할 수도 있습니다.su -c 'command ...'
sudo -i
과 sudo su -
하지 사이 sudo
와 su
.
sudo su -
무의미한가?