Bash Sudo-kommandot hittades inte

Jag har skapat en virtuell dator med nyckelfärdig Linux redmine och jag försöker SSH i servern för att installera några fler objekt.

Det verkar inte känna igen sudo-kommandot. Varje gång jag försöker sudo något får jag ett felmeddelande:

 -bash: sudo: command not found 

Jag läste någon annanstans för att skriva ”whereis sudo” och resultatet var:

 sudo: 

Svar

Det ser ut från http://www.turnkeylinux.org/redmine som Redmine, till skillnad från Ubuntu, använder inte sudo som standard. Vilket användarnamn använder du för att SSH? Om det är ”s root behöver du inte använda sudo, eftersom allt du gör när SSHed in i Redmine-systemet är gjort som root. Om det är något annat, som admin, kan du försöka använda kommandot su för att få ett root skal där kommandon ska köras som root.

Kommentarer

Svar

Kanske är det inte installerat? Öppna din pakethanterare och installera sudo -paketet.

Kommentarer

  • Det var inte ' t installerat! Tack. Jag ' är ganska ny på Linux och antog bara att det var på alla installationer. Behöver jag bara sudopaketet eller sudo-ldap också?
  • Du behöver inte ' sudo-ldap-paketet. Sudo fungerar bra på min dator och jag har inte ' sudo-ldap har inte installerats.

Svar

Första inloggningen till ditt root-konto. Sedan

$ apt-get install sudo 

Lägg till din befintliga användare i gruppen sudo

$ sudo adduser <user> sudo 

Du ska sedan logga in som <user>, och kommandot sudo ska finnas där.

Svar

försök att använda hela sökvägen

/usr/bin/sudo 

om det kommandot fungerar, inkludera / usr / bin / i din env-variabel PATH i ~ / .bashrc

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

fungerar förhoppningsvis ..

Kommentarer

  • Att ' är mycket osannolikt att det är problemet; /usr/bin kommer nästan säkert att vara i din standardväg. Problemet, som indikeras av andra svar och kommentarer, är att kommandot sudo inte alls var '.

Svar

Felet uppstår eftersom det binära du försöker ringa från kommandoraden bara är en del av den aktuella användarens PATH variabel, men inte en del av rotanvändarens PATH.

Du kan verifiera detta genom att hitta sökvägen till det binära du försöker komma åt. I mitt fall försökte jag kalla ”bettercap-ng”. Så jag sprang,

$ which bettercap-ng

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

I kontrollerat om den här platsen är en del av min rotanvändares PATH.

$ sudo env | grep ^PATH

output: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Så sudo kan inte hitta den binära som jag försöker ringa från kommandoraden. Därför returnerar felkommandot hittades inte.

Du kan rikta sudo att använda den aktuella användaren ”s PATH när man ringer till en binär som nedan.

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

Man kan faktiskt göra ett alias av det:

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

Det är också möjligt att namnge aliaset själv sudo och ersätta den ursprungliga sudo.

Se till den här videon för steg för steg-lösning

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *