Perché dobbiamo usare visudo invece di modificare direttamente il file sudoers?


84

Capisco che se si desidera modificare chi può utilizzare sudoe cosa possono fare con esso che è necessario utilizzare visudo. So che non dovrei modificare direttamente il file / etc / sudoers da solo.

Cos'è che visudonon modifica direttamente il file? Cosa può andare storto?

Risposte:


104

visudocontrolla la sintassi del file prima di sovrascrivere effettivamente il sudoersfile.

Se usi un semplice editor, confondi la sintassi e salva ... sudoprobabilmente (smetterà) di funzionare, e, dato che /etc/sudoersè modificabile solo da root, sei bloccato (a meno che tu non abbia un altro modo di ottenere root).

Inoltre garantisce che le modifiche saranno un'operazione atomica. Questo blocco è importante se è necessario assicurarsi che nessun altro possa confondere le modifiche di configurazione attentamente considerate. Per la modifica di altri file come root, oltre /etc/sudoersal sudoeditcomando c'è anche la protezione da tali conflitti di modifica.


3
Wow, non ho mai saputo di sudoedit. Non funziona su OS X quindi suppongo sia uno strumento GNU? Comunque, informazioni interessanti qui. Ho sempre modificato manualmente e non ho mai avuto problemi: ora capisco che è stata solo fortuna e lo strumento può aiutare a prevenire la catastrofe. Grazie!
Harv,

2
@Harv. Non esiste GNU sudoe OS X ha strumenti GNU. Dato che sudo è stato creato per la prima volta come applicazione open source, probabilmente non c'è motivo per essere molte implementazioni. sudoe sudoeditsono lo stesso comando, sudosi comporta come sudo -equando chiamato come sudoedit. Credo che OS X abbia dimenticato di aggiungere il sudoedit -> sudocollegamento, ma dovresti comunque essere in grado di utilizzare sudo -eo chiamare sudocon argv [0] impostato sudoeditper ottenere lo stesso comportamento.
Stéphane Chazelas,

È interessante notare che visudoutilizza nano per impostazione predefinita.
Tim

3
@Tim: L'impostazione predefinita "reale" è vi, ma può essere configurata per utilizzare qualcos'altro. Quindi nano potrebbe davvero essere il valore predefinito sulla tua distribuzione / configurazione. Vedi la pagina man .
Mat,

2
@ AngularInDepth.com, le conseguenze sono abbastanza ovvie. Se si salva un file sudoers non valido, il sistema non sarà in grado di analizzarlo. Quindi, se faccio un sudo vim /etc/sudoerserrore e sintonizzo la sintassi, non sarò in grado sudo vim /etc/sudoersdi risolverlo di nuovo. In effetti, tutte le possibilità di elevare i privilegi tramite sudo andranno perse poiché il sistema non sarà in grado di analizzare il file.
Spencer D,

23

Dalla pagina man di visudo:

visudo blocca il file sudoers contro più modifiche simultanee, fornisce controlli di integrità di base e verifica la presenza di errori di analisi. Se il file sudoers è attualmente in fase di modifica, riceverai un messaggio per riprovare più tardi.

Controlla anche questa risposta da serverfault .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.