IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SSH2] Exécution de plusieurs commandes


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut [SSH2] Exécution de plusieurs commandes
    Bonjour à tous,

    Je souhaiterai vous demander un petite chose certainement facile, mais qui le devient assez compliquée quand on ne trouve pas là solution !

    En effet, j'ai bien installé libssh2 et php5, tout fonctionne puisque mon script php qui envoi des commandes fonctionne très bien.

    Je cherche à modifier le mot de passe d'un login avec la commande via la commande exec "passwd login", mais je n'arrive pas à répondre à la question que me pose le serveur... j'ai tout essayé mais rien n'y fait...

    - Insérer une 2e commande exec avec le password...
    - $stream = ssh2_exec($connection, 'passwd julien', 'test');
    - $stream = ssh2_exec($connection, 'passwd julien && test');

    Après celà, rien n'y fait !

    En fait, j'aimerai répondre aux questions du serveur automatiquement avec mon script php dans le but d'une petite interface web.

    Quelqu'un pourrait-il m'aider à modifier mon code php pour faire celà SVP ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $connection = ssh2_connect('host', 22);
    ssh2_auth_password($connection, 'login', '********');
    $stream = ssh2_exec($connection, 'passwd login', 'test', 'test');
    ?>
    Je vous remercie à tous par avance,
    Cordialement,
    Kneiss

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Bonsoir,

    En fait, le pb ne vient pas directement de PHP mais de la commande passwd et du mode d'interaction Unix : pour rentrer un mot de passe à la commande passwd, on passe par ce que les unixiens appellent l'entrée standard qui correspond plus ou moins au clavier. Là, vous cherchez à passer des données à passwd sur l'entrée standard. Pour faire ça, y a plusieurs moyens plus ou moins détournés. La première chose à faire avant de se lancer dans des scripts ou des commandes alambiquées c'est de voir si la commande passwd peut se contenter d'un mot de passe passé en tant que paramètre (ce n'est pas parce que le comportement standard de passwd est de récupérer le mot de passe sur l'entrée standard qu'on ne peut pas lui passer l'info en tant que paramètre !).

    Donc, question : à quelle système vous connectez-vous et est-ce que la commande passwd que vous voulez utiliser peut prendre le mot de passe en paramètre ? Pour le savoir : man passwd. Si ce n'est pas possible, on regardera comment faire pour passer le mot de passe sur l'entrée standard.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci très sincèrement de votre réponse si rapide !

    J'ai une debian Sarge.

    J'ai fais man passwd, mais cette commande n'est pas parametrable pour ajouter directement le mot de passe (obligation d'indiquer 2 fois les mots de passes pour que le serveur compare les 2 apparement).

    Pouvez-vous m'aider svp ?

    Merci d'avance

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Je ne connais pas cette distrib. Vous pouvez me donner (en attachement à un message par exemple) le manuel de passwd ? Il y a peut-être quand même une option qui pourrait nous aider. Merci.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Voila une partie du fichier que j'ai pu récupérer:

    Options:
    -a, --all report password status on all accounts
    -d, --delete delete the password for the named account
    -e, --expire force expire the password for the named account
    -h, --help display this help message and exit
    -k, --keep-tokens change password only if expired
    -i, --inactive INACTIVE set password inactive after expiration
    to INACTIVE
    -l, --lock lock the named account
    -n, --mindays MIN_DAYS set minimum number of days before password
    change to MIN_DAYS
    -q, --quiet quiet mode
    -r, --repository REPOSITORY change password in REPOSITORY repository
    -S, --status report password status on the named account
    -u, --unlock unlock the named account
    -w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
    -x, --maxdays MAX_DAYS set maximim number of days before password
    change to MAX_DAYS


    Merci d'avance.
    Kneiss

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu peux toujours tenter de voir si l'option --stdin est reconnue, sinon regarde s'il existe une commande chpasswd. Si c'est toujours pas bon, je regarderai demain sur ma VMWare Linux si j'arrive à qqch.

    Sinon, est-ce que la commande expect existe sur la machine sur laquelle tu veux changer le mot de passe ? J'ai vu ça qui l'utilise.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Alors je ne peux pas tester, ma commande passwd n'est pas la même que la tienne. En plus, passwd ne semble pas lire le mot de passe depuis l'entrée standard, bref c'est mal bar'.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci Mac, on avance donc un peu déjà... :-)

    En effet, je pense que c'est une avancée puisque ma debian possède bien la commande chpasswd.

    Je cherche un peu plus d'infos sur cette commande de mon côté !

    PS: J'ai également la commande expect !
    PS2: Comment savoir si --stdin est reconnue ?

  9. #9
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben tu fais "echo nouveau_mot_de_passe | passwd --stdin utilisateur" et tu vois si ça passe

    Mais si tu as chpasswd, passe par ce script.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Ben tu fais "echo nouveau_mot_de_passe | passwd --stdin utilisateur" et tu vois si ça passe

    Mais si tu as chpasswd, passe par ce script.
    +1, ça fonctionne super !

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    C'est impec Mac, merci !

    Il me reste une dernière chose pour mon panel admin, ce serait de créer un compte...

    En fait, j'ai essayé la commande suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $connection = ssh2_connect('host', 22);
    ssh2_auth_password($connection, 'login', '********');
    $stream = ssh2_exec($connection, 'useradd -m -p password login');
    ?>
    Cette commande fonctionne parfaitement bien, seulement useradd ne crypte pas les passwords.

    Y'aurait-il un moyen de crypter les passwords comme la commande adduser avec une autre commande (adduser pose des questions, donc impossible je crois) ?

    Merci d'avance !

    Attention:
    - A l'inverse de certaines distrib, la Debian ne possède pas la même fonction entre useradd et adduser. Adduser possede tout un script rajouté de useradd qui contient des questions en plus (Password, nom, prénom..).
    - Useradd ne crypte pas les passwords, et Debian ne lit que le password crypté (comme le fait adduser)

  12. #12
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Aucune idée, en fait, ce genre de commande est assez spécifique à l'OS et comme j'ai pas de Debian sous la main, je ne peux pas tester. Dans tous les cas, tu peux faire un coup de passwd après ton useradd !

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Oui, je posai la question au cas où tu avais une petite idée, mais je vais faire comme ça tu as raison.

    En tout cas c'est super Mac, je te remercie je suis vraiment content !

    Longue vie à Developpez.Net !

    PS: J'indique "Résolu" pour mon problème !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution de plusieurs commandes DOS en java
    Par tomzdi dans le forum Général Java
    Réponses: 3
    Dernier message: 03/07/2013, 19h27
  2. [ssh] Exécution de plusieurs commandes
    Par Spikedammage dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 18/01/2013, 15h22
  3. [SSH2] ssh2_exec, problème d'exécution de la commande
    Par atomics dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 01/07/2008, 14h49
  4. Réponses: 10
    Dernier message: 03/04/2008, 15h58
  5. Exécuter plusieurs commandes bat
    Par n@n¤u dans le forum Langage
    Réponses: 4
    Dernier message: 31/08/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo