Cuando uso cualquier comando con sudo, las variables de entorno no están allí. Por ejemplo, después de configurar HTTP_PROXY, el comando wget
funciona bien sin sudo
. Sin embargo, si escribo sudo wget
, dice que no puede omitir la configuración del proxy.Cómo mantener variables de entorno cuando se usa SUDO
Respuesta
El truco es añadir variables de entorno para sudoers
archivo a través de sudo visudo
comando y añadir estas líneas:
Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"
tomado de ArchLinux wiki.
Para Ubuntu 14, es necesario que especifique en líneas separadas, ya que devuelve los errores de líneas múltiples variables:
Defaults env_keep += "http_proxy"
Defaults env_keep += "https_proxy"
Defaults env_keep += "HTTP_PROXY"
Defaults env_keep += "HTTPS_PROXY"
Podría decirse que es la mejor opción para evitar fugas de información y agujeros de seguridad. 'sudo -E' es la forma segura de conseguir el mismo efecto para una sola vez, aunque – sehe
Me encontré con el problema de un proceso que es el que llama sudo (jhbuild) y no puedo decir que pase la bandera -E para sudo, entonces esta es mi solución. – jgomo3
Observe que debe * nunca * editar directamente los 'etc/sudoers'. En su lugar, use el comando 'visudo', que comprueba sintaxis sus ediciones antes de sobrescribir el archivo' sudoers'. De esta forma, no te bloqueas si cometes un error al editar. – Henning
Primero necesita export HTTP_PROXY
. En segundo lugar, debe leer man sudo
cuidadosamente y prestar atención a la bandera -E
. Esto funciona:
$ export HTTP_PROXY=foof
$ sudo -E bash -c 'echo $HTTP_PROXY'
Esta es la cita de la página man:
-E, --preserve-env
Indicates to the security policy that the user wishes to reserve their
existing environment variables. The security policy may eturn an error
if the user does not have permission to preserve the environment.
genial el único problema que es modificar algunos archivos de configuración, por ejemplo, pacman para el arco para hacer que -E se pase –
Para permitir -E (preservar el entorno) para wget, debe especificar la etiqueta SETENV en la regla de sudo que permite la ejecución de wget - Ejemplo:
Este "E" doesn No funciona si la variable es PATH o PYTHONPATH. – apporc
También se pueden combinar los dos env_keep
declaraciones en respuesta de Ahmed Aswani en una sola declaración como esto:
Defaults env_keep += "http_proxy https_proxy"
también debe considerar la especificación de env_keep
por sólo un único comando como este:
Defaults!/bin/[your_command] env_keep += "http_proxy https_proxy"
Para las variables individuales que desee poner a su disposición en una base única, puede hacer que forme parte del comando.
sudo http_proxy=$http_proxy wget "http://stackoverflow.com"
He probado esta respuesta para un 'paquete' debajo de algún myPath agregado a' PATH' en el archivo '.bashrc' (con' export' clausule). Luego 'sudo PATH = $ PATH which package' encuentra la respuesta correcta, a diferencia de' sudo which package'. Sin embargo, 'sudo PATH = $ PATH package' no va más allá de' sudo package' (archivo no encontrado). Por otro lado, el lanzamiento de un 'paquete' simple desde un intérprete de comandos invocado con' sudo bash' conserva la ruta extendida y otorga derechos de sudo 'paquete' (dos palomas de un tiro). Entonces, la respuesta realmente depende de qué comandos inicie – XavierStuvw
La resolución de RUTA para sudo es otra cuestión: si alguien encuentra esta publicación en busca de ese asunto, sugiero ver http://unix.stackexchange.com/questions/83191/how-to -make-sudo-preserve-path – jpj
- 1. Errores de instalación de RubyGems cuando se usa 'sudo' y no se usa sudo
- 2. cómo se evalúan las variables de entorno?
- 3. las variables globales son nulas cuando se usa PHPUnit
- 4. ¿Cuándo/por qué prefijar variables con "$" cuando se usa jQuery?
- 5. ¿Cómo se usa `to_sql` en AREL cuando se usa` average() `?
- 6. Ruby, Unicorn y variables de entorno
- 7. ¿Cómo se duplica el artículo cuando se usa jquery ordenable?
- 8. ¿Cómo mantener/excluir una ruta particular del paquete cuando se usa proguard?
- 9. Comprobación de variables de entorno
- 10. Cómo leer variables de entorno en Scala
- 11. ¿Puedo guardar credenciales de git en variables de entorno?
- 12. Eliminar ruta de las variables de entorno
- 13. Cómo establecer variables de entorno en Python
- 14. Cómo deshabilitar Javascript cuando se usa Selenium?
- 15. Variables de entorno de Javascript
- 16. Evaluar variables de entorno en una cadena
- 17. MSBuild requiere variables de entorno
- 18. Cómo exportar e importar variables de entorno en Windows?
- 19. ¿Se pueden usar variables de entorno en scripts Inno Setup?
- 20. Configuración de la variable de entorno Linux para otro usuario (sudo)
- 21. Eclipse no se abrirá debido a las variables de entorno
- 22. Variables de entorno Xcode para subproyectos
- 23. Cómo excluir propiedades nulos cuando se usa XmlSerializer
- 24. ¿Cómo se maneja savedInstanceState cuando se usa ViewPager?
- 25. ¿Cómo se evitan las funciones anidadas cuando se usa AJAX?
- 26. ¿Cómo se puede modificar "Modificado por" cuando se usa RunWithElevatedPrivileges?
- 27. ¿Cómo se mapea la memoria cuando se usa la horquilla?
- 28. Establecer variables de entorno Node.js en WebStorm
- 29. Cómo obtener variables de entorno desde dentro de gvim
- 30. Linux: ¿dónde se almacenan las variables de entorno?
http://superuser.com/questions/232231/how-do-i-make-sudo-preserve-my-environment-variables –
relacionadas: [¿Por qué son las variables camino diferente cuando se ejecuta a través de sudo y su ?] (http://unix.stackexchange.com/q/8646/21471) en Unix SE – kenorb