Esiste un modo per specificare che sudodovrebbe preservare determinate variabili di ambiente solo per i comandi specificati? Per alcuni scopi mi piacerebbe la mia $HOMEenv. variabile conservata quando eseguo determinati comandi. Per altri scopi e altri comandi, voglio ripristinarlo. Questo può essere fatto con /etc/sudoers?
Modificare:
Grazie per le risposte. Mi chiedo se potrei fare una domanda di follow-up, che è "Perché, allora, non funziona?"
Nell'esempio sto cercando di mettermi al lavoro, voglio sudo nanoleggere il mio $HOME/.nanorc. Se uso questo:
Defaults:simon env_keep=HOME
funziona perfettamente. Se uso questo:
Defaults!/bin/nano env_keep=HOME
o questo:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
non funziona affatto. Qualche suggerimento sul perché? (Sono in test Debian, tra l'altro.)
(Nota: io non credo che sia nanospecifico, btw - posso riprodurre il comportamento con uno script bash una riga che semplicemente echos $HOME).
sudocon una mia funzione, ho semplicemente aggiunto un if [ "$1" == "$EDITOR" ]; thenblocco e ora sto chiamando sudoeditinvece :)
sudoeditinvece.sudoediteseguirà la copia del contenuto di un file in un file tmp ed eseguirà l'editor di tua scelta come utente, quando l'editor uscirà controllerà se hai cambiato qualcosa e in tal caso sostituisci l'originale con quello modificato. Puoi selezionare quale editor vuoi che esegua impostando i$EDITORparametri o $ VISUAL`.