Příkaz Bash Sudo nebyl nalezen

Nastavil jsem virtuální počítač pomocí linuxového redminu na klíč a pokouším se SSH na server nainstalovat další položky.

Nezdá se, že by rozpoznával příkaz sudo. Pokaždé, když se pokusím o něco sudo, zobrazí se chyba s hlášením:

 -bash: sudo: command not found 

Četl jsem někde jinde, abych napsal „whereis sudo“ a výstup byl:

 sudo: 

Odpověď

Vypadá to z http://www.turnkeylinux.org/redmine jako Redmine na rozdíl od Ubuntu ve výchozím nastavení nepoužívá sudo. Jaké uživatelské jméno používáte pro SSH? Pokud je to root, nemusíte používat sudo, protože vše, co děláte při SSHed do systému Redmine, je provedeno jako root. Pokud jde o něco jiného, například admin, můžete zkusit pomocí su získat root prostředí, ve kterém lze spouštět příkazy jako root.

Komentáře

odpověď

Možná není nainstalován? Otevřete správce balíčků a nainstalujte balíček sudo .

Komentáře

  • Nebylo nainstalováno '! Dík. Jsem ' v Linuxu docela nový a předpokládal jsem, že je to na všech instalacích. Potřebuji také balíček sudo nebo sudo-ldap?
  • Nepotřebujete ' balíček sudo-ldap. Sudo funguje na mém počítači dobře a nemám ' nainstalován sudo-ldap.

Odpovědět

Nejprve se přihlaste ke svému účtu root. Poté

$ apt-get install sudo 

Přidejte stávajícího uživatele do skupiny sudo

$ sudo adduser <user> sudo 

Poté byste se měli přihlásit jako <user> a měl by tam být příkaz sudo.

Odpověď

zkuste použít celou cestu

/usr/bin/sudo 

pokud tento příkaz funguje, zahrňte / usr / bin / do své env proměnné PATH v ~ / .bashrc

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

snad funguje ..

Komentáře

  • To ' je velmi nepravděpodobné, že by to byl problém; /usr/bin bude téměř jistě ve vaší výchozí cestě. Problém, jak naznačují další odpovědi a komentáře, spočívá v tom, že příkaz sudo nebyl vůbec ' nainstalován.

Odpověď

Došlo k chybě, protože binární soubor, který se pokoušíte volat z příkazového řádku, je pouze částí PATH aktuálního uživatele proměnná, ale není součástí PATH uživatele root.

Tuto skutečnost můžete ověřit vyhledáním cesty binárního souboru, ke kterému se pokoušíte získat přístup. V mém případě jsem se pokoušel nazvat „bettercap-ng“. Tak jsem běžel,

$ which bettercap-ng

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

I zkontroloval, zda je toto umístění součástí PATH mého kořenového uživatele.

$ sudo env | grep ^PATH

výstup: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Takže sudo nemůže najít binární soubor, který se pokouším zavolat z příkazové řádky. Vrátí tedy chybový příkaz, který nebyl nalezen.

Můžete použít sudo k použití aktuálního uživatele „PATH při volání binárního souboru, jak je uvedeno níže.

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

Ve skutečnosti z něj lze vytvořit alias:

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

Je také možné pojmenovat samotný alias sudo, který nahradí původní sudo.

Viz do tohoto videa pro řešení krok za krokem

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *