한 사용자에 대한 여러 sudo 유형

한 사용자에 대한 여러 sudo 유형

기본 관리 사용자(모두 sudo 사용)가 하나의 명령에 대해 다른 사용자로 비밀번호 없는 sudo를 갖기를 원하는 상황이 있습니다. 내가 아는 한, /etc/sudoers에 다음이 제공되어야 합니다.

ramo   ALL=(otherUser) NOPASSWD: /usr/bin/command
ramo   ALL=(ALL) ALL

하지만 두 줄이 충돌하거나 두 번째 줄이 첫 번째 줄을 덮어쓰는 것 같습니다. 이를 수행하는 방법에 대한 아이디어가 있습니까?

건배

라모

편집: 사용자를 지정할 때 sudo가 어떻게 작동하는지 약간 오해한 것으로 나타났습니다. 나는 ALL=(otherUser)가 있으면 'sudo -u otherUser'가 필요하지 않고 sudo만 하면 된다는 인상을 받았습니다. 이것은 사실이 아닙니다.

답변1

순서가 중요하며 동작은 sudoers(5) 매뉴얼 페이지에 설명되어 있습니다.

한 사용자에 대해 여러 항목이 일치하면 순서대로 적용됩니다. 일치 항목이 여러 개 있는 경우 마지막 일치 항목이 사용됩니다(반드시 가장 구체적인 일치 항목일 필요는 없음).

원래 규칙에서는 "(ALL) ALL"이 마지막 일치이므로 sudo는 비밀번호를 묻는 메시지를 표시합니다.

다음 /etc/sudoers가 작동합니다:

ramo   ALL=(ALL) ALL
ramo   ALL=(otherUser) NOPASSWD: /bin/whoami

예:

$ sudo -k /bin/whoami
[sudo] password for ramo: 
root
$ sudo -k -u otherUser /bin/whoami
otherUser
$ sudo -k -u otherUser /bin/true
[sudo] password for ramo:
$ sudo -k /bin/true
[sudo] password for ramo:

sudo-1.8.6p7-1을 사용하여 Fedora 19에서 테스트되었습니다.

답변2

'!'로 부정할 수 있을 것 같아요. 두 번째 줄을 시도해 보세요

ramo ALL=(ALL) !/usr/bin/command

관련 정보