Bash Sudo-Befehl nicht gefunden

Ich habe eine VM mit schlüsselfertigem Linux Redmine eingerichtet und versuche, SSH auf dem Server zu installieren, um weitere Elemente zu installieren.

Der sudo-Befehl scheint nicht erkannt zu werden. Jedes Mal, wenn ich versuche, etwas zu sudo, erhalte ich die Fehlermeldung:

 -bash: sudo: command not found 

Ich habe irgendwo anders gelesen, um „whereis sudo“ einzugeben, und die Ausgabe war:

 sudo: 

Antwort

Es sieht aus wie http://www.turnkeylinux.org/redmine wie Redmine verwendet sudo im Gegensatz zu Ubuntu standardmäßig nicht. In welchem Benutzernamen verwenden Sie SSH? Wenn es root ist, müssen Sie sudo nicht verwenden, wie alles, was Sie tun, wenn SSH in das Redmine-System eingebunden wird erfolgt als root. Wenn es sich um etwas anderes handelt, wie admin, können Sie versuchen, mit dem Befehl su eine Shell, in der Befehle als root ausgeführt werden sollen.

Kommentare

Antwort

Vielleicht ist es nicht installiert? Öffnen Sie Ihren Paketmanager und installieren Sie das Paket sudo .

Kommentare

  • Es wurde nicht ' installiert! Vielen Dank. Ich ' bin ziemlich neu in Linux und habe nur angenommen, dass es auf allen Installationen war. Benötige ich nur das sudo-Paket oder auch sudo-ldap?
  • Sie benötigen das sudo-ldap-Paket nicht '. Sudo funktioniert einwandfrei auf meinem Computer und ich habe ' kein sudo-ldap installiert.

Antwort

Melden Sie sich zuerst bei Ihrem Root-Konto an. Dann

$ apt-get install sudo 

Fügen Sie Ihren vorhandenen Benutzer zur Gruppe sudo

$ sudo adduser <user> sudo 

Sie sollten sich dann als <user> anmelden und der Befehl sudo sollte vorhanden sein.

Antwort

Versuchen Sie, den vollständigen Pfad zu verwenden.

/usr/bin/sudo 

Wenn dieser Befehl funktioniert, fügen Sie / usr / bin / in Ihre env-Variable PATH in ~ / .bashrc ein.

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

funktioniert hoffentlich.

Kommentare

  • Es ist sehr unwahrscheinlich, dass ' das Problem ist. /usr/bin wird sich mit ziemlicher Sicherheit in Ihrem Standardpfad befinden. Wie aus anderen Antworten und Kommentaren hervorgeht, besteht das Problem darin, dass der Befehl sudo ' überhaupt nicht installiert wurde.

Antwort

Der Fehler tritt auf, weil die Binärdatei, die Sie über die Befehlszeile aufrufen möchten, nur ein Teil des Pfads des aktuellen Benutzers ist Variable, aber kein Teil des Pfads des Root-Benutzers.

Sie können dies überprüfen, indem Sie den Pfad der Binärdatei suchen, auf die Sie zugreifen möchten. In meinem Fall habe ich versucht, „bettercap-ng“ zu nennen. Also lief ich,

$ which bettercap-ng

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

I. hat überprüft, ob dieser Speicherort Teil des Pfads meines Root-Benutzers ist.

$ sudo env | grep ^PATH

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

Daher kann sudo die Binärdatei, die ich über die Befehlszeile aufrufen möchte, nicht finden. Daher wird der nicht gefundene Fehlerbefehl zurückgegeben.

Sie können sudo anweisen, den aktuellen Benutzer zu verwenden „s PATH beim Aufrufen einer Binärdatei wie unten.

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

Tatsächlich kann man daraus einen Alias machen:

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

Es ist auch möglich, den Alias selbst sudo zu benennen und den ursprünglichen sudo zu ersetzen.

Siehe hierzu dieses Video für eine schrittweise Lösung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.