/etc/sudoers
(Fedora 13) 의 의견에 따르면 :
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
내 두 가지 관련 질문 :
-
ALL=(ALL) ALL
다음 줄 의 의미는 무엇입니까?root ALL=(ALL) ALL
-
이 두 줄을 테스트했지만 기능이 어떻게 다른지 알 수 없습니다.
superadm ALL=(ALL) ALL superadm ALL=ALL
설명서를 읽었지만 구문 사양을 따르기가 어렵습니다. 나는 것을 유도 한 (ALL) ALL
부분은 명령 및 태그 사양하지만 난 아직도 주위에 내 머리를 얻을 수 없습니다.
답변
참고 : 나는 대답 해요 1. 이그나시오 이후, 이미 대답 2 .
다음 sudo
항목에서 :
superadm ALL=(ALL) ALL
네 개의 필드가 있습니다 :
- 첫 번째는 일부 명령에 대한 권한이 부여 될 사용자를 지정합니다.
- 두 번째는 거의 사용되지 않습니다. 이 sudo 항목이 적용되는 호스트 이름 목록입니다. 표준 설정에서는 하나의 호스트 만 관련되므로 (localhost)이 필드는 일반적으로로 유지됩니다
ALL
. - 네 번째 필드는 명령 목록이
superadm
높은 권한으로 실행할 수 있습니다.ALL
모든 명령을 의미합니다. 그렇지 않으면 쉼표로 구분 된 명령 목록을 사용하십시오. - 세 번째 필드 (
(…)
선택적으로 작성된 필드 )는superadm
사용자가 다음 명령을 실행할 수 있는 사용자 및 그룹을 지정합니다 .ALL
그들은 무엇이든 선택할 수 있음을 의미합니다 (제한 없음). 이 필드는 생략되었으므로와 동일합니다(root)
.
예:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
여기, alan
두 개의 명령을 실행할 수있는 /bin/ls
과 /bin/kill
같은 root
(또는 bin
), 아마도 추가로 operator
또는 system
그룹 권한.
따라서 사용자 alan
로 실행 ls
하고 다음 bin
과 operator
같은의 그룹 권한 으로 실행할 수 있습니다 .
sudo -u bin -g operator /bin/ls /whatever/directory
경우 -u
생략, 그것과 동일합니다 -u root
. 경우 -g
생략, 추가 그룹 권한은 부여되지 않습니다.
답변
로부터 sudoers(5)
man 페이지, 설명의 섹션 Runas_Spec의 하위 섹션 :
첫 번째 Runas_List는
sudo
의-u
옵션 을 통해 명령을 실행할 수있는 사용자를 나타냅니다 .
…
Runas_Spec을 지정하지 않으면 명령이 실행되고
root
그룹이 지정되지 않을 수 있습니다.
따라서 명령을 실행하려고 할 root
때 (예 : -u
with를 사용하지 않을 때) 기능상의 차이는 없습니다 sudo
. 다른 사용자로 명령을 실행하려고 할 때 차이점이 중요합니다. 후자는 이것을 방지하지만 전자는 허용합니다.