Ich habe ein ziemlich seltsames Problem mit sudo
Debian 8. Benutzer können einige Befehle in nicht ausführen /etc/sudoers.d
. Ich verwende Chef, um Konfigurationen zu verteilen, damit alle Dateien automatisch generiert werden.
Beispiel:
Diese Konfiguration funktioniert gut
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
Und das schlägt fehl:
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.
Was kann falsch sein?
Diagnose:
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
#
als Kommentar und als Teil einer Direktive sowie Ignorieren von Dateien. Interessanterweise (irritierend)visudo -f some.file
warnt es nicht, dass es beim Beenden wahrscheinlich ignoriert wird. Querulous Albatros kann durch eine einfache Aufwertung beruhigt werden.*.cf
) eingeschlossen werden. Dann könnte die Funktion jedoch nachträglich hinzugefügt werden, und einige Benutzer würden sich ohnehin darüber beschweren, dass sie gezwungen werden, eine festgelegte Erweiterung zu verwenden.Versuchen Sie und führen Sie aus
sudo -ll
, um eine Liste der Befehle / config zu erhalten, die für Ihren Benutzer gelten.Wenn (wie es scheint) Ihre update-rc.d-Klausel nicht angezeigt wird, können Sie Ihre Kochrezepte anpassen, um eine einzige sudoers.d-Datei pro Benutzer und nicht mehrere bereitzustellen.
Sie könnten auch überlegen, ob eine gruppenbezogene sudoers-Datei gerechtfertigt sein könnte.
Die Antworten auf diese Frage könnten helfen: /ubuntu/246455/how-to-give-nopasswd-access-to-multiple-commands-via-sudoers
quelle