Heim  >  Artikel  >  Backend-Entwicklung  >  Warum geben einige Unix-Befehle den Fehler „nicht gefunden“ in Pythons Paramiko Exec_Command zurück?

Warum geben einige Unix-Befehle den Fehler „nicht gefunden“ in Pythons Paramiko Exec_Command zurück?

DDD
DDDOriginal
2024-10-21 06:57:02362Durchsuche

Why Do Some Unix Commands Return

Fehler „nicht gefunden“ bei Unix-Befehlen in Pythons Paramiko

Beim Versuch, den Befehl „sesu“ auf einem Unix-Server mit Pythons auszuführen Paramiko exec_command, Benutzer können auf die Fehlermeldung „sh: sesu: nicht gefunden“ stoßen. Dieses Problem tritt nur bei bestimmten Befehlen wie „sesu“ auf, während andere Befehle wie „ls“ wie vorgesehen funktionieren.

Dieser Fehler ist auf ein Standardverhalten in SSHClient.exec_command zurückzuführen, das das nicht ausführt Shell im „Login“-Modus und weist kein Pseudo-Terminal zu. Folglich kann sich die Befehlsausführung von einer interaktiven SSH-Sitzung unterscheiden, bei der bestimmte Startskripts und Umgebungsvariablen bezogen oder verwendet werden.

Mögliche Lösungen

Die folgenden Lösungen werden empfohlen in der Reihenfolge der Präferenz:

  • Ändern Sie den Befehl, um den vollständigen Pfad zur ausführbaren Datei anzugeben:
/bin/sesu test
  • Konfigurieren Sie Startskripte, um den PFAD konsistent festzulegen:
  • Führen Sie den Befehl explizit über eine Anmeldeshell aus:
bash --login -c "sesu test"
  • Ändern Sie die Umgebung innerhalb des Befehls selbst:
PATH="$PATH;/path/to/sesu" && sesu test
  • Als letzten Ausweg (nicht empfohlen):
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)

Das obige ist der detaillierte Inhalt vonWarum geben einige Unix-Befehle den Fehler „nicht gefunden“ in Pythons Paramiko Exec_Command zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn