¿Por qué no puede sudo encontrar un comando después de agregarlo a PATH?

19

Quiero agregar algún comando a PATH para poder usarlos convenientemente, como:

export $PATH = "$PATH:/opt/storm/bin"

pero a veces stormnecesito autorización de root, pero cuando lo uso con sudo, Ubuntu no puede encontrar el comando.

sudo storm nimbus

¿Cómo puedo encontrar este comando cuando lo uso sudo?

Roger
fuente
¿Cuáles son los permisos en esa carpeta y archivo?
Sergiy Kolodyazhnyy

Respuestas:

29

Tienes que agregar la ruta a la sudoruta.

Ejecuta el comando sudo visudo

verá una línea como esta:

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

Ahora agregue la ruta de su comando aquí y esto debería funcionar.

Por ejemplo:

$ sudo storm
sudo: storm: command not found

Ahora agregue la ruta como arriba:

$ sudo visudo 

secure_path="......:/opt/storm/bin"

guardar y Salir.

ahora sudo stormsolo funcionará normalmente.

Nota También debe agregar la ruta a la ruta predeterminada en /etc/profile.

Maythux
fuente
Muchas gracias por este. ¡Ayudó y aprendí de eso!
darbehdar
0

Creo que ha creado el alias en el nivel de usuario. Es por eso que los accesos directos están disponibles solo a nivel de usuario.

Debe agregar esa línea de comando de alias al archivo .bashrc en la carpeta / root y no en /home/user/.bashrc(Este archivo .bashrc pertenece a la cuenta de usuario, no a la raíz).

Para que pueda usar su comando de alias directamente en el shell cuando inicie sesión como root.

Ornitorrinco anónimo
fuente
1
¿qué pasa /etc/profile? Agrego export $PATH = "$PATH:/opt/storm/bin"en este archivo, creo que esto es global, pero todavía no puedo encontrar este comando
Roger
Puede ser que esta pregunta de stackoverflow pueda resolver su problema :)
Anónimo Platypus