Dlaczego sudo nie może znaleźć polecenia po dodaniu go do ŚCIEŻKI?


19

Chcę dodać polecenie do PATH, aby móc z nich wygodnie korzystać, na przykład:

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

ale czasami stormpotrzebuję uprawnień administratora, ale kiedy go używam sudo, Ubuntu nie może znaleźć polecenia.

sudo storm nimbus

jak mogę znaleźć te polecenia, gdy ich używam sudo?


Jakie są uprawnienia do tego folderu i pliku?
Sergiy Kolodyazhnyy

Odpowiedzi:


29

Musisz dodać ścieżkę do sudościeżki.

Uruchom polecenie sudo visudo

zobaczysz taką linię:

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

Teraz dodaj ścieżkę polecenia tutaj, a to powinno działać.

Na przykład:

$ sudo storm
sudo: storm: command not found

Teraz dodaj ścieżkę jak wyżej:

$ sudo visudo 

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

Zapisz i wyjdź.

teraz sudo stormbędzie działać normalnie.

Uwaga Należy również dodać ścieżkę do domyślnej ścieżki w /etc/profile.


Wielkie dzięki za to. Pomogło i nauczyłem się z tego!
darbehdar

0

Myślę, że utworzyłeś alias na poziomie użytkownika. Dlatego skróty są dostępne tylko na poziomie użytkownika.

Należy dodać ten alias wiersza polecenia do pliku .bashrc w folderze / root, a nie w /home/user/.bashrc (ten plik .bashrc należy do konta użytkownika, a nie root).

Abyś mógł używać polecenia aliasu bezpośrednio w powłoce, gdy jesteś zalogowany jako root.


1
co /etc/profile? Dodam export $PATH = "$PATH:/opt/storm/bin"w tym pliku, myślę, że jest to globalne, ale nadal nie mogę znaleźć tego polecenia
roger,

Być może to pytanie o
Anonimowy Dziobak
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.