Am 14.04 hier. Ich habe SSH in meinen Computer eingefügt und die folgende Zeile hinzugefügt /etc/sudoers
:
myuser ALL=NOPASSWD: ALL
Und dann versuchte ich zu rennen:
sudo mkdir /etc/blah
... und ich werde nach meinem Passwort gefragt. Warum?!?
Ich möchte bei diesem Vorgang nicht nach meinem Passwort gefragt werden. Bitte beachte, dass ich beim Laufen ls -ltr /
Folgendes erhalte:
drwxr-xr-x 94 root root 4096 Jul 30 13:28 etc
Aber ich denke nicht, dass das wichtig ist, weil ich mich als "Sudoer" etabliert habe, oder?
Was muss ich tun, damit ich sudo mkdir /etc/blah
als mein aktueller Benutzer ( myuser
) ausgeführt werden kann, ohne nach dem Kennwort gefragt zu werden?
Hier ist meine gesamte /etc/sudoers
Datei:
#
# 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"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
fizzbuzz ALL=NOPASSWD: ALL
chadmin ALL=NOPASSWD: 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
visudo
jedoch keine manuelle Änderungen an dieser Datei wurden keine Aufträge kopieren-n-Paste, tippte ich alles in , wie sie ist. Aber werden auchvisudo
andere Dateien bearbeitet? Das könnte es sein .../etc/sudoers.d/
/etc/sudoers
Antworten:
Es ist die Reihenfolge der Regeln, die dies verursacht hat. Die letzte Regel hat Vorrang.
Um Ihr Problem zu beheben, verschieben Sie einfach Ihre Linien,
aus der
sudoers
Datei nachDies ist eine bessere Vorgehensweise als das Bearbeiten der
sudoers
Datei mit einem Nur-Text-Editor. Wenn Sie versehentlich Fehler in die Datei einfügen, können Sie möglicherweise nicht mehr ausgeführt werdensudo
. Immer verwendenvisudo
, damit die Syntax überprüft wird und Sie vor Fehlern gewarnt werden!Ihre Direktive funktioniert nicht, weil sie überschrieben wird von:
Wenn Sie den
groups
Befehl ausführen , sollten Sie sehen, dass Ihr Benutzer zu diesen Gruppen gehört.quelle
nn-somename
zum Beispiel/etc/sudoers.d/20-myoverrides
Befindet sich myuser in der Gruppe sudo , bietet diese Zeilenreihenfolge keinen passwortlosen Zugriff (wie von Florian Diesch angegeben), da die dritte Zeile die erste Zeile überschreibt.
Also einfach die Zeilen in diese Reihenfolge bringen:
Überprüfen Sie unter myuser account,
sudo -l
über welche Berechtigungen myuser verfügt.quelle
Stimmen mehrere Einträge für einen Benutzer überein, wird der letzte verwendet. Also, ob
fizzbuzz
undchadmin
sind Mitglieder der Gruppenadmin
odersudo
sie werden immer noch nach einem Passwort gefragt.Fügen Sie die beiden Zeilen am Ende der
sudoers
Datei nach der#includedir
Zeile ein.quelle
#includedir
der letzte Eintrag istsudoers
.Wenn Sie die Befehle anpassen, über die
sudo
Sie sie ausführen können, sollten Sie diese Änderungen im Idealfall in einer separaten Datei unter vornehmen,/etc/sudoers.d/
anstatt diesudoers
Datei direkt zu bearbeiten . Sie sollten auch immer verwendenvisudo
, um die Datei (en) zu bearbeiten. Sie sollten sich nicht gewährenNOPASSWD
aufALL
Befehle.Beispiel:
sudo visudo -f /etc/sudoers.d/mynotriskycommand
Geben Sie Ihre Zeilenberechtigung ein:
myuser ALL= NOPASSWD: /bin/mkdir
Speichern und
visudo
beenden Sie dann und Sie werden gewarnt, wenn Sie Syntaxfehler haben.Sie können ausführen
sudo -l
, um die Berechtigungen anzuzeigen, die Ihrem Benutzer erteilt wurden. Wenn einer der benutzerspezifischenNOPASSWD
Befehle VOR einem%groupyouarein ALL=(ALL) ALL
Befehl in der Ausgabe angezeigt wird, werden Sie zur Eingabe Ihres Kennworts aufgefordert.Wenn Sie feststellen, dass Sie viele dieser sudoers.d-Dateien erstellen, möchten Sie sie möglicherweise nach Benutzer benannt erstellen, damit sie leichter zu visualisieren sind. Beachten Sie, dass die Reihenfolge der DATEINAMEN und der REGELN in der Datei sehr wichtig ist. Die zuletzt geladene Datei gewinnt, unabhängig davon, ob MEHR oder WENIGER als die vorherigen Einträge zulässig ist.
Versuchen Sie es mit
printf '%s\n' {{0..99},{A-Z},{a-z}} | sort
und, umprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort
zu sehen, ob Ihre aktuelle Sprache gedruckt wirdAaBbCc
usw., oder bestimmen SieABC
dannabc
, welches das beste Präfix für den "letzten" Buchstaben ist.quelle