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

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

/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부분이 명령어와 태그의 사양이라고 추론해 보았 으나 아직도 이해가 되지 않습니다.

답변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/killrootbinoperatorsystem

alan따라서 다음과 같은 그룹 권한을 가진 사용자로 실행하는 옵션이 있습니다 .lsbinoperator

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. 다른 사용자가 명령을 실행하려고 할 때 차이점은 중요합니다. 후자는 이러한 일이 발생하는 것을 방지하지만 전자는 이러한 일이 발생하도록 허용합니다.

관련 정보