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
- Was ist zu tun? tun, wenn das Skript Befehle sudo hat. Passiert mir mit mkusb. Es ist besser, sudo für zukünftige Bequemlichkeit zu installieren.
- Googler / Lernende : Während das oben genannte funktioniert, Debian-Wiki sagt manchmal, dass
sudo
eine bessere Option ist
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 Befehlsudo
' ü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