Warum kann sudo keinen Befehl finden, nachdem ich ihn zu PATH hinzugefügt habe?

19

Ich möchte PATH einen Befehl hinzufügen, damit ich sie bequem verwenden kann, z. B .:

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

stormbrauche aber manchmal root-befugnisse, aber wenn ich es mit benutze sudo, kann Ubuntu den befehl nicht finden.

sudo storm nimbus

Wie finde ich diesen Befehl, wenn ich ihn verwende sudo?

Roger
quelle
Was sind Berechtigungen für diesen Ordner und diese Datei?
Sergiy Kolodyazhnyy

Antworten:

29

Sie müssen den Pfad zum sudoPfad hinzufügen .

Führen Sie den Befehl aus sudo visudo

Sie sehen eine Zeile wie diese:

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

Fügen Sie hier nun den Pfad Ihres Befehls hinzu, und das sollte funktionieren.

Beispielsweise:

$ sudo storm
sudo: storm: command not found

Fügen Sie nun den Pfad wie oben hinzu:

$ sudo visudo 

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

speichern und schließen.

Jetzt sudo stormwird einfach normal funktionieren.

Hinweis Sie sollten den Pfad auch dem Standardpfad in hinzufügen /etc/profile.

Maythux
quelle
Vielen Dank für diesen einen. Es hat geholfen und ich habe daraus gelernt!
Darbehdar
0

Ich denke, Sie haben den Alias ​​in der Benutzerebene erstellt. Aus diesem Grund sind die Verknüpfungen nur auf Benutzerebene verfügbar.

Sie sollten diesen Alias ​​zur .bashrc-Datei im Ordner / root hinzufügen und nicht in /home/user/.bashrc (diese .bashrc-Datei gehört zum Benutzerkonto, nicht zum Stammverzeichnis).

Damit Sie Ihren Alias-Befehl direkt in der Shell verwenden können, wenn Sie als root angemeldet sind.

Anonymes Schnabeltier
quelle
1
was ist /etc/profile? Ich füge export $PATH = "$PATH:/opt/storm/bin"in dieser Datei hinzu, ich denke, das ist global, aber ich kann diesen Befehl immer noch nicht finden
Roger
Kann sein , dies kann Stackoverflow Frage Ihr Problem lösen :)
Anonym Platypus