web-dev-qa-db-ja.com

sudoが特定のコマンドで機能しない

Debian 8のSudoにかなり奇妙な問題があります。ユーザーは/etc/sudoers.dで一部のコマンドを実行できません。 Chefを使用して構成を配布しているため、すべてのファイルが自動的に生成されます。

例:

この構成は正常に動作します

root@server:~# cat /etc/sudoers.d/nginx 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/nginx

そしてこれは失敗します:

root@server:~# cat /etc/sudoers.d/update-rc.d 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/update-rc.d

user@www42:~$ Sudo update-rc.d 
[Sudo] password for user: 
Sorry, user user is not allowed to execute '/usr/sbin/update-rc.d' as root on server.

何が悪いのでしょうか?

診断:

Mar  5 12:12:51 server Sudo:    user : command not allowed ; TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/sbin/update-rc.d
Mar  5 12:14:25 www42 su[1209]: pam_unix(su:session): session closed for user user

root@server:~# Sudo --version
Sudo version 1.8.10p3
Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[Sudo] password for %p:  --disable-root-mailer --with-sendmail=/usr/sbin/sendmail --with-rundir=/var/lib/Sudo --mandir=/usr/share/man --libexecdir=/usr/lib/Sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux --with-linux-audit
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43
15
Lain Iwakura

問題は、update-rc.d内のドット(/etc/sudoers.d/update-rc.d内)です。 man Sudoから:

#includedirディレクティブを使用して、システムパッケージマネージャーがパッケージのインストールの一部としてsudoersルールをドロップできるSudo.dディレクトリを作成できます。たとえば、次の場合:

#includedir /etc/sudoers.d

Sudoは、/ etc/sudoers.d、ファイル名をスキップする〜または。文字を含むで各ファイルを読み取り、パッケージマネージャーまたはエディターの一時的な問題の発生を回避します/バックアップファイル。

28
MadHatter

Sudo -llを試して実行し、ユーザーに適用できるコマンド/設定のリストを取得します。

(そうであるように)update-rc.d句が表示されない場合は、シェフレシピを調整して、ユーザーごとに複数ではなく単一のsudoers.dファイルをデプロイすることを検討してください。

また、グループ関連のsudoersファイルが必要かどうかを検討することもできます。

この質問の回答が役立つかもしれません: https://askubuntu.com/questions/246455/how-to-give-nopasswd-access-to-multiple-commands-via-sudoers

5