sudo -i와 sudo su-의 차이점은 무엇입니까?


답변:


30

그들은 기능적으로 같은 것에 가깝게 제공 할 수 있지만 '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 -무의미한가?
Howard

SUDO 역 참조를 클로버하려는 경우 유용 할 수 있습니다. 따라서 무의미하지 않습니다.
Joel K

또한 루트가 아닌 사용자가 될 때 인수 처리, 환경 변수 처리 및 보안에 큰 차이가 있습니다. 내가 여기에 추가 된 것을 참조 : serverfault.com/q/601140/102814
크레이그 벨소리

1

샷 답변 : 아니요, 동일하지 않습니다.

긴 대답 : sudo와 su-는 동일한 작업을 수행하는 다른 프로그램으로 루트 권한으로 상승합니다.

su 는 Linux 시스템에서 뿌리를 내리는 사실상의 방법이었습니다. 그러나 항상 권한을 분리하고 일부 감사 정보를 남겨 두어야했습니다. 또한 당신이 할 때 - 당신이하는 모든 일은 뿌리로 이루어지며 많은 힘을 갖는 것은 위험합니다. 여기 sudo가 구조에 왔습니다.

sudo는은 몇 가지 특징이있다 스와 하지 않습니다. sudo의 핵심 요소는 "하나"명령을 루트로 실행 한 다음 일반 사용자에게 권한을 삭제하는 기능입니다. 예 : 루트가 소유 한 파일을 제거하십시오.

sudo rm /root/someFile

sudo는 다른 명령 전에 sudo 명령을 사용할 때마다 루트 권한을 높이기 때문에이 명령은 파일을 지 웁니다. 다음에 실행 한 명령은 일반 사용자처럼 실행됩니다 (처음에 sudo 명령을 추가하지 않는 한). 이를 통해 관리 작업을 수행 한 다음 위험한 조건을 피하는 데 도움이되는 권한을 즉시 삭제할 수 있습니다.

sudo는 사용자가 실행할 수있는 프로그램 세트를 제한하고 sudo 및 기타 명령으로 실행되는 로그 명령과 같은 다른 이점도 제공합니다. 더 많은 정보를 위해 한마디에 sudo를

당신이 할 때 스와 - 또는 -i를 SUDO 당신은 같은 일을한다. 그것은 뿌리가되었지만 susudo 는 완전히 다르며 시스템 관리자로서 다른 도구를 제공 한다는 것을 명심 하십시오. 개인적으로 나는 결코 su 를 실행하지 않으며 내 pam 정책은 그것을 금지 하여 아무도 그것을 실행할 수 없습니다. 내 시스템에서는 항상 추가 혜택의 sudo 원인을 사용해야합니다.

추가 정보 : sudo 사용 및 활성화


su하나의 명령 만 실행할 수도 있습니다.su -c 'command ...'
Eliah Kagan

질문의 차이에 대해이었다 sudo -isudo su -하지 사이 sudosu.
Alessio Gaeta
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.