시도해 볼게

시도해 볼게

sudo특정 그룹에 속해 있는 경우에만 비밀번호 없이 명령을 실행할 수 있도록 구성했습니다 . 하지만 여전히 비밀번호를 묻습니다.

시도해 볼게

#↳ sudo --group docker-user -s
#↳ sudo -k #drop sudo credentials
#↳ groups
docker-user sudo …
#↳ sudo --group docker /usr/bin/docker images
[sudo] password for bob

비밀번호를 기대하지 않습니다. 그 docker.sudo목적은 그룹이 docker-user비밀번호 없이 그룹으로 실행될 수 있도록 하는 것입니다.dockerdocker

내가 뭘 잘못했나요? 작동을 방해하는 것은 무엇입니까?


구성을 살펴보겠습니다.

#↳ sudo cat /etc/sudoers.d/docker.sudo
Cmnd_Alias DOCKER = /usr/bin/docker
%docker-user ALL = (:docker) NOPASSWD : DOCKER

#↳ sudo cat /etc/sudoers #comments removed
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# User privilege specification
root    ALL=(ALL:ALL) ALL

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

#includedir /etc/sudoers.d

추가 테스트

#↳ groups
docker_user sudo …
#↳ sudo -ll
Matching Defaults entries for richard on delor-1:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User richard may run the following commands on delor-1:

Sudoers entry:
    RunAsUsers: ALL
    RunAsGroups: ALL
    Commands:
        ALL

답변1

@ctrl-alt-delor의 답변을 확장하기 위해 페이지에는 (버전) 섹션에 sudoers man있는 보조 규칙에 대한 처리 규칙이 언급되어 있습니다./etc/sudoers.dIncluding other files from within sudoerssudo1.9.1

sudo는 현재 파일의 처리를 일시 중지하고 /etc/sudoers.d의 각 파일을 읽으며 "~"로 끝나거나 "."를 포함하는 파일 이름은 건너뜁니다. 패키지 관리자나 편집기 임시/백업 파일에 문제가 발생하지 않도록 문자를 사용하세요.

그러나 매뉴얼의 이 섹션 첫 번째 문장에서는 sudoers(include a)의 머신 로컬 파일에 include를 통해 직접 액세스할 수 있다고 언급되어 있습니다./etc/sudoers.local.@include /etc/sudoers.local.오직포함을 통해 포함된 파일에 문제가 있습니다 @includedir. 따라서 원본 /etc/sudoers파일에 다음 내용이 포함되어 있는지 의심됩니다.

@include /etc/sudoers.d/docker.sudo

문제는 발생하지 않습니다 (물론 디렉토리의 요점은 /etc/sudoers.d사용하는 것입니다 @includedir...)

답변2

문제를 발견했습니다. 어떤 이유로 /etc/sudoers.d()의 보조 파일 이름에 점이 포함되어 있으면아니요포함하다.

해결책

(
  cd /etc/sudoers.d
  sudo mv docker.sudo docker_sudo
)

관련 정보