
다음은 실패합니다.
sudo -u chris ls /root
ls: cannot open directory '/root': Permission denied
다음은 성공합니다.
sudo ls /root
...
왜 그런지 이해가 안 돼요. 루트 권한을 갖는 것 외에도 -u
/running 사용자를 제공된 매개변수로 변경하면 문제가 해결될 것이라고 가정합니다. $USER
이 행동의 이유는 무엇입니까?
답변1
sudo -u chris
chris
root 대신 user로 주어진 명령을 USER
실행합니다 chris
. 따라서 chris
액세스할 수 없는 경우 /root
에는 sudo -u chris
변경되지 않습니다.
바라보다man sudo
:
-유 사용자,- 사용자=사용자
기본 대상 사용자가 아닌 사용자로 명령을 실행합니다(일반적으로뿌리).
sudo
이는 특별히 "루트로 실행" 도구가 아니라 "다른 사용자 또는 그룹으로 실행" 도구입니다.
답변2
스도명령은 기본적으로 루트라는 특정 사용자로 실행됩니다. 이 -u
옵션은 이 경우 루트가 아닌 사용자를 선택하므로 항상 루트라는 의미는 아닙니다 . 루트가 되려면 명령 sudo
(예 sudo chown chris:chris ~
: )을 실행하거나 해당 명령을 사용하여 su
사용자를 루트로 전환한 다음 종료를 실행하여 사용자에게 돌아갈 수 있습니다.
답변3
스도:에스상위 레이어유세레하다 사용자에게 시스템 명령을 실행할 수 있는 권한을 부여하는 방식입니다.
Chris가 호스트라면 이것을 시도해 보세요
sudo -h chris ls -l /root
-h, --help 도움말 메시지 표시 및 종료
-h, --host=host 호스트에서 명령 실행(플러그인이 지원하는 경우)
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Desktop
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Documents
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Downloads
아니면 "루트"를 제거할 수도 있습니다.
sudo -u chris ls -l /
왼쪽 오른쪽 오른쪽 오른쪽 오른쪽 오른쪽 오른쪽 1겐겐 2018년 1월 7일 20:32 bin -> usr/bin
~에서http://www.linfo.org/root_directory.html
"루트 디렉터리는 시스템의 다른 모든 디렉터리와 파일을 포함하고 다음과 같이 표시되는 Unix 계열 운영 체제의 디렉터리입니다.슬래시( / ).
이 경우 디렉토리가 디렉토리 트리 다이어그램 ""의 맨 위에 있기 때문에 "루트"라는 단어가 사용됩니다.