File Sudoers, abilita NOPASSWD per l'utente, tutti i comandi

104

Prefazione

Questa è una domanda abbastanza complessa relativa al file Sudoers e al comando sudo in generale.

NOTA: Ho apportato queste modifiche su un computer dedicato su cui è in esecuzione Ubuntu Desktop 13.04, che utilizzo esclusivamente per scopi di apprendimento. Capisco che sia un enorme rischio per la sicurezza abilitare NOPASSWD sudo.

Domanda

Inizialmente, la mia unica modifica al file sudoers (/ etc / sudoers) era una riga, una specifica utente che avrebbe dovuto abilitare 'nicholsonjf' per eseguire tutti i comandi con sudo senza dover inserire una password (vedi la linea che inizia con '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

Tuttavia, questo non ha funzionato, e mi è stata comunque richiesta la mia password ogni volta che ho eseguito un comando come 'nicholsonjf'. Sono stato in grado di iniziare a eseguire comandi sudo come "nicholsonjf" una volta rimosso "nicholsonjf" dai gruppi sudo e admin.

Qualcuno può spiegare perché ha funzionato?

È perché l'utente "nicholsonjf" stava ereditando i diritti sudo dalle due specifiche del gruppo di "admin" e "sudo" (visto di seguito nel file sudoers), che sovrascrivevano le specifiche dell'utente "nicholsonjf" perché erano ulteriormente giù nel file di configurazione?

    
posta James Nicholson 19.08.2013 - 02:45
fonte

3 risposte

99

La tua linea aggiunta è stata ignorata. Da man sudoers :

  

Quando più voci corrispondono per un utente, vengono applicate in ordine.   Dove ci sono più partite, viene usata l'ultima partita (che non lo è   necessariamente la corrispondenza più specifica).

Nel tuo caso nicholsonjf era un membro del gruppo sudo quindi per lui è stata applicata questa riga:

%sudo   ALL=(ALL:ALL) ALL

Se vuoi sostituire le voci in /etc/sudoers , inserisci le nuove voci dopo di esse.

La nuova voce dovrebbe apparire come

myuser ALL=(ALL) NOPASSWD:ALL per un singolo utente o

%sudo ALL=(ALL) NOPASSWD:ALL per un gruppo.

    
risposta data pabouk 03.09.2013 - 02:55
fonte
108

Per un singolo utente:

superuser ALL=(ALL) NOPASSWD:ALL

Per un gruppo:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
risposta data Fedir RYKHTIK 16.01.2015 - 16:28
fonte
-1

Poiché Vince ha menzionato in un commento , puoi utilizzare questa riga:

%sudo ALL=NOPASSWD: ALL

(Questo è diverso dalle linee mostrate in quelle risposte , e ha risolto il problema per me.)

    
risposta data E. Fortes 04.10.2017 - 11:53
fonte

Leggi altre domande sui tag