Ich habe in der Vergangenheit viele Artikel über Sudoers geschrieben, wie z. B. Best Practices, und viele Fehler im Zusammenhang mit den Sudoers-Dateien behoben. Diesmal bat mich einer meiner Leser, seine sudoers-Datei zu überprüfen? Unten ist die Sudoers-Datei der Benutzer. Dieser Artikel erklärt, wie man die Sudoers-Syntax überprüft.
# # This file MUST be edited with the ‘visudo’ command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin” # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on “#include” directives: #includedir /etc/sudoers.d
Obwohl ich Zeile für Zeile gegangen bin und alle Zeilen überprüft habe, konnte ich das Problem nicht finden. Einige der Fehler sind für das menschliche Auge möglicherweise nicht sichtbar, z. B. das Löschen eines Zeichens und das nicht ordnungsgemäße Schließen der geschweiften Klammern usw. Die Frage ist also, wie Sie die Syntaxprüfung für eine Sudoers-Datei erhalten?
Die beste Vorgehensweise zum direkten Bearbeiten der sudoers-Datei ist die Verwendung von visudo
da es ein Flag hat, das eine Syntaxprüfung der sudoers-Datei durchführt. Sie können den folgenden Befehl ausführen, nachdem die Änderungen vorgenommen wurden, um zu überprüfen, ob die Syntax korrekt ist.
Verlassen Sie Ihre ROOT-Sitzung NICHT, bis Sie bestätigt haben, dass Ihre sudoers-Datei korrekt ist. Melden Sie sich separat beim selben Server an und versuchen Sie es mit Sudo-Befehlen, um dies zu überprüfen.
# visudo -c /etc/sudoers: parsed OK
Ein weiteres großartiges Feature von visudo
können Sie ihm sagen, dass es eine bestimmte Datei prüfen soll und nicht nur /etc/sudoers
Datei. Dies hilft, die Syntax der Datei auf einem beliebigen Server zu überprüfen, bevor Sie sie auf dem Produktionsserver bereitstellen.
# visudo -cf /tmp/sudoers /tmp/sudoers: parsed OK