/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
노트:나는 대답하고있다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
다른 그룹 권한이 부여되지 않습니다.
답변2
sudoers(5)
매뉴얼 페이지 에서 ,설명하다부분,Runas_Spec부분:
sudo
첫 번째 Runas_List는 명령을 실행하기 위한 옵션을 전달할 수 있는 사용자를 나타냅니다-u
.
...
Runas_Spec을 지정하지 않으면 명령을 실행할 수
root
있으며 그룹을 지정할 수 없습니다.
root
따라서 명령을 as, 즉 with를 사용하지 않고 실행하려고 하면 -u
기능상의 차이가 없습니다 sudo
. 다른 사용자가 명령을 실행하려고 할 때 차이점은 중요합니다. 후자는 이러한 일이 발생하는 것을 방지하지만 전자는 이러한 일이 발생하도록 허용합니다.