Frage: Ich wollte ein Paket als lokaler Benutzer installieren und sudo verwenden wo immer erforderlich. Dazu habe ich ein Konto namens „Stack“ erstellt und den folgenden Eintrag in meinem /etc/sudoers vorgenommen Datei.
# User privilege specification root ALL=(ALL:ALL) ALL stack ALL=(ALL) NOPASSWD:ALL
Allerdings bei Überprüfung über die Befehlszeile mit dem Befehl sudo -s , wird wie unten gezeigt nach dem Passwort gefragt:
stack@cloudsec2:~$ sudo -s [sudo] password for stack:
Bitte helfen Sie mir, wo mache ich einen Fehler?
Lösung 1: Sie sollten diese Zeile nach der Zeile mit der Regel für die Admin-Gruppe einfügen. Denn wenn mehrere Einträge für einen Benutzer übereinstimmen, werden sie der Reihe nach angewendet. Bei mehreren Übereinstimmungen wird die letzte Übereinstimmung verwendet (die nicht unbedingt die spezifischste Übereinstimmung ist).
Ihre sudoers-Datei sollte also wie folgt aussehen:
# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL stack ALL=(ALL) NOPASSWD:ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL
Lösung 2: Anstatt die Zeile zu verschieben, können Sie sie einfach entfernen und NOPASSWD zum Eintrag für %sudo hinzufügen, wie unten gezeigt:
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
Hinweis:Stellen Sie sicher, dass Ihr Login zur sudo-Gruppe gehört, wie unten gezeigt:
root@cloudsec2:~# id stack uid=1000(stack) gid=1000(stack) groups=1000(stack),4(adm),27(sudo),
Lösung 3: Verschieben Sie Ihre Zeile in eine Datei unter /etc/sudoers.d/
visudo -f /etc/sudoers.d/myOverrides
Fügen Sie die folgende Zeile ein:
stack ALL=(ALL:ALL) NOPASSWD:ALL
Öffnen Sie nun /etc/sudoers file und kommentieren Sie die folgende Zeile aus:
visudo -f /etc/sudoers #includedir /etc/sudoers.d
Dies ist ein besserer Ansatz zum Bearbeiten von Sudoern.