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 poleceniesudo
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
sudo
jest lepszą opcją