Ich benötige keinen Administrator, um mein Root-Passwort zu ändern. Ich möchte nicht, dass ein Sudo-Benutzer diesen Befehl ausführt:
sudo passwd $root
Ich habe es in der sudoers-Datei mit dem folgenden Befehl versucht:
%sudo ALL=(ALL) ALL, !/usr/bin/passwd $root
Wie kann ich es blockieren?
Antworten:
Laut Sudoers Handbuch :
Aus diesem Grund funktioniert Ihre Sudoers-Richtlinie nicht.
Wenn Sie verhindern möchten, dass der Benutzer die Root-Berechtigung erhält und sein Kennwort ändert, gehen Sie wie folgt vor:
Angenommen, Ihre Sudoer enthalten diese Richtlinie:
Angenommen, Ihr Benutzername ist
foo
, sind seine Gruppenfoo
undsudo
.groups
Befehlsausgabe ist:Entfernen Sie Benutzer
foo
aussudo
Gruppe:gpasswd -d foo sudo
Nach diesem Benutzerfoo
einen Befehl mit sudo nicht ausgeführt werden kann.Sudoers-Datei bearbeiten. Verwenden Sie diesen Befehl:
Definieren Sie die Benutzerberechtigung
foo
, zum Beispiel:Dies bedeutet, dass der Benutzer
foo
alle Befehle im Verzeichnis/usr/bin/
außerpasswd
undsu
Befehl ausführen kann . Hinweis: Wenn der Benutzerfoo
sein Kennwort ändern möchte, kann er denpasswd
Befehl ohne ausführensudo
.Ein weiteres Beispiel für Benutzerberechtigungen
foo
:Dies bedeutet, dass der Benutzer
foo
beliebige Befehle im Verzeichnis ausführen kann/usr/bin/
und das Kennwort aller Benutzer außer root auf ALLEN Computern ändern darf.Sie können Befehlsgruppen definieren
Cmnd_Aliases
, indem Sie "Berechtigungsstufen" definieren und erstellen. Nützliche Beispiele finden Sie im Abschnitt BEISPIEL des Sudoers-Handbuchs . Hier finden Sie einen nützlichen Link zur Verwendung von Sudoers.quelle
foo ALL=/usr/bin/*, !/usr/bin/passwd
eine Idee haben, warum das so ist?Befehlsalias hinzufügen über
visudo
:Einschränkungen hinzufügen über
visudo
:Benutzer zur Gruppe nopasswdgroup hinzufügen:
quelle