¿Cómo hacer que `sudo` preserve $ PATH?

Necesito ejecutar un progtwig instalado en / opt / godi / sbin (un directory personalizado). Si agrego ese directory a mi RUTA, agregando la siguiente línea a mi file .bashrc

export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin 

entonces puedo intentar ejecutar el command muy bien (excepto que falla porque necesita sudo). Sin embargo, cuando trato de usar sudo:

 sudo godi_console 

Obtuve el siguiente error

 sudo: godi_console: command not found 

Inspeccionar la variable PATH después de usar sudo revela que no incluye la misma RUTA que tengo como usuario normal:

 $ sudo sh # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

¿Por qué la RUTA no es la misma? ¿Estoy haciendo algo mal? Estoy en Debian Jessie y desafortunadamente no puedo evitar el problema pasando sudo el enlace absoluto a godi_console porque godi_console también depende de que la RUTA se establezca correctamente.

Solutions Collecting From Web of "¿Cómo hacer que `sudo` preserve $ PATH?"

Siempre puedes hacer:

 sudo env "PATH=$PATH" godi_console 

o incluso:

 sudo "PATH=$PATH" godi_console 

como sudo trata los arguments principales que contienen = caracteres como asignaciones de variables de entorno por sí mismo también.

Como una medida de security en Debian, /etc/sudoers tiene la opción secure_path establecida en un valor seguro.

También puede establecer la RUTA pnetworkingeterminada en /etc/sudoers

edita el file usando visudo

y actualice la línea como desee: Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

SUDO está restableciendo las variables env por defecto.

Consulte su manual y la opción llamada env_reset.

Solo necesita desactivarlo en / etc / sudoers.