이 sudoers
파일에는 다음 줄 중 하나를 포함할 수 있습니다.
modernNeo ALL=(ALL:ALL) ALL
modernNeo ALL=(ALL) ALL
나는 이것을 이해하기 위해 여기에서 다음 답변을 보았습니다.
- Sudoers 파일, 사용자에 대해 NOPASSWD 활성화, 모든 명령
root ALL=(ALL:ALL) ALL
이들그리고 그리고 의 차이점은 무엇인가요root ALL=(ALL) ALL
?- sudoers에서 (ALL:ALL)의 역할은 무엇입니까?
- sudoers에서 "ALL ALL=(ALL) ALL"은 무엇을 의미합니까?
질문 1
위의 답변을 올바르게 이해했다면 :
(ALL:ALL)
모든 사용자 및 그룹으로 명령을 실행할 수 있음을 의미합니다.(ALL)
이는 모든 사용자로 명령을 실행할 수 있지만 그룹은 동일하게 유지된다는 것을 의미합니다. [여전히 자신의 그룹입니다] -sudo
세 번째 항목에서 with를 사용할 때 어떤 사용자가 되든 상관없습니다.ALL
질문 2
하지만 함께(ALL:ALL)
- 임의의 그룹으로 실행할 수 있는 경우 sudo를 사용하여 명령줄에서 지정하지 않은 것처럼 sudo는 명령을 실행할 그룹을 어떻게 결정합니까
-g
? - 먼저 자신의 그룹으로 실행을 시도한 다음 컴퓨터의 모든 그룹 목록을 살펴본 다음 명령을 실행할 수 있는 그룹을 찾으십니까?
- 그룹 목록은 어디에서 가져오며 해당 목록에 있는 그룹의 순서는 무엇입니까?
root
아니면 원하는 사용자 및/또는 그룹에 대한 기본 설정을 지정하지 않으면 해당 사용자 및/또는 그룹에 사용되는 것으로 되돌아가나요? 그렇다면(ALL:ALL)
할 수 있는데 왜 그렇게 합니까(root:root)
?
질문 3
또한,이 우분투 포럼 게시물, 다음 줄에 관해서
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
그들은 말했다
관리자 그룹의 사용자는 루트가 될 수 있습니다. sudo 그룹의 사용자는 sudo 명령만 사용할 수 있습니다. 예를 들어, 그들은 할 수 없습니다
sudo su
(ALL:ALL)
(user:group)
사용법 을 안다는 뜻이다sudo
. 런타임에 사용하고 지정할 수 있습니다-u
. 아무것도 지정하지 않으면 기본값으로 실행됩니다. 어쨌든 대부분의 사람들은 결국 그것을 사용하게 됩니다.-g
sudo
root:root
이것은 나를 혼란스럽게 합니다. 명령을 실행할 때 어떤 그룹에든 가입할 수 있다면 루트가 될 수 없다고 말합니다.
답변1
다음과 같은 줄 :
smith ALL=(ALL) ALL
사용자 smith는 sudo를 사용하여 모든 컴퓨터(첫 번째 ALL)에서 모든 사용자(두 번째 ALL, 괄호 안의 항목)로 모든 명령(마지막 ALL)을 실행할 수 있습니다. sudo는 다음 명령을 허용합니다.
smith@site ~ $ sudo -u root -g root bash
하지만 다음은 그렇지 않습니다.
smith@site ~ $ sudo -u root -g smith bash
아직 그룹 권한이 선언되지 않았기 때문입니다.
그러나 이것은:
smith ALL=(ALL:ALL) ALL
이 명령은 실행이 허용됩니다(사용자 tom
및 그룹이 sawyer
존재한다고 가정).
smith@site ~ $ sudo -u tom -g sawyer bash
tom@site ~ $ id
uid=1023(tom) gid=1087(sawyer) groups=1047(tom),1092(sawyer)
그래도:
1분기
(ALL:ALL)은 모든 사용자 및 모든 그룹으로 명령을 실행할 수 있음을 의미합니다.
예
(ALL)은 모든 사용자로 명령을 실행할 수 있음을 의미합니다.
예
…하지만 귀하의 그룹은 동일하게 유지됩니다. [여전히 귀하의 그룹입니다.]
아니요, 허용되는 유일한 그룹은 입니다 root
.
2분기
명령줄에서 sudo를 사용하여 그룹을 지정하지 않은 것처럼 sudo는 명령을 실행할 그룹을 어떻게 결정합니까
-g
?
기본값은 root
.
먼저 자신의 그룹으로 실행을 시도한 다음 컴퓨터의 모든 그룹 목록을 살펴본 다음 명령을 실행할 수 있는 그룹을 찾으십니까?
아니요.
그룹 목록은 어디에서 가져오며 해당 목록에 있는 그룹의 순서는 무엇입니까?
등록된 상품이 없습니다. 위에서 언급한 것처럼 그냥 사용시 root
에는 기본값에 속하고 user:ALL
, user:group
사용시에는 명명된 그룹에 속하게 됩니다.
간단한 규칙, 간단한 행동.
root
아니면 원하는 사용자 및/또는 그룹에 대한 기본 설정을 지정하지 않으면 사용자 및/또는 그룹에 사용되도록 되돌아가나요?
예.
그렇다면 (root:root)할 수 있는데 왜 (ALL:ALL)을 합니까?
그것으로 (ALL:ALL)
당신은 할 수 있기 때문에:
sudo -u tom -g sawyer id
하지만 그것으로 (root:root)
만 할 수 있습니다:
sudo -u root -g root id
다른 것은 없습니다(사용자 및 그룹 측면에서).
3분기
다음 라인의 경우:
%admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL
관리자 그룹의 사용자는 루트가 될 수 있습니다.
예, 그룹(%)의 사용자는 admin
모든 사용자(루트 포함)일 수 있지만(때문에 (ALL)
) root
그룹만 가능합니다.
sudo 그룹의 사용자는 sudo 명령만 사용할 수 있습니다.
이것은 정확하지 않습니다. 그룹(%)의 사용자는 sudo
모든 명령(마지막 명령 ALL
)을 실행할 수 있습니다.
그룹(%)의 사용자 sudo
는 모든 사용자일 수 있습니다( (ALL:)
부분). 그리고모든 그룹( (:ALL)
일부)그리고모든 명령(마지막 명령 ALL
)을 실행할 수 있습니다(특히 잘못된 sudo뿐만 아니라).
예를 들어, 그들은 할 수 없습니다
sudo su
아니요, 그들은 할 수 sudo su
있습니다 sudo ls
.sudo anycommand
(ALL:ALL)
(user:group)
사용법 을 안다는 뜻이다sudo
. 런타임에 사용하고 지정할 수 있습니다-u
.-g
sudo
여기에는 맞습니다. 명령이 sudo -u tom -g sawyer ls
정확하고 유효합니다.
아무것도 지정하지 않으면
root:root
기본값으로 실행됩니다.
이것은 여기서도 마찬가지입니다. 명령은 자격 증명(예: 권한/권한)을 사용하여 실행 sudo ls
됩니다 .root:root
어쨌든 대부분의 사람들은 결국 그것을 사용하게 됩니다.
맞습니다. 가장 일반적으로 사용되는 sudo
명령은 사용자나 그룹을 지정하지 않습니다. 그래서 그것은"어쨌든 가장 일반적으로 사용되는"(기본 root:root
).
혼란스럽네요... 명령을 실행할 때 어떤 그룹이든 허용할 수 있다고 합니다...
(ALL:ALL)
예, 명령 은 sudo
모든 사용자 또는 그룹에서 작동할 수 있다고 명시되어 있습니다 .
그리고:
...그럼 루트가 될 수 없다는 겁니까?
아니요, 이 설명은 올바르지 않습니다.
sudo를 사용하면
(ALL:ALL) ALL
모든 그룹의 모든 사용자가 되어 모든 명령을 실행할 수 있습니다. 뿌리까지도요.sudo를 사용하면
(ALL) ALL
그룹을 설정하는 기능은 상실되지만 여전히 사용자를 설정하고 모든 명령을 실행할 수 있습니다(sudo su -
허용됨).