Sudoers 파일의 권한 이해

Sudoers 파일의 권한 이해

내가 이해하려고 하는 sudo문서데비안 위키. 이를 위해 아래 두 가지 예를 사용합니다. 그러나 나는 그들 사이의 차이점을 이해하지 못합니다. 루트의 ALL:ALL( ) 옵션 과 비교하여 그룹 sudo에 ( )가 있는 이유는 무엇입니까 ALL? 명령의 각 부분이 수행하는 작업은 무엇입니까?

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#Default rule for root.
root    ALL=(ALL) ALL

답변1

설명하다 %sudo ALL=(ALL:ALL) ALL:-

  • %sudo- 이것그룹(명칭 sudo)은 허용됩니다 sudo.

  • 번째는 모든 터미널이나 호스트(모든 시스템)에서 ALL허용한다는 의미입니다 .sudo

  • (ALL:ALL)명령이 다음과 같이 실행될 수 있음을 나타냅니다.(User:Group)
  • 마지막으로 All모든 명령을 실행할 수 있다는 의미입니다.

설명하다root ALL=(ALL) ALL

  • root- 이것사용자(루트)는 모든 사용자로서 모든 시스템에서 모든 작업을 허용합니다.

설명 (ALL:ALL): (다음으로 실행 (User:Group))

  • 첫 번째 "ALL"은 사용자(인 경우 root) 또는 그룹의 구성원(인 경우 %admin)이 명령을 실행할 수 있음 을 의미합니다.모든 사용자와 마찬가지로

  • 두 번째 " ALL"은 사용자(예: root) 또는 그룹 구성원(예: %admin)이 명령을 실행할 수 있음 을 의미합니다.모든 그룹과 마찬가지로.

만약 (ALL)사용된다면 다른 그룹으로 실행될 수 없습니다 (ALL:ALL).모든 사용자 및 모든 그룹으로 실행.

답변2

ALL:ALL의 차이점은 사용할 수 있는 사용자와 그룹의 조합 ALL에 있습니다 . RunAs예를 들어:

# sudo -u muru -g git id
Sorry, user root is not allowed to execute '/usr/bin/id' as muru:git on muru-laptop.
# sudo -u muru -g muru id
uid=1000(muru) gid=1000(muru) groups=1000(muru),10(wheel),21(locate),102(polkitd),190(systemd-journal)
$ sudo -u muru -g git id
uid=1000(muru) gid=997(git) groups=997(git),10(wheel),21(locate),102(polkitd),190(systemd-journal),1000(muru)
$ id    
uid=1000(muru) gid=1000(muru) groups=1000(muru),10(wheel),21(locate),102(polkitd),190(systemd-journal)

처음 두 명령은 root일반 사용자로 실행되었으며 세 번째와 네 번째 명령은 (ALL:ALL).

ALL의 경우 에만 -g사용자의 기본 그룹을 지정하는 데에만 사용할 수 있습니다. 이는 -g전혀 지정하지 않는 것보다 낫지 않습니다. ALL:ALL유효한 사용자 및 그룹의 조합을 제공하는 데 사용할 수 있습니다.

왜 이런 (인위적인) 제한이 있는지 모르겠습니다.

관련 정보