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:
/bin/sesu test
bash --login -c "sesu test"
PATH="$PATH;/path/to/sesu" && sesu test
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!