1 votos

Ejecutar programas como sudo no funciona

Instalación de herramientas y otros utilizando la línea de comandos en Ubuntu 18.04 con sudo funciona a la perfección. ejemplo: sudo apt install ... funciona a la perfección. Ejecución de herramientas y programas a través de la línea de comandos sudo no funciona en absoluto. Ejecución de los mismos programas y herramientas como usuario normal funciona a la perfección. Ejemplo: start gtkwave como usuario normal hace que el gtkwave GUI pop-up. Inicio gtkwave como sudo, pide la contraseña y, a continuación, termina en: sudo: gtkwave: command not found.

Debo decir que algunas herramientas invoca en la línea de comandos sudo y funcionan perfectamente, por ejemplo, puedo empezar el Átomo desde la línea de comandos como usuario normal y como sudo.

Es esto quizás debido a que las herramientas/programas no se ejecutan como sudo no están instalados en el común de Linux carpetas como /bin o /usr/bin pero como programas bajo /opt (que se suman a la ruta de acceso y la necesaria entornos de juego)?

¿Alguien tiene alguna idea de por qué sucede esto?

1voto

steeldriver Puntos 19092

De forma predeterminada, sudo búsquedas para los programas que utilizan sus propios secure_path que se define en la /etc/sudoers archivo. De man sudoers:

 secure_path   Path used for every command run from sudo.  If you don't
               trust the people running sudo to have a sane PATH environ‐
               ment variable you may want to use this.  Another use is if
               you want to have the "root path" be separate from the "user
               path".  Users in the group specified by the exempt_group
               option are not affected by secure_path.  This option is not
               set by default.

Tenga en cuenta que a pesar de la última línea, el defecto de Ubuntu /etc/sudoers no establece que:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

así que, ni la invocación del usuario PATH ni root de la PATH tendrá efecto si los programas se encuentran cuando se utiliza sudo.

Si usted realmente desea programas en lugares como /opt a ejecutable a través de sudo, será necesario

  • utilice la ruta de acceso completa por ejemplo sudo /opt/somepath/bin/prog

  • modificar el sudoers secure_path a incluir las ubicaciones - si usted decide hacer esto, por favor, utilice sudo visudo para la captura de los errores de sintaxis (otra cosa que el riesgo de bloquearse a sí mismo de sudo en total).

Sin embargo, probablemente debería leer ¿por Qué deberían los usuarios nunca uso normal sudo para iniciar aplicaciones gráficas? antes de proceder.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: