![Sudoers 파일의 권한 이해](https://linux55.com/image/67211/Sudoers%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B6%8C%ED%95%9C%20%EC%9D%B4%ED%95%B4.png)
내가 이해하려고 하는 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
유효한 사용자 및 그룹의 조합을 제공하는 데 사용할 수 있습니다.
왜 이런 (인위적인) 제한이 있는지 모르겠습니다.