Esiste un modo per specificare che sudo
dovrebbe preservare determinate variabili di ambiente solo per i comandi specificati? Per alcuni scopi mi piacerebbe la mia $HOME
env. 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 nano
leggere 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 nano
specifico, btw - posso riprodurre il comportamento con uno script bash una riga che semplicemente echo
s $HOME
).
sudo
con una mia funzione, ho semplicemente aggiunto un if [ "$1" == "$EDITOR" ]; then
blocco e ora sto chiamando sudoedit
invece :)
sudoedit
invece.sudoedit
eseguirà 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$EDITOR
parametri o $ VISUAL`.