¿Hay alguna forma de especificar que sudo
debería preservar ciertas variables de entorno solo para comandos específicos? Para algunos propósitos me gustaría mi $HOME
env. variable preservada cuando ejecuto ciertos comandos. Para otros fines y otros comandos, quiero que se restablezca. ¿Se puede hacer esto con /etc/sudoers
?
Editar:
Gracias por las respuestas. Me pregunto si podría hacer una pregunta de seguimiento, que es "¿Por qué, entonces, esto no funciona?"
En el ejemplo que intento poner a trabajar, quiero sudo nano
leer mi $HOME/.nanorc
. Si uso esto:
Defaults:simon env_keep=HOME
Funciona perfectamente. Si uso esto:
Defaults!/bin/nano env_keep=HOME
o esto:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
No está funcionando en absoluto. ¿Alguna sugerencia de por qué? (Estoy en pruebas de Debian, por cierto)
(Nota: no creo que sea nano
específico, por cierto, puedo reproducir el comportamiento con un script bash de una línea que simplemente echo
s $HOME
).
sudoedit
en su lugar.sudoedit
ejecutará, copiará el contenido de un archivo a un archivo tmp y ejecutará el editor de su elección como su usuario, cuando el editor salga, verificará si cambió algo y, de ser así, reemplazará el original con el editado. Puede seleccionar qué editor desea que se ejecute configurando los$EDITOR
entornos o $ VISUAL`.sudo
con una función de la mía, simplemente he añadido unif [ "$1" == "$EDITOR" ]; then
bloque y ahora estoy llamandosudoedit
en lugar :)