ssh2_exec et mkdir ??

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ssh2_exec et mkdir ??

par albat » 24 août 2008, 22:18

Modération :
the_grinch, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
:wink:

par the_grinch » 24 août 2008, 21:57

Oui, c'est ce que je vais faire =) et plus me renseigner sur ce que tu m'as dis ( si ce n'est pas a cause de mon oubli de shell )

Merci encore !

par Sékiltoyai » 24 août 2008, 21:50

Ca arrive :)
Apprends tout de même à lire la documentation, même lorsqu'elle n'est pas exhaustive, à lire entre les lignes…

par the_grinch » 24 août 2008, 21:47

Ahhhhhh quel con je suis !!!!
Désolé de t'avoir fait perdre ton temps Sékiltoyai, mais au moins je saurais quoi faire la prochaine fois.
En fait c'est que j'ai suPHP aussi pour gérer les sites de mes membres, ( et leur accés FTP )
Et j'ai testé avec un membre qui n'avais pas d'accès shell ( /bin/false ) et je viens de m'en rendre compte.
ça fonctionne parfaitement maintenant, ( je lui ai donné /bin/bash )
Merci encore et encore désolé mais c'est bisarre qu'il n'a pas envoyé d'erreur.

par Sékiltoyai » 24 août 2008, 21:43

C'est spé…
Là je ne vois pas… Théoriquement il devrait y avoir un message d'erreur dans l'une des deux sorties… Peut être un problème de droits, de dossier parent inexistant, ou ce genre de choses, sinon, je ne vois pas…

par the_grinch » 24 août 2008, 21:39

En remplaçant :SSH2_STREAM_STDERR par SSH2_STREAM_STDIO
De même, rien a part :

Code : Tout sélectionner

Connection etablie ! ssh2_exec oki ! ssh2_fetch_stream OK
    
    $handle = ssh2_fetch_stream($varcommandessh, SSH2_STREAM_STDIO);

    if ($handle)
    {
    
    echo "ssh2_fetch_stream OK";
    $varfread = fread($handle, 8192);
    echo $varfread;

par Sékiltoyai » 24 août 2008, 20:34

Ok, et la même chose avec STDIO ?

par the_grinch » 24 août 2008, 20:12

J'ai fais fread() mais il ne me retourne rien. ( code dans mon précédent post )

par Sékiltoyai » 24 août 2008, 20:11

Comme je te disais tu dois lire le flux retourné avec fread. Et fais le aussi pour STDIO… Avec cela tu auras le retour de la commande…

par the_grinch » 24 août 2008, 20:03

Oki , j'ai fais ceci :
	<?php
$connection = ssh2_connect('crocamis.fr', 22);
if (ssh2_auth_password($connection, 'sab', 'sab')) 
{
echo "Connection etablie !<br><br>"; 

	if (ssh2_exec($connection, 'mkdir /home/sab/aze'))
	{
	echo "ssh2_exec oki !<br>";
	
	$varcommandessh = ssh2_exec($connection, 'mkdir /home/sab/aze');
	
	$handle = ssh2_fetch_stream($varcommandessh, SSH2_STREAM_STDERR);

	if ($handle)
	{
	
	echo "ssh2_fetch_stream OK";
	$varfread = fread($handle, 8192);
	echo $varfread;
	
	}
	
	else
	{
	echo "pas de ssh2_fetch_stream";
	}
	
	
	}
	else
	{
	echo "ssh2_exec echec<br>"; 
	}

} 
else 
{
echo "Authentication Failed...<br>";
}


?>
ça me retourne :

Code : Tout sélectionner

Connection etablie ! ssh2_exec oki ! ssh2_fetch_stream

par Sékiltoyai » 24 août 2008, 19:52

Bon, c'est bon signe, tu peux récupérer la sortie au moins.
Tu aurais dû lire la documentation. Fais la même chose que dans l'exemple (en travaillant avec ssh2_exec() plutôt que ssh2_shell()).
Et lis le flux que tu récupères avec un fread()…

par the_grinch » 24 août 2008, 19:36

<?php
$connection = ssh2_connect('mon_ip', 22);
if (ssh2_auth_password($connection, 'sab', 'sab')) 
{
echo "Connection etablie !<br><br>"; 

	if (ssh2_exec($connection, 'mkdir /home/sab/aze'))
	{
	echo "ssh2_exec oki !<br>";
	}
	else
	{
	echo "ssh2_exec echec<br>"; 
	}

} 
else 
{
echo "Authentication Failed...<br>";
}


?>
M'affiche :

Code : Tout sélectionner

Connection etablie ! ssh2_exec oki !
Donc ça fonctionne mais toujours pas de dossier en vu ...
Je ne sais pas comment récuprer les fluxs STDERR et STDOUT... :s
J'ai recherché sur google mais je trouve pas ou alors j'y comprends rien.

par Sékiltoyai » 24 août 2008, 01:06

Je ferais tout ça demain et je te dirais.
Très bien, bonne nuit :)

par the_grinch » 24 août 2008, 00:22

Tu as essayé d'exécuter la commande en te connectant directement ?
Que te renvoie la fonction ssh2_exec() ?
Si elle ne te renvoie pas FALSE, elle est censé te renvoyer une ressource, tu as essayé de récupérer les flux STDERR et STDOUT avec la fonction ssh2_ fetch_ stream() et de lire ces flux avec fread() ?

Que de questions sans réponse… :)
Bien sur, en me connectant directement, ça crée bien le dossier aze.
Je verrais demain ce que me renvoie la fonction.
Je n'ai pas essayé de récupérer le flux STDERR ni STDOUT car je ne sais pas ce que c'est ( ça sera bientot fait ^^ ).

Je ferais tout ça demain et je te dirais.

par Sékiltoyai » 23 août 2008, 23:16

Tu as essayé d'exécuter la commande en te connectant directement ?
Que te renvoie la fonction ssh2_exec() ?
Si elle ne te renvoie pas FALSE, elle est censé te renvoyer une ressource, tu as essayé de récupérer les flux STDERR et STDOUT avec la fonction ssh2_ fetch_ stream() et de lire ces flux avec fread() ?

Que de questions sans réponse… :)