Bash Sudo Commando niet gevonden

Ik heb een VM opgezet met gebruiksklare linux redmine en ik probeer SSH in de server te plaatsen om wat meer items te installeren.

Het lijkt de opdracht sudo niet te herkennen. Elke keer dat ik iets probeer te sudo, krijg ik een foutmelding:

 -bash: sudo: command not found 

Ik las ergens anders om “whereis sudo” te typen en de uitvoer was:

 sudo: 

Antwoord

Het lijkt van http://www.turnkeylinux.org/redmine zoals Redmine, in tegenstelling tot Ubuntu, gebruikt sudo niet standaard. Welke gebruikersnaam gebruik je voor SSH? Als het “s root is, dan hoeft u sudo niet te gebruiken, omdat alles wat u doet wanneer SSHed in het Redmine-systeem is gedaan als root. Als het iets anders is, zoals admin, dan kunt u proberen het su commando te gebruiken om een shell waarin commandos kunnen worden uitgevoerd als root.

Reacties

Antwoord

Misschien is het niet “niet geïnstalleerd? Open uw pakketbeheerder en installeer het sudo pakket.

Opmerkingen

  • Het was niet ' niet geïnstalleerd! Bedankt. Ik ' ben vrij nieuw voor Linux en nam gewoon aan dat het op alle installaties zat. Heb ik alleen het sudo-pakket of sudo-ldap nodig?
  • Je hebt ' niet het sudo-ldap-pakket nodig. Sudo werkt prima op mijn computer en ik heb ' niet sudo-ldap geïnstalleerd.

Antwoord

Log eerst in op uw root-account.

$ apt-get install sudo 

Voeg uw bestaande gebruiker toe aan de groep sudo

$ sudo adduser <user> sudo 

Je moet dan inloggen als <user>, en het sudo commando zou daar moeten zijn.

Antwoord

probeer het volledige pad te gebruiken

/usr/bin/sudo 

als dat commando werkt, neem dan / usr / bin / op in je env-variabele PATH in ~ / .bashrc

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

hopelijk werkt het ..

Opmerkingen

  • Dat ' is zeer waarschijnlijk niet het probleem; /usr/bin zal vrijwel zeker in uw standaardpad staan. Het probleem, zoals aangegeven door andere antwoorden en opmerkingen, is dat het sudo commando helemaal niet ' was geïnstalleerd.

Answer

De fout treedt op omdat het binaire bestand dat u probeert aan te roepen vanaf de opdrachtregel slechts een deel is van het PAD van de huidige gebruiker variabele, maar maakt geen deel uit van het PATH van de rootgebruiker.

U kunt dit verifiëren door het pad te lokaliseren van het binaire bestand dat u probeert te openen. In mijn geval probeerde ik “bettercap-ng” te bellen. Dus ik rende,

$ which bettercap-ng

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

Ik gecontroleerd of deze locatie deel uitmaakt van het PATH van mijn rootgebruiker.

$ sudo env | grep ^PATH

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

Dus sudo kan het binaire bestand dat ik probeer aan te roepen niet vinden vanaf de commandoregel. Daarom retourneert het foutcommando niet gevonden.

Je kunt sudo opdracht geven om de huidige gebruiker te gebruiken “s PATH bij het aanroepen van een binair bestand zoals hieronder.

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

In feite kan men er een alias van maken:

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

Het is ook mogelijk om de alias zelf sudo te noemen, ter vervanging van de originele sudo.

Raadpleeg naar deze video voor een stapsgewijze oplossing

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *