variable usuario una pudo porque orden incluido hat entorno encontrar crear configurar agregar linux environment-variables sudo

linux - usuario - Cómo mantener las variables de entorno al usar sudo



variables de entorno en red hat (4)

Cuando uso cualquier comando con sudo, las variables de entorno no están ahí. Por ejemplo, después de configurar HTTP_PROXY, el comando wget funciona bien sin sudo . Sin embargo, si sudo wget dice que no se puede omitir la configuración del proxy.


El truco es agregar variables de entorno al archivo sudoers mediante el comando sudo visudo y agregar estas líneas:

Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"

tomado de la wiki de ArchLinux .

Para Ubuntu 14, debe especificar en líneas separadas, ya que devuelve los errores para líneas multivariables:

Defaults env_keep += "http_proxy" Defaults env_keep += "https_proxy" Defaults env_keep += "HTTP_PROXY" Defaults env_keep += "HTTPS_PROXY"


Para las variables individuales que desea que estén disponibles de forma única, puede hacer que sea parte del comando.

sudo http_proxy=$http_proxy wget "http://.com"


Primero necesitas export HTTP_PROXY . En segundo lugar, debe leer atentamente man sudo y prestar atención a la bandera -E . Esto funciona:

$ export HTTP_PROXY=foof $ sudo -E bash -c ''echo $HTTP_PROXY''

Aquí está la cita de la página del manual:

-E, --preserve-env Indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the user does not have permission to preserve the environment.


También puede combinar las dos declaraciones env_keep en la respuesta de Ahmed Aswani en una sola declaración como esta:

Defaults env_keep += "http_proxy https_proxy"

También debe considerar la posibilidad de especificar env_keep para un solo comando como este:

Defaults!/bin/[your_command] env_keep += "http_proxy https_proxy"