Wie richte ich "sudo" ohne Passwort unter Linux ein?


156

Wie kann der kennwortlose sudoZugriff auf RHEL- (Fedora, CentOS usw.) oder Ubuntu-Distributionen eingerichtet werden? (Wenn es in allen Distributionen gleich ist, ist es sogar noch besser!)

Einstellung: Persönliche und / oder Labor- / Trainingsgeräte, bei denen kein unbefugter Zugriff zu befürchten ist (dh die Geräte befinden sich in nicht öffentlichen Netzwerken, und allen Benutzern wird uneingeschränkt vertraut, und der Inhalt der Geräte ist "Plain-Vanilla") .


1
Die Antwort von @Richipal ist actullay derjenige, der am besten mit dem geringsten Aufwand arbeitet: Es scheint, dass die Regeln von sudoers in umgekehrter Reihenfolge gelten.
am

2
@ a1an-Regeln werden in derselben Reihenfolge angewendet, wie sie in der sudoers-Datei aufgeführt sind, und überschreiben sich gegenseitig, wenn sie angewendet werden. Wenn ich also nicht möchte, dass sich eine Regel überhaupt ändert, würde ich sie gegen Ende der Datei setzen, damit sie zuletzt angewendet wird und nicht überschrieben werden kann.
Rsjethani

Antworten:


173

BEARBEITEN dank Medinas Kommentar: Laut Manpage solltest du schreiben können

ALL            ALL = (ALL) NOPASSWD: ALL

Damit können alle Benutzer alle Befehle ohne Kennwort ausführen.


Als Referenz hinterlasse ich meine vorherige Antwort:

Wenn Sie eine Zeile des Formulars hinzufügen

%wheel         ALL = (ALL) NOPASSWD: ALL

Mit to /etc/sudoers( visudonatürlich mit dem Befehl) können alle Mitglieder der Gruppe wheelBefehle ausführen, ohne ein Kennwort anzugeben. Daher denke ich, dass die beste Lösung darin besteht, alle Benutzer einer Gruppe zuzuordnen und eine solche Zeile einzufügen sudoers- natürlich sollten Sie sie durch wheeldie tatsächliche Gruppe ersetzen, die Sie verwenden.

Alternativ können Sie einen Benutzer-Alias ​​definieren,

User_Alias     EVERYONE = user1, user2, user3, ...

und benutze das:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

Sie müssten jedoch /etc/sudoersjedes Mal aktualisieren, wenn Sie einen Benutzer hinzufügen oder entfernen.


2
Funktioniert nicht ALL, anstatt *alle Benutzer anzugeben? Siehe das Beispiel in sudoers(5).
Medina

1
@medina: also habe ich das verpasst, als ich die man page gelesen habe. Ich werde bearbeiten.
David Z

6
Wenn Sie unter Ubuntu eine Datei unter /etc/sudoers.d erstellen und diese Einträge darin ablegen,
müssen

1
In CentOS7 ist dieser Eintrag standardmäßig vorhanden und nur auskommentiert.
Killjoy

1
Nur geschafft, es in CentOS durch Kopieren / Einfügen zu verwenden, schlug jeder Versuch fehl, die Konfiguration direkt einzugeben. Aber das Ergebnis scheint bis auf Leerzeichen identisch zu sein ...
MUY Belgien

96

Ich habe die obigen Lösungen ohne Erfolg ausprobiert. Die folgende Lösung hat für mich funktioniert Bearbeiten Sie die Datei / etc / sudoers und fügen Sie die folgende Zeile hinzu

username ALL=(ALL) NOPASSWD: ALL

Der Schlüssel ist, es nach der letzten Zeile hinzuzufügen, die sagt

#includedir /etc/sudoers.d

1
//, Dies scheint die bessere Möglichkeit zu sein, insbesondere wenn bestimmte Anwendungen ihre eigenen Regeln für Systembenutzer, Richipal, hinzufügen. Weitere Informationen zu sudoers.d: sudo.ws/man/1.8.13/sudoers.man.html
Nathan Basanese

1
//, Wären Sie bereit, einige der Diagnosen von Gearoid Murphy zu Ihrer Antwort hinzuzufügen?
Nathan Basanese

1
Danke für diese Klarstellung. Das Hinzufügen nach der Zeile #includedir /etc/sudoers.d scheint in CentOS 7 wichtig zu sein, wohingegen es in CentOS 6 gut zu funktionieren scheint, die Zeile früher in der Datei zu haben.
dmohr

3
Das Problem beim Ignorieren des NOPASSWD von% wheel scheint durch das /etc/sudoers.d/USERNAMEÜberschreiben der NOPASSWD-Berechtigung der Gruppe zu entstehen. Das Anwenden von NOPASSWD in /etc/sudoers.d/USERNAMEbehebt das Problem.
Aal Ghez

1
Das Beste daran, nachdem das Include wichtig ist
Theodore Howell,

27

Ich habe alle Antworten auf dieser Seite ohne nützliche Ergebnisse ausprobiert. Schließlich habe ich es herausgefunden, benutze diesen Befehl, um deine Sudo-Rechte aufzulisten:

sudo -l

Dies sollte eine Ausgabe wie diese ergeben:

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

Es zeigt, dass ich mit root-Rechten konfiguriert bin, aber immer noch Teil einer Gruppe (admin) bin, die einer sudo-Regel entspricht, die das Passwort erwartet ("(ALL) ALL"). Dies zwang sudo, mich dazu aufzufordern. Die fragliche Regel lautete:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Nachdem ich dies auskommentiert hatte, konnte ich ohne Passwort sudo. Ich hoffe, das nützt jemand anderem.


1
Ahhh, danke! Das hat mich verrückt gemacht ... in meinem Fall war mein Benutzer Teil der Gruppe "sudo" sowie "admin" (die ich erstellt habe), und die Berechtigungen für jeden waren falsch, wie in Ihrem Fall . Jetzt funktioniert das Zeug! :)
neezer

14
Das Kommentieren eines Line-Outs ist ein stumpfes Instrument. Sie können daran interessiert zu hören , dass nach „sudo die sudoers - Datei liest und wendet die Berechtigungen in der Reihenfolge von oben nach unten So ist die letzte Zeile in der Datei alle vorherigen Konflikt überschreibt.“ Ubuntuforums.org/showthread.php?t=1132821 - - und das hat bei mir funktioniert.
David J.

10

Im Folgenden /etc/sudoersfinden Sie ein Beispiel für genau das unten in der Datei:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

2
Diese Probe war nicht in meiner - aber danke!
Warren

1
Wie Ihre prägnante Antwort
Herr Pei

6

Es gibt eine andere Möglichkeit, ohne die sudoers-Datei zu berühren.

  • Bearbeiten Sie /etc/pam.d/sudie folgende Zeile und kommentieren Sie sie aus:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • Fügen Sie den Benutzer der wheelGruppe hinzu.


2

Es gibt eine andere Möglichkeit, ohne die sudoers-Datei zu berühren.

  • Bearbeiten /etc/pam.d/sudound fügen Sie die folgende Zeile hinzu:

    auth ausreichend pam_wheel.so vertraue use_uid
  • Fügen Sie den Benutzer der wheelGruppe hinzu.

Props to "topdog" und "Daniel Serodio" für die ursprüngliche Antwort in Bezug auf "su" anstelle von "sudo". Ich habe das als Referenz benutzt und schamlos ihren Beitrag kopiert und geändert.


1
Ich denke, anstatt wörtlich zu kopieren, ist es besser, sie anzurechnen, aber Sie sollten sich darüber im Klaren sein, wie genau sich Ihre Antworten unterscheiden. Ich nehme an, dies erlaubt passwortloses sustatt / sowie passwortloses sudo? Daniels Zugabe ist übrigens nur eine Formatierung.
Mwfearnley
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.