Nie znaleziono polecenia Bash Sudo

Skonfigurowałem maszynę wirtualną za pomocą linux redmine pod klucz i próbuję połączyć się przez SSH z serwerem, aby zainstalować więcej elementów.

Wygląda na to, że nie rozpoznaje polecenia sudo. Za każdym razem, gdy próbuję coś sudo, pojawia się błąd:

 -bash: sudo: command not found 

Przeczytałem gdzie indziej, aby wpisać „whereis sudo”, a wynik:

 sudo: 

Odpowiedź

Wygląda z http://www.turnkeylinux.org/redmine tak jak Redmine, w przeciwieństwie do Ubuntu, domyślnie nie używa sudo. Jakiej nazwy użytkownika używasz do SSH? Jeśli jest to „s root, to nie musisz używać sudo, ponieważ wszystko, co robisz, gdy SSHed w systemie Redmine jest wykonane jako root. Jeśli to coś innego, np. admin, możesz spróbować użyć polecenia su, aby uzyskać root powłoka, w której mają być uruchamiane polecenia jako root.

Komentarze

Odpowiedź

Może nie jest zainstalowany? Otwórz menedżera pakietów i zainstaluj pakiet sudo .

Komentarze

  • Nie został ' zainstalowany! Dzięki. ' Jestem całkiem nowy w Linuksie i po prostu założyłem, że tak jest we wszystkich instalacjach. Czy potrzebuję tylko pakietu sudo, czy też sudo-ldap?
  • Nie ' nie potrzebujesz pakietu sudo-ldap. Sudo działa dobrze na moim komputerze i nie ' nie mam zainstalowanego sudo-ldap.

Odpowiedz

Najpierw zaloguj się na swoje konto root. Następnie

$ apt-get install sudo 

Dodaj istniejącego użytkownika do grupy sudo

$ sudo adduser <user> sudo 

Następnie należy zalogować się jako <user> i powinno tam być polecenie sudo.

Odpowiedź

spróbuj użyć pełnej ścieżki

/usr/bin/sudo 

jeśli to polecenie zadziała, dołącz / usr / bin / do zmiennej env PATH w ~ / .bashrc

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc 

mam nadzieję, że zadziała ..

Komentarze

  • To, że ' raczej nie stanowi problemu; /usr/bin prawie na pewno będzie w Twojej domyślnej ścieżce. Problem, jak wskazują inne odpowiedzi i komentarze, polega na tym, że polecenie sudo nie zostało ' w ogóle zainstalowane.

Odpowiedź

Błąd występuje, ponieważ plik binarny, który próbujesz wywołać z wiersza poleceń, jest tylko częścią ŚCIEŻKI bieżącego użytkownika zmienna, ale nie jest częścią ŚCIEŻKI użytkownika root.

Możesz to sprawdzić, znajdując ścieżkę pliku binarnego, do którego próbujesz uzyskać dostęp. W moim przypadku próbowałem nazywać „bettercap-ng”. Więc pobiegłem,

$ which bettercap-ng

output: /home/user/work/bin/bettercap

I sprawdziłem, czy ta lokalizacja jest częścią ŚCIEŻKI mojego użytkownika root.

$ sudo env | grep ^PATH

dane wyjściowe: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Więc sudo nie może znaleźć pliku binarnego, który próbuję wywołać z linii poleceń. Dlatego zwraca polecenie błędu nie znaleziono.

Możesz skierować sudo, aby używał bieżącego użytkownika „s PATH podczas wywoływania pliku binarnego, jak poniżej.

$ sudo -E env "PATH=$PATH" [command] [arguments]

W rzeczywistości można zrobić z niego alias:

$ alias mysudo="sudo -E env "PATH=$PATH""

Można również nazwać alias sudo, zastępując oryginalne sudo.

Proszę zapoznać się do tego filmu wideo , aby zapoznać się z rozwiązaniem krok po kroku

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *