Bash Sudo-Befehl nicht gefunden

33

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

Der Befehl sudo wird anscheinend nicht erkannt. 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:
Rui F Ribeiro
quelle

Antworten:

20

Wie es aussieht, verwendet Redmine von http://www.turnkeylinux.org/redmine im Gegensatz zu Ubuntu standardmäßig kein sudo. In welchem ​​Benutzernamen verwenden Sie SSH? Wenn dies der Fall ist root, müssen Sie nicht verwenden sudo, da alles, was Sie tun, wenn sich SSH in das Redmine-System einfügt, als ausgeführt wird root. Wenn es sich um etwas anderes handelt, adminkönnen Sie versuchen, mit dem suBefehl eine rootShell zu erstellen, in der Befehle ausgeführt werden können root.

Eliah Kagan
quelle
Was ist zu tun, wenn das Skript Befehle sudo hat? Passiert mir mit mkusb. Es ist besser, sudo für die Zukunft zu installieren.
Love Grover
40

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


quelle
2
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 sudo-ldap?
2
Sie brauchen das sudo-ldap-Paket nicht. Sudo funktioniert einwandfrei auf meinem Computer und ich habe sudo-ldap nicht installiert.
Azendale
6

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

$ apt-get install sudo

Fügen Sie Ihren vorhandenen Benutzer zur Gruppe hinzu sudo

$ sudo adduser <user> sudo

Sie sollten sich dann als anmelden <user>und der sudoBefehl sollte dort sein.

Gayan Weerakutti
quelle
5

Versuchen Sie, den vollständigen Pfad zu verwenden

/usr/bin/sudo

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

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

hoffentlich funktioniert ..


quelle
4
Es ist sehr unwahrscheinlich, dass dies das Problem ist. /usr/binwird mit ziemlicher Sicherheit in Ihrem Standardpfad sein. Das Problem ist, wie aus anderen Antworten und Kommentaren hervorgeht, dass der sudoBefehl überhaupt nicht installiert wurde.
Keith Thompson
2

Der Fehler tritt auf, weil die Binärdatei, die Sie über die Befehlszeile aufrufen möchten, nur ein Teil der PATH-Variablen des aktuellen Benutzers ist, nicht jedoch ein 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 nicht finden, die ich über die Befehlszeile aufrufen möchte. Gibt daher den nicht gefundenen Fehlerbefehl zurück.

Sie können sudo anweisen, den PATH des aktuellen Benutzers zu verwenden, wenn Sie eine Binärdatei wie folgt 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 ​​selbst sudo zu benennen und das ursprüngliche sudo zu ersetzen.

In diesem Video finden Sie eine schrittweise Anleitung

Anonymes Schnabeltier
quelle