GNU/Linux >> Linux Esercitazione >  >> Linux

sudoedit:perché usarlo su sudo vi?

Mi sono imbattuto in questa domanda mentre cercavo qualcosa di completamente estraneo, ma ho pensato di aggiungere la seguente importante distinzione, che finora non è stata affatto menzionata:sudoedit non esegue il tuo editor come root.

$ sudo vim /etc/farts.conf 

Eseguirà semplicemente vim come root, permettendogli di leggere il file. Lo svantaggio è che l'editor ora funziona anche come root e può fare qualsiasi cosa. Se volevi solo consentire a un utente di modificare un file di configurazione e nient'altro, peccato, gli hai appena dato root su tutto il sistema. Niente mi impedisce di generare una shell da vim con :sh o :!command , e poiché sono processi secondari, verranno eseguiti anche come root.

D'altra parte:

$ sudoedit /etc/farts.conf

funzionerà effettivamente in modo diverso. Creerà una copia con un nome univoco in /tmp con autorizzazioni bloccate solo al tuo utente, quindi genererà il tuo editor normalmente, senza privilegi di root, su quella copia.

Una volta che esci dall'editor, confronterà il file temporaneo e il file originale e sostituirà in modo sicuro l'originale con la tua modifica se è cambiata.

In questo scenario, diventa possibile consentire a un utente di modificare un file di sistema, ma non consentirgli di eseguire binari casuali come root o poke ovunque nel file system.

Questa è principalmente la vera distinzione, il resto che è stato menzionato sono solo effetti collaterali chiari.


Prima di tutto, sudo vim menziona già esplicitamente il tuo editor predefinito, che non è necessario se lo hai definito in $EDITOR . sudoedit ti evita di definire l'editor ogni volta che vuoi modificare qualcosa e su un sistema multiutente consente a tutti di utilizzare l'editor che preferiscono personalmente.

Come mai? Considera un sistema in cui gli utenti normali ottengono solo sudo privilegi per la modifica di determinati file. Non possono eseguire sudo con qualsiasi altra cosa però. Dovresti consentire loro di sudo vi e sudo vim e sudo nano e sudo emacs e sudo pico (eccetera). Invece di doverlo fare, potresti semplicemente consentire loro di sudoedit il file, con la scelta dell'impostazione $EDITOR a quello che vogliono. (Immagina di costringere un amante di Emacs a usare Vim...)

Un altro problema è che se il tuo $EDITOR è impostato su vim e hai le impostazioni di personalizzazione per esso nel .vimrc del tuo utente , queste impostazioni non verranno utilizzate se utilizzi sudo vim o sudo $EDITOR . sudoedit tuttavia preserva l'ambiente dell'utente chiamante e quindi le tue impostazioni.

Vedi anche:Cosa c'è di così bello in sudoedit?


Linux
  1. Linux – Perché usiamo Su – e non solo Su?

  2. Perché Sudo ignora gli alias?

  3. Perché non posso usare Cd in uno script Bash??

  4. sudoedit:comando non trovato

  5. Come usare il comando su su adb shell?

Perché uso rxvt come terminale

I 10 motivi principali per utilizzare Linux

Usa vi Editor

Perché i nerd usano Linux

COME USARE SED EDITOR

Linux vs Mac OS:15 motivi per utilizzare Linux invece di Mac OS