it-swarm.com.de

Bash Sudo-Befehl nicht gefunden

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

Es scheint den Sudo-Befehl nicht zu erkennen. Jedes Mal, wenn ich versuche, etwas zu Sudo zu machen, erhalte ich die Fehlermeldung:

 -bash: Sudo: command not found

Ich habe woanders gelesen, um 'whereis Sudo' einzugeben, und die Ausgabe war:

 Sudo:
38
Adam

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

22
Eliah Kagan

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

42
Timo

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

$ apt-get install Sudo

Fügen Sie Ihren vorhandenen Benutzer zur Gruppe Sudo hinzu

$ Sudo adduser <user> Sudo

Sie sollten sich dann als <user> Anmelden und der Befehl Sudo sollte vorhanden sein.

7

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

hoffentlich funktioniert ..

5
Imam Omar

Der Fehler tritt auf, weil die Binärdatei, die Sie über die Befehlszeile aufrufen möchten, nur Teil der PATH-Variablen des aktuellen Benutzers ist, nicht jedoch Teil des PATH 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 rannte ich,

$ which bettercap-ng

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

Ich habe ü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 Fehlerbefehl nicht gefunden zurückgegeben.

Sie können Sudo anweisen, den PATH des aktuellen Benutzers zu verwenden, wenn Sie eine Binärdatei wie unten aufrufen.

$ 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 ​​Sudo selbst zu benennen und das ursprüngliche Sudo zu ersetzen.

Weitere Informationen zur schrittweisen Lösung finden Sie unter dieses Video

2