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říkazsudo
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
sudo
lepší volba