Erreur "introuvable" avec les commandes Unix dans Paramiko de Python
Lors de la tentative d'exécution de la commande 'sesu' sur un serveur Unix à l'aide de Python Paramiko exec_command, les utilisateurs peuvent rencontrer le message d'erreur "sh: sesu: not found." Ce problème ne survient qu'avec certaines commandes, telles que « sesu », tandis que d'autres commandes, comme « ls », fonctionnent comme prévu.
Cette erreur provient d'un comportement par défaut dans SSHClient.exec_command, qui n'exécute pas le shell en mode "login" et n'alloue pas de pseudo terminal. Par conséquent, l'exécution de la commande peut différer d'une session SSH interactive, dans laquelle certains scripts de démarrage et variables d'environnement sont générés ou utilisés.
Solutions possibles
Les solutions suivantes sont recommandées par ordre de préférence :
/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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!