Verwenden Sie die NOPASSWDDirektive
Sie können die NOPASSWDDirektive in Ihrer /etc/sudoersDatei verwenden .
Wenn Ihr Benutzer angerufen wird userund Ihr Host angerufen wird, können hostSie diese Zeilen hinzufügen zu /etc/sudoers:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Auf diese Weise kann der Benutzer userdie gewünschten Befehle ausführen, hostohne ein Kennwort einzugeben. Für alle anderen sudoed-Befehle ist weiterhin ein Passwort erforderlich.
Die in der sudoersDatei angegebenen Befehle müssen vollständig qualifiziert sein (dh den absoluten Pfad zum auszuführenden Befehl verwenden), wie in der sudoersManpage beschrieben . Die Angabe eines relativen Pfads wird als Syntaxfehler angesehen.
Wenn der Befehl mit einem abschließenden /Zeichen endet und auf ein Verzeichnis verweist, kann der Benutzer einen beliebigen Befehl in diesem Verzeichnis ausführen (jedoch nicht in einem der darin enthaltenen Unterverzeichnisse). Im folgenden Beispiel kann der Benutzer usereinen beliebigen Befehl im Verzeichnis ausführen /home/someuser/bin/:
user host = (root) NOPASSWD: /home/someuser/bin/
Hinweis: Verwenden Sie immer den Befehl visudozum Bearbeiten der sudoersDatei, um sicherzustellen, dass Sie sich nicht aus dem System ausschließen - nur für den Fall, dass Sie versehentlich etwas Falsches in die sudoersDatei schreiben . visudoIhre geänderte Datei in ein temporäres Verzeichnis speichern und nur die reale überschreiben sudoersDatei , wenn die geänderte Datei ohne Fehler analysiert werden kann.
Verwenden /etc/sudoers.dstatt modifizieren/etc/sudoers
Alternativ zum Bearbeiten der /etc/sudoersDatei können Sie die beiden Zeilen in /etc/sudoers.dz /etc/sudoers.d/shutdown. B. einer neuen Datei hinzufügen . Dies ist eine elegante Methode, um verschiedene Änderungen an den sudoRechten zu trennen und die Originaldatei sudoersfür einfachere Upgrades unangetastet zu lassen.
Hinweis: Auch hier sollten Sie den Befehl visudozum Bearbeiten der Datei verwenden, um sicherzustellen, dass Sie sich nicht aus dem System ausschließen:
sudo visudo -f /etc/sudoers.d/shutdown
Dadurch wird auch automatisch sichergestellt, dass der Eigentümer und die Berechtigungen der neuen Datei korrekt festgelegt sind.
Wenn sudoersversaut ist
Wenn Sie visudoIhre Dateien nicht bearbeitet und versehentlich versaut /etc/sudoersoder versaut haben, werden /etc/sudoers.dSie gesperrt sudo.
Die Lösung könnte darin bestehen, die Dateien zu reparieren, pkexecdie eine Alternative zu sind sudo.
Zu beheben /etc/sudoers:
pkexec visudo
Zu beheben /etc/sudoers.d/shutdown:
pkexec visudo -f /etc/sudoers.d/shutdown
Wenn der Besitz und / oder die Berechtigungen für eine sudoersDatei nicht korrekt sind , wird die Datei von ignoriert, sudosodass Sie möglicherweise auch in dieser Situation ausgeschlossen sind. Auch hier können Sie pkexecdieses Problem beheben.
Die richtigen Berechtigungen sollten folgendermaßen lauten:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Verwenden Sie pkexecdiese Option, um Eigentumsrechte und Berechtigungen festzulegen :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown