1분기

1분기

sudoers파일에는 다음 줄 중 하나를 포함할 수 있습니다.

modernNeo ALL=(ALL:ALL) ALL
modernNeo 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. 아무것도 지정하지 않으면 기본값으로 실행됩니다. 어쨌든 대부분의 사람들은 결국 그것을 사용하게 됩니다.-gsudoroot: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.-gsudo

여기에는 맞습니다. 명령이 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 -허용됨).

관련 정보