Estoy tratando de determinar la ruta de un usuario cuando soy root, pero sudo, incluso con el indicador -i, no parece replicar el entorno del usuario correctamente. ¿Es esto un entorno de política de sudoers?
sudo bash # export PATH = $ PATH: / dev / null / $ RANDOM # printenv PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / dev / null / 28718 # sudo -u david-ehrmann -i printenv PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / dev / null / 28718 #
De man sudoers
Como caso especial, si se especifica la opción-i de sudo (inicio de session), los sudoers inicializarán el entorno independientemente del valor de env_reset. Las variables DISPLAY, PATH y TERM permanecen sin cambios; HOME, MAIL, SHELL, USER y LOGNAME se establecen en function del usuario de destino.
Por lo tanto, -i
significa que puede mantener su $PATH
less que el .bash_profile
del usuario (o similar, dependiendo del shell) cambie $PATH
.
Lo que no está claro es si secure_path
anula este comportamiento de -i
. Creo que debería (más cambios por los scripts de inicio de session del usuario).