Perché sudo non trova un comando dopo averlo aggiunto a PATH?


19

Voglio aggiungere alcuni comandi a PATH in modo da poterli usare comodamente, come ad esempio:

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

ma a volte stormho bisogno dell'autorità di root, ma quando lo uso con sudo, Ubuntu non riesce a trovare il comando.

sudo storm nimbus

come posso trovare questi comandi quando uso sudo?


Quali sono le autorizzazioni per quella cartella e quel file?
Sergiy Kolodyazhnyy,

Risposte:


29

Devi aggiungere il percorso al sudopercorso.

Esegui il comando sudo visudo

vedrai una linea come questa:

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

Ora aggiungi il percorso del tuo comando qui e questo dovrebbe funzionare.

Per esempio:

$ sudo storm
sudo: storm: command not found

Ora aggiungi il percorso come sopra:

$ sudo visudo 

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

salva ed esci.

ora sudo stormfunzionerà normalmente.

Nota È inoltre necessario aggiungere il percorso al percorso predefinito in /etc/profile.


Grazie mille per questo. Mi ha aiutato e ho imparato da quello!
darbehdar,

0

Penso che tu abbia creato l'alias a livello di utente. Ecco perché le scorciatoie sono disponibili solo a livello di utente.

Dovresti aggiungere quella riga di comando alias al file .bashrc nella cartella / root e non in /home/user/.bashrc(questo file .bashrc appartiene all'account utente non root).

In modo che sia possibile utilizzare il comando alias direttamente nella shell quando si accede come root.


1
che dire /etc/profile? Aggiungo export $PATH = "$PATH:/opt/storm/bin"questo file, penso che sia globale, ma non riesco ancora a trovare questo comando
Roger

Potrebbe essere questa domanda stackoverflow in grado di risolvere il tuo problema :)
Anonimo Platypus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.