sudoers 파일에는 다음 줄이 있습니다.
root ALL=(ALL) ALL
첫 번째 필드가 사용자라는 것을 읽었습니다. 첫 번째 ALL
는 모든 사용자를 의미하는 모든 터미널 (ALL)
이고 마지막은 ALL
모든 명령을 의미합니다.
sudoers 파일에 해당 줄이 없으면 어떻게 되나요? 그럼 루트는 아무 것도 할 수 없나요?
username ALL= /bin/passwd
이처럼 "username"을 해석하여 모든 터미널에서 passwd를 실행하는 것이 가능합니까?first 대신 어떤 값을 지정할 수 있나요
ALL
?
답변1
이 파일은 가능한 통화
sudoers
만 제어합니다 . 무엇이든 수행할 수sudo
있도록 허용하는 줄은 일반적으로 유용하지 않습니다. 왜냐하면 루트는 결코 유용하지 않기 때문입니다.root
sudo
필요sudo
무엇이든. 더 편리합니다. 이렇게 하면 루트나 다른 sudoer가 마음대로 호출할 수 있고sudo
권한을 높이기 위해 호출할 수 있는 스크립트를 작성할 수 있습니다.username ALL = /bin/passwd
사용자가passwd
모든 컴퓨터에서(그리고 모든 터미널에서 명령을 실행할 수 있도록 허용합니다. sudo는 이에 대해 신경 쓰지 않습니다) Sudo를 사용하면 파일에 컴퓨터 이름을 사용할 수 있으므로 수정 없이 네트워크의 모든 컴퓨터에 파일을 배포sudoers
할 수 있으며 여전히 특정 컴퓨터에만 적용되는 일부 규칙이 있습니다.sudoers
두 번째 위치에는 호스트 목록이 있습니다( 설명서
Host_List
참조 ).sudoers
이는 쉼표로 구분된 호스트 이름 목록입니다. 호스트 이름 대신 별칭(자세한 내용은 설명서 참조), IP 주소 또는 다양한 서브넷 지정 방법(자세한 내용은 설명서 참조)을 사용할 수 있습니다.
매뉴얼 sudoers
은 읽기 쉽지 않지만 끝에는 좋은 예제 목록이 있습니다. 해당 섹션을 먼저 읽어보시길 권합니다.
답변2
sudo
실제로 루트 사용자에 대한 권한은 없습니다 . 이 행은 루트가 접두어가 붙은 명령을 실행하는 경우 나타납니다 sudo
. 이 규칙은 루트가 이 작업을 수행하도록 허용합니다.
sudo
스크립트에 접두사가 붙은 명령이 포함될 수 있는 경우 루트가 차단되지 않도록 보호하는 것이 더 좋습니다.
그런데, 당신이 읽은 규칙은 다음과 같습니다:
root ALL=(ALL) ALL
이는 루트가 모든 호스트의 모든 사용자로서 모든 명령을 실행하도록 허용한다는 의미입니다. 따라서 규칙을 한 시스템에서 다른 시스템으로 이동하는 경우 루트를 특정 호스트로 제한하거나 어떤 방식으로든 sudo 루트를 통해 제한하는 것을 언급하지 않는다는 점에서 규칙은 이식 가능합니다.