Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1085 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  suPHP / PHP / SSH

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suPHP / PHP / SSH

n°1729154
2dt3ntion
Posté le 06-05-2008 à 17:51:45  profilanswer
 

Bonjour à tous  :) ,

 

Voici la situation : Je fais un stage dans lequel je développe une interface web qui doit permettre d'utiliser un programme hébergé sur une machine distante du serveur PHP.
Pour ce faire j'utilise des commandes SSH dans du code PHP. Le problème est que lorsque le ssh est exécuté par PHP l'utilisateur alors considéré est "nobody" (celui d'Apache) et non pas l'utilisateur du serveur qui heberge le serveur apache.
C'est pour cela que j'ai fait installé suPHP (ce n'est pas moi qui l'ai fait). On m'a dit que normalement il a été installé.
Voici la config actuelle (phpinfo() ) :
C'est à partir de la que j'ai besoin de vous :
1) Je voudrais vérifier que suPHP a été correctement installé.

 

2) Je voudrais savoir comment utiliser suPHP et établir un code php qui démontre que celui-ci est utilisé.
(Je dois vraiment avoir du mal parce que j'ai cherché plusieurs heures sur le net pour au final ne rien comprendre. Faut dire que je débute dans le monde linux  :sweat: )
   
3) Faire marcher mon code : Ci dessous est la partie php qui est sensée exécuté le ssh

 

"ssh.php" :
<? php
$web_server_ip = '192.168.1.140';    // Ip du serveur web (qui heberge le serveur apache et "ssh.php" )
$web_user_name = 'sarah';  // Utilisateur serveur web
$hpc_ip = '192.168.1.1';    // Ip de la machine qui heberge le programme de calcul
$hpc_user_name = 'anais';

 

//echo 'hello from ssh.php</br>';

 

$cmd_ssh = "ssh sarah@192.168.1.1 mkdir hello)";
$a = system($cmd_ssh,$res);   //exécute commande $cmd et récup le résultat dans $res
if ($res == 0 ){
 echo '</br>ssh execute';
}
else {
 echo '</br>ssh non execute';
}
?>

 

Un système de clé publique/privé a été mis en place afin de permettre a sarah d'aller sur anais sans utiliser de mot de passe. Ce système fonctionne (crée et testé avec "Putty" )

 


Le but de ce code est juste de pouvoir créer un dossier dans la racine de anais depuis du code php hébergé sur sarah.
suPHP permettrait donc d'exécuter les commandes ssh en tant que sarah et non plus nobody, si ceci est réllement le cas le dossier "hello" devrait être créer.
Remarque la même manip marche depuis Putty

 

Merci par avance si certains peuvent m'aider.
Mon problème paraitra bete pour certains mais je rappelle que je ne connais quasiment rien en linux.

 

Cordialement  :hello: ,

 

2dt3nS


Message édité par 2dt3ntion le 07-05-2008 à 09:20:19
mood
Publicité
Posté le 06-05-2008 à 17:51:45  profilanswer
 

n°1729325
2dt3ntion
Posté le 07-05-2008 à 09:23:14  profilanswer
 

Up Up :)
petite précisions ( phpinfo()
- php version 4.2.2
- apache version 2.0
 )  
 
Quelqu'un s'il vous plait... ?

n°1729387
soju
One shot !
Posté le 07-05-2008 à 11:12:23  profilanswer
 

1) avec phpinfo tu regardes si mod_suphp est présent dans les modules apache
2) tu as juste à changer le propriétaire du script
 
normalement pas besoin de suphp vu que tu spécifies l'utilisateur dans la commande ssh
tu as un message d'erreur ? (tu peux si besoin rediriger le flux stderr vers stdout en ajoutant à la fin de ta commande 2>&1)
 

n°1729604
2dt3ntion
Posté le 07-05-2008 à 15:55:25  profilanswer
 

Merci de vos réponses
 
NazzTazz :  
Ce que tu viens de me montrer a l'air génial. Cependant la librairie ssh2 n'est pas installé sur le serveur, je vais voir pour la faire installer.
Remarque : je n'utilise pas exec() mais system().
 
soju:
1) J'ai regardé dans le phpinfo() et pas de suPHP dans les modules apache :(
 
Oui je spécifie l'utilisateur dans la commande mais parce qu'elle est exécuté sous php, c'est l'utilisateur "nobody" qui vient remplacer celui que je renseigne :@ d'où l'utilisation requise de suPHP...
Enfin quand j'exécute mon bout de code, non je n'ai pas de message d'erreur. Par contre $a = false et $res = 255. J'aicherché la signification pour une valeur retour égale à 255 et je n'ai pas trouvé d'explication.
De plus je n'ai pas compris "rediriger le flux stderr vers stdout" ni ce à quoi cela pouvait servir. Tu peux m'expliquer s'il te plait ?
 
Du coup je pense que le problème majeur réside dans l'installation de suPHP, et vu que je n'y connait rien en Linux...
Z'auriez pas un expert sous la main ? :) qui puisse me guider dans l'installation parce que j'ai regardé la doc complète sur le site suphp et il y a trop de chose que je ne comprend pas...pfff
 
Any idea?

n°1729631
soju
One shot !
Posté le 07-05-2008 à 16:24:59  profilanswer
 

récupère le message d'erreur avant tout :

Code :
  1. exec('ssh sarah@192.168.1.1 mkdir hello 2>&1', $output);
  2. print_r($output);



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  suPHP / PHP / SSH

 

Sujets relatifs
[PHP] problèmes avec balises html[PHP] Passage de pages en pages
affichage resultats en PHP[PHP] System de template PHPbb3 de l'aide svp :)
Processus PHP?[Résolu] Variables de Variables ...
[PHP] Communication Html/PHPDe VRAIS cours de PHP, ça existe ??
[Résolu 2 fois ;)] script PHP liste deroulante et base de données 
Plus de sujets relatifs à : suPHP / PHP / SSH


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR