Domanda Esegui sudo senza password?


Ispirato da questo domanda....

Sono l'unica persona che utilizza il mio sistema con 12.04.
Ogni volta che rilascio un sudo comando; il sistema richiede la password dell'utente (che a suo modo è buona).
Comunque stavo pensando; senza attivare il radice account; come posso eseguire i comandi sudo che non richiedono la password dell'utente per l'autenticazione.

NOTA: voglio eseguire il comando sudo senza autenticazione tramite password; solo quando sono eseguiti tramite terminale.
Non voglio rimuovere questo ulteriore livello di sicurezza da altre funzioni durante l'uso di "Ubuntu software center" o l'esecuzione di uno script bash trascinando il file something.sh sul terminale.


220
2018-06-06 12:30


origine


quindi vuoi solo essere chiesta la password nel terminale e per le altre cose no, o viceversa ?! in entrambi i modi, penso che sia una violazione della massima sicurezza - Dr_Bunsen
Voglio che il sistema non possa chiedere la password solo quando nel terminale ... per qualsiasi altro scopo il sistema deve chiedere una password. Questo requisito è solo temporaneo e da utilizzare durante la configurazione di installazione di nuovi server .. durante l'installazione di nuovi server, ci vogliono davvero ore di configurazione con i comandi sudo .. emissione di password ogni 15 minuti. è mal di testa. Non voglio usare l'account di root. - Z9iT
Devi leggere la discussione in: askubuntu.com/questions/135428/... - david6
Di sicuro puoi prolungare il timeout. Inoltre, se si eseguono spesso nuove impostazioni del server, è necessario pensare all'automazione del processo. Non sei pagato per digitare, sei pagato per risolvere i problemi e per ottenere sh * t fatto. - MauganRa
Relazionato: Come eseguire il comando sudo senza password? - Eliah Kagan


risposte:


sudo -i è la strada da percorrere se non si desidera digitare una password ogni 10 minuti mentre si eseguono modifiche nel proprio sistema (o in altri sistemi) e non si desidera modificare alcun file di sistema.

Passerà alla root usando il tuo sudo password utente, quando si chiude la console o si digita exit sei tornato al tuo normale utente.


63
2018-06-06 13:36



Sarà vero che inserisco la password solo una volta ... e fino al momento in cui non esco; tempo 5 ore. o 15 .... il sistema non chiederà l'autenticazione tramite password quando viene emesso un comando sudo. - Z9iT
@ Z9iT fino a quando non si digita exit o finché non si chiude la finestra dell'emulatore di terminale. - Bruno Pereira
Grazie .. Ho accettato questa risposta perché server lo scopo di emettere comandi sudo senza autenticazione della password per n-ore fino al momento in cui non usciremo. Non modificare i file di sistema è un vantaggio. - Z9iT
Questo in realtà non risponde alla domanda, perché è ancora necessario inserire la password per diventare root in quel punto. - Adam F
Non se stai eseguendo una macchina virtuale in un ambiente sicuro e vuoi solo che la cosa faccia qualcosa immediatamente e non vuoi occuparti di password. Questa risposta non risponde alla domanda, mentre è discutibilmente informazioni utili. Sono d'accordo con Adam F - Jonathan Komar


L'approccio per risolvere il tuo problema è quello di mettere il tuo utente nel file sudoers, come puoi vedere.

Aprire la finestra del terminale e digitare:

sudo visudo

Nella parte inferiore del file, digitare il seguente:

$USER ALL=(ALL) NOPASSWD: ALL

Dove $USER è il tuo nome utente nel tuo sistema. Salva e chiudi il file sudoers (se non hai cambiato l'editor di terminale predefinito (saprai se ce l'hai), premi ctl + x per uscire nano (ma nota che lo screenshot qui sotto mostra vim), e ti chiederà di salvare).

sudoers file]

Dopo questo, puoi, nella finestra del terminale, digitare sudo <Whatever you want>, senza che venga richiesta la password.

Questo vale solo per sudo comando nella finestra del terminale. Ad esempio, quando si tenta di installare un pacchetto nel centro software, verrà richiesto di inserire la password, come si può vedere nel prossimo Screenshot.

gui password prompt

Penso che questo sia quello che vuoi.


438
2018-06-06 13:20



Si consiglia di usare sudo visudo invece di modificarlo direttamente. Anche la modifica dei permessi dei sudoers potrebbe bloccarti. Quando si modifica con vim, uso :wq! scrivere in file di sola lettura e uscire dall'editor. In questo modo, le autorizzazioni 644 non sono necessarie. - Lekensteyn
Questo è un serio rischio per la sicurezza, chiunque prenda in consegna qualsiasi account con diritti sudo possa prendere il controllo del sistema completo e bloccare qualsiasi ulteriore accesso a questo computer, seriamente sconsigliato. - Bruno Pereira
@ wil93 ti manca il punto: uno script che richiede sudo install crapware in questo caso non chiederà una password e potrebbe rovinare tutto ciò che possiedi, e non devi essere fisicamente vicino a una macchina per distribuire gli script l'ultima volta che ho controllato ... Questo è solo un esempio. - Bruno Pereira
@BrunoPereira Se si prevede di eseguire script non attendibili, quindi quella è il rischio per la sicurezza (anche se sudo richiede una password, uno script dannoso potrebbe sempre fare rm -rf ~pasticciare un po 'di cose). Nel complesso, non chiamerei «grave rischio per la sicurezza» la semplice rimozione della password da sudo. - wil93
D'accordo con @ wil93. Quando si esegue uno script non affidabile, l'immissione della password non è altro che una possibilità di annullare il processo, mentre dubito che sia inutile per la maggior parte delle persone. Il punto è che sai da dove viene la sceneggiatura e cosa fa. - Chad


I timeout sudo di root sono il modo più semplice e sicuro per farlo. Descriverò tutti gli esempi, ma ti avverto che è molto rischioso in qualsiasi modo tu lo faccia anche se in questo modo è molto più sicuro:

sudo visudo

Questo apre un editor e lo indirizza al file sudoers - Ubuntu imposta automaticamente nano, altri sistemi usano Vi. Ora sei un utente super che modifica uno dei file più importanti sul tuo sistema. Niente stress!

(Istruzioni specifiche Vi indicate con (Vi!). Ignora questi se stai usando nano).

Usa i tasti freccia per spostarti alla fine del Defaults linea.

(Vi!) premere il tasto A (maiuscola "a") per spostarsi alla fine della riga corrente e accedere alla modalità di modifica (aggiungere dopo l'ultimo carattere sulla linea).

Adesso scrivi:

,timestamp_timeout=X

dove X è la scadenza del timeout in minuti. Se si specifica 0, verrà sempre richiesta la password. Se si specifica un valore negativo, il timeout non scadrà mai. Per esempio. Defaults env_reset,timestamp_timeout=5.

(Vi!) premi Esc per tornare alla modalità di comando. Ora, se sei soddisfatto del tuo montaggio, digita :w  accedere scrivere il file e :q  accedere per uscire da vi. Se hai commesso un errore, forse il modo più semplice è di rifare dall'inizio, di uscire senza salvare (hit Fuga per accedere alla modalità comando) e quindi digitare: q! accedere.

Colpire Ctrl+X, poi Y, poi accedere per salvare il file e uscire da nano.

Si consiglia di leggere i sudoers e le pagine di manuale di vi per ulteriori informazioni.

man sudoers
man vi

Ripristina il valore di timeout usando:

sudo -k

Queste istruzioni servono a rimuovere la richiesta di una password quando si utilizza il comando sudo. Il comando sudo dovrà comunque essere utilizzato per l'accesso root.

Modifica il file sudoers

Apri una finestra di Terminale. Digitare sudo visudo. Aggiungi la seguente riga alla FINE del file (se non alla fine può essere annullata da voci successive):

<username> ALL=NOPASSWD: ALL

Sostituire <username> con il tuo nome utente (senza il <>). Ciò presuppone che Ubuntu abbia creato un gruppo con lo stesso nome del tuo nome utente, che è tipico. Puoi alternativamente utilizzare gli utenti del gruppo o qualsiasi altro gruppo in cui ti trovi. Assicurati di essere in quel gruppo. Questo può essere verificato andando su Sistema -> Amministrazione -> Utenti e gruppi.

Esempio:

michael ALL=NOPASSWD: ALL

Digita in ^ X (Ctrl+X) uscire. Questo dovrebbe richiedere un'opzione per salvare il file, digitare Y per salvare.

Disconnettersi e ricollegarsi. Ciò dovrebbe consentire ora di eseguire il comando sudo senza richiedere una password.

L'account di root

Abilitazione dell'account di root

L'abilitazione dell'account root è raramente necessaria. Quasi tutto ciò che devi fare come amministratore di un sistema Ubuntu può essere fatto tramite sudo o gksudo. Se hai davvero bisogno di un login root persistente, l'alternativa migliore è simulare una shell di login Root usando il seguente comando:

sudo -i

Tuttavia, se tu dovere abilitare i login di root, puoi farlo in questo modo:

sudo passwd root

Riabilita il tuo account di root

Se per qualche motivo hai abilitato il tuo account root e desideri disattivarlo nuovamente, usa il seguente comando nel terminale:

sudo passwd -dl root

Gruppo sudo a livello di sistema

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Esci, quindi torna indietro.

Reimposta il timeout sudo

Puoi assicurarti che sudo chieda la password la prossima volta eseguendo:

sudo -k

30
2017-10-30 01:15



Ho postato questo prima che aggiungessi, per un modo sistematico di fare questo e altri leggi qui: - user209328
Questa è stata una risposta tardiva, ma è la più completa in termini di opzioni che offre. - jenming


Il modo migliore per concedere autorizzazioni individuali (o di gruppo) sarebbe aggiungere file sotto /etc/sudoers.d

Questo separa le modifiche locali dalla politica predefinita e consente di risparmiare tempo nel caso in cui il file sudoers della distribuzione cambi.

Per esempio:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username

Renderà molto chiaro a quali utenti viene concessa l'autorizzazione.

Allo stesso modo, è possibile utilizzare un file per gestire più direttive:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local

Perfavore guarda /etc/sudoers.d/README  per maggiori informazioni.


10
2018-02-01 15:54



il comando echo non è riuscito, anche se sono root. ma, ho aggiunto il file e lo ho editato direttamente e questo ha funzionato sull'ubuntu più recente (considerando che l'aggiunta dell'utente ai sudoers direttamente non l'ha fatto!) - scape
Il modo giusto è farlo con tee comando. - woto


Nice one-liner per rimuovere prompt sudo per l'utente corrente

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'

5
2018-06-27 17:50



Penso che potresti semplicemente fare: echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo env EDITOR="tee -a" visudo, solo visudo esigenze sudo dopo tutto (e anche env non sarà necessario nella configurazione di default, IIRC). - muru
c'è così tanto che potrebbe andare storto qui (tutto errore dell'utente, ovviamente), che è preferibile, a mio modestissimo parere, modificare direttamente il file sudoer (sudo visudo), testando il risultato (con l'editor ancora aperto), per quei nuovi utenti che potrebbero essere tentati di provare questo "one-liner". - michael
Grazie per il feedback! Stavo solo provando rapidamente a script-ify la rimozione della richiesta di password sudo nelle mie volatili VM di test. Sentiti libero di suggerire miglioramenti :) - Eric Landry


Ovviamente quello che vuoi fare non è raccomandato. Dopo un po ', pur entrando sudo diventa così automatico che la sua utilità diminuisce.

Un altro approccio è quello di lasciare il file sudoers così com'è e, mentre fai qualcosa di complicato ai tuoi mille e mille server, entra sudo bash. Questo ti darà una shell che verrà autenticata come root finché non la esci.


4
2018-06-06 13:27



sudo -s o sudo -i sono probabilmente entrambe idee migliori di sudo bash, perché assicurano che l'ambiente sia sano e le cose. - Darael
"sano di mente e cose" non è generalmente nel regno delle "idee migliori", qualcuno potrebbe dare una spiegazione tecnica del perché sudo -s o sudo -i è meglio di sudo bash? (Modifica: ecco una domanda pertinente askubuntu.com/questions/376199/... ) - Nuzzolilo
un numero di sudo comandi (pensando soprattutto a sudo pip ...) richiedono sudo -H (imposta HOME) in modo che il comando funzioni correttamente. In altri casi, sudo -E (conservare env) può essere richiesto. In esecuzione sudo bash probabilmente funzionerà nella maggior parte dei casi, ma non in tutti, e quando non lo farà, non sarà chiaro il perché. - michael
sudo su è il modo tradizionale per cambiare ruolo e iniziare a comportarsi con un amministratore sys. - user1656671


A partire dal Super User arriva una buona risposta:

Utilizzare l'opzione -S che legge la password da STDIN:

echo <password> | sudo -S <command>

Sostituire <password> con la tua password.


1
2018-05-17 00:12