Cuando ejecuto sudo, ¿qué sucede exactamente con mi entorno?
Cuando ejecuto sudo command, no parece ver mi entorno o el de la raíz. Por ejemplo, mi ruta para ambos incluye /usr/local/bin, pero si intento ejecutar uno de los programas sin la ruta completa, falla.
Pensé que sudo se ejecutaba como root y, por lo tanto, obtuve el entorno de root. ¿Hay alguna manera diferente de que bash se ejecute bajo sudo que bajo root o mi usuario normal?
EDITAR:
He estado usando sudo -iúltimamente, pero recientemente ha estado causando problemas porque mi directorio de trabajo actual está configurado en /root. Esto es como se esperaba (más o menos), pero todavía no entiendo por qué sudo no reconoce mis ejecutables /usr/local/bin.
EDITAR:
Estoy ejecutando Fedora 15.
fuente

PATH, y a veces no es fácil encontrar quién lo anula en último lugar. Podría ser alguna configuración del sistema (por ejemplo, en PAM), sudo o una secuencia de comandos de perfil posterior.Respuestas:
No sé acerca de los valores predeterminados en Fedora, pero en Debian los
sudovalores predeterminados para usar lasecure_pathopción con un valor predeterminado de/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin.Esto significa que la ruta cambia a ese valor cada vez que la usa
sudo; pero cuando lo usasudo -i, la ruta cambia después de eso por los archivos RC del usuario raíz.fuente
secure_pathopción. El valor predeterminado no se incluyó/usr/local/binen mi instalación. ¡Gracias, esto realmente ayudó a aclarar las cosas!Puedes comprobar esto bastante fácil con cosas como
Compare la salida de
Y cosas como
De esa manera, puede intentar averiguar qué falta en su configuración.
fuente
/usr/local/binno está en mi sudo env, pero está en mi root env y usuario env. ¿Por qué es esto?root, como se esperaba. ¿Qué podría estar causando que mi sudo env sea diferente a mi raíz env?/usr/local/bina la ruta de root (desafortunadamente tuve que hacer esto manualmente)?El
sudo -icomando simula el inicio de sesión inicial. En mi sistema Debian, también dice que:fuente
Puede ajustar
sudoelenv_keepparámetro para incluirloPATH, aunque debe tener en cuenta las implicaciones de seguridad de hacerlo.... iniciará su
$EDITOR, luego puede hacer cambios aDefaults env_keep =... según corresponda.Además, puede agregar / usr / local / bin a la ruta del sistema agregando archivos a
/etc/profile.d.p.ej:
fuente
sudotiene un manejo especial dePATHlo que no debe hacer esto.