Cuando usted sudo, obtiene un preconfigurado $PATH, que es (se supone que es) algo así como la ruta predeterminada del usuario raíz . Su programa no está en esa lista de directorios identificados por $PATH.
Ver por ejemplo
sudo intenta estar seguro cuando ejecuta comandos externos.
Hay dos formas distintas de tratar con las variables de entorno. Por defecto, la
opción env_reset sudoers está habilitada. Esto hace que la ejecución de comandos con un entorno mínimo que contiene TERM,
PATH, HOME, SHELL, LOGNAME, USERy USERNAMEademás de las variables de proceso llamante permitidos por las env_checky env_keep sudoers opciones. Existe efectivamente una lista blanca para las variables de entorno.
Si no puede configurar sudopara preservar su $PATH, la solución habitual es especificar la ruta completa del programa. Es posible que eso no funcione bien con los scripts que llaman a otros ejecutables en el directorio (no accesible).
cd. Usando eldzdo cdretorno de "comando no encontrado". Por supuesto, más tarde me di cuenta de quecding en un directorio que no tiene permisos en, no ayudará mucho, así que tampoco necesito un intérprete de comandos o necesidad dedzdo ls,dzdo mv, etc los contenidos de fuera de ese directorio.