사용자를 추가하기위한 적절한 sudoers 구문은 무엇입니까?


50

/etc/sudoers(Fedora 13) 의 의견에 따르면 :

## Syntax:
##
##    user  MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.

내 두 가지 관련 질문 :

  1. ALL=(ALL) ALL다음 줄 의 의미는 무엇입니까?

    root  ALL=(ALL)   ALL
    
  2. 이 두 줄을 테스트했지만 기능이 어떻게 다른지 알 수 없습니다.

    superadm    ALL=(ALL)    ALL
    superadm    ALL=ALL
    

설명서를 읽었지만 구문 사양을 따르기가 어렵습니다. 나는 것을 유도 한 (ALL) ALL부분은 명령 및 태그 사양하지만 난 아직도 주위에 내 머리를 얻을 수 없습니다.

답변:


91

참고 : 나는 대답 해요 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하고 다음 binoperator같은의 그룹 권한 으로 실행할 수 있습니다 .

sudo -u bin -g operator /bin/ls /whatever/directory

경우 -u생략, 그것과 동일합니다 -u root. 경우 -g생략, 추가 그룹 권한은 부여되지 않습니다.


1
글쎄, 그것은 아마도 가장 좋은 대답 일 것이다.
David Betz

1
나는 줄 바꿈 관찰 \n문자의 sudoers 또는 /etc/sudoers.d/your_file_name에있는 항목의 끝에 필수입니다
ramonrails

또한 호스트 이름, 경로 이름 및 명령 줄 인수에 와일드 카드를 사용할 수 있습니다. 유사 /bin/cat /var/log/messages.?하거나 /bin/ls /var/log/*더 많은 정보를 원하시면 여기
Alex

9

로부터 sudoers(5)man 페이지, 설명의 섹션 Runas_Spec의 하위 섹션 :

첫 번째 Runas_List는 sudo-u옵션 을 통해 명령을 실행할 수있는 사용자를 나타냅니다 .

...

Runas_Spec을 지정하지 않으면 명령이 실행되고 root그룹이 지정되지 않을 수 있습니다.

따라서 명령을 실행하려고 할 root때 (예 : -uwith를 사용하지 않을 때) 기능상의 차이는 없습니다 sudo. 다른 사용자로 명령을 실행하려고 할 때 차이점이 중요합니다. 후자는 이것을 방지하지만 전자는 허용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.