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
비밀번호 없이 그룹으로 실행될 수 있도록 하는 것입니다.docker
docker
내가 뭘 잘못했나요? 작동을 방해하는 것은 무엇입니까?
구성을 살펴보겠습니다.
#↳ 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.d
Including other files from within sudoers
sudo
1.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
)