Sudoers Datei, aktivieren Sie NOPASSWD für Benutzer, alle Befehle

104

Vorwort

Dies ist eine ziemlich komplexe Frage im Zusammenhang mit der Sudoers-Datei und dem sudo-Befehl im Allgemeinen.

HINWEIS: Ich habe diese Änderungen auf einem dedizierten Computer mit Ubuntu Desktop 13.04 vorgenommen, den ich ausschließlich zu Lernzwecken verwende. Ich verstehe, dass es ein großes Sicherheitsrisiko ist, NOPASSWD sudo zu aktivieren.

Frage

Zunächst war meine einzige Änderung an der sudoers-Datei (/ etc / sudoers) eine Zeile, eine Benutzerspezifikation, die 'nicholsonjf' aktiviert haben sollte, um alle Befehle mit sudo auszuführen, ohne ein Passwort eingeben zu müssen (siehe Zeile, die startet) mit 'nicholsonjf'):

# 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
nicholsonjf    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

Dies hat jedoch nicht funktioniert, und ich wurde immer noch aufgefordert, mein Passwort einzugeben, wenn ich einen Befehl als 'nicholsonjf' ausführte. Ich konnte nur sudo-Befehle als 'nicholsonjf' ausführen, nachdem ich 'nicholsonjf' aus den Gruppen sudo und admin entfernt hatte.

Kann jemand erklären, warum das funktioniert?

Liegt das daran, dass der Benutzer 'nicholsonjf' sudo-Rechte von den beiden Gruppenspezifikationen 'admin' und 'sudo' geerbt hat (siehe unten in der sudoers-Datei), die die Benutzerspezifikation 'nicholsonjf' überschrieben haben, weil sie weiter waren down in der Konfigurationsdatei?

    
James Nicholson 19.08.2013, 02:45
quelle

3 Antworten

99

Ihre hinzugefügte Zeile wurde außer Kraft gesetzt. Von man sudoers :

  

Wenn mehrere Einträge für einen Benutzer übereinstimmen, werden sie der Reihe nach angewendet.   Bei mehreren Übereinstimmungen wird die letzte Übereinstimmung verwendet (was nicht der Fall ist)   unbedingt die spezifischste Übereinstimmung).

In deinem Fall war nicholsonjf ein Mitglied der Gruppe sudo , also galt für ihn diese Zeile:

%sudo   ALL=(ALL:ALL) ALL

Wenn Sie die Einträge in /etc/sudoers überschreiben möchten, fügen Sie einfach die neuen Einträge nach ihnen ein.

Der neue Eintrag sollte aussehen wie

myuser ALL=(ALL) NOPASSWD:ALL für einen einzelnen Benutzer oder

%sudo ALL=(ALL) NOPASSWD:ALL für eine Gruppe.

    
pabouk 03.09.2013, 02:55
quelle
108

Für einen einzelnen Benutzer:

superuser ALL=(ALL) NOPASSWD:ALL

Für eine Gruppe:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
Fedir RYKHTIK 16.01.2015 16:28
quelle
-1

Wie Vince hat in einem Kommentar erwähnt , können Sie diese Zeile verwenden:

%sudo ALL=NOPASSWD: ALL

(Dies ist anders als die in Antworten , und es löste das Problem für mich.)

    
E. Fortes 04.10.2017 11:53
quelle

Tags und Links