Ejemplo de comando es el siguiente, ejecute como un usuario normal
which python
/home/me/env/development/python
porque el PATH
entorno contiene un camino que apunta a esta instancia de python
(en lugar de apuntar a /usr/bin/python
).
Quiero poder ejecutar un comando de python con la misma variable de entorno, por lo que
sudo which python
que devuelve /usr/bin/python
en lugar. Utilizando la -E
Opción da el mismo resultado.
¿Cómo puedo ejecutar un comando de python con root-right, pero con las variables de entorno conservadas? No quiero especificarlos todos con el comando sudo, y supongo que para 'copiar' solo el PATH
Las variables deberían ser suficientes.
Pregunta formulada en otras palabras: ¿Cómo puedo ejecutar un comando de python con sudo
, que tiene la misma PATH
¿Definición que tengo actualmente como usuario normal?
env_reset
y tal vezsecure_path
banderas de ayuda? Verman 5 sudoers
y aquí .PATH
enenv_keep
, pero no cambió el resultado de la prueba.Respuestas:
Si usa el "! env_reset" Opción de desarmarlo y " ruta de seguridad "no está establecido en el archivo de su sudor, entonces las opciones" env_check "y" env_delete "puede eliminar que PATH esté exento de reinicio (es decir, funcionan como entradas de la lista negra).
Una causa más probable sería que un sistema / etc / bashrc o su propio .bashrc restablezca PATH a algún valor estándar (y no agregue a la ruta existente, según sea necesario).
En mi propio "sistema" bashrc (que mantengo en / etc / local y se llama después del sistema bashrc), me cuesta mucho no sobrescribir la ruta pasada con algunas funciones definidas al iniciar sesión:
Los llamo a través de:
Por supuesto, si el problema está en la base de su distribución, puede presentar un error ... ;-)
(Esto supone que no estás llamando a sudo con la "-i" que dice que debes comenzar con un nuevo entorno).
FWIW, al principio y al final de mis diversos archivos de perfil, bashrc y env y sus subarchivos ... Y en las versiones de mi distro (hay que leerlos en una actualización) Pongo estrofas de depuración que normalmente están inactivas. Al principio:
y punto:
Entonces, si necesito depurar un problema como este, puedo tocar / tmp / debug_local y creará inicios de sesión ruidosos para todos los usuarios en mi sistema (que normalmente solo soy yo en el sistema en el que tengo esto).
También de uso, si activa "-x" está cambiando su línea de PS4:
(Lo anterior es todo una línea, dividida con barras diagonales inversas - también es un comentario, es decir, no comentar)
fuente