mkdir et chown dans un script php

mkdir et chown dans un script php - PHP - Programmation

Marsh Posté le 21-06-2006 à 19:22:29    

Bonjour,
 
je développe une interface d'admin pour gérer le contenu d'un site sur un dedié ovh
 
lorsqu'un utilisateur upload une image, j'aimerai la stocker dans un dossier spécifique créé à la volé en php
 
je fais donc mkdir('/home/xxx/nom_du_dossier',0775);
 
manque de chance ( mais c'est plutot normal niveau securité ) les dossiers sont crées sous l'utilisateur Nobody et le groupe Nobody
 
du coup, impossible d'uploader un fichier à l'interieur
 
j'ai donc testé avec :
 
shell_exec('chown -R nom_d_utilisateur /home/xxx/nom_du_dossier');
shell_exec('chgrp -R nom_du_groupe /home/xxx/nom_du_dossier');
 
mais rien à faire ca ne marche pas, j'ai essayé avec System, Exec, Passthru...
 
la commande 'chown -R nom_d_utilisateur /home/xxx/nom_du_dossier' lancée en ssh fonctionne très bien, avec la recursivité, je change les droits de tous les dossiers et sous dossiers
mais celà ne fonctionne pas depuis un script php
 
je vais installer suphp voir si celà peut résoudre mon probleme
 
si quelqu'un a une autre idée :)


Message édité par kubuntux le 21-06-2006 à 20:19:59
Reply

Marsh Posté le 21-06-2006 à 19:22:29   

Reply

Marsh Posté le 23-06-2006 à 06:33:49    

Salut,
 
Tu ne pourras (devrait  :??: )pas pouvoir exécuter de chmod directement, car l'utilisateur avec qui est lancé le deamon Apache ne le permet pas (nobody:nobody).
 
Tu peux essayer avec ça :
 

Code :
  1. error_reporting(E_ALL);
  2. $handle = popen('/./tonScript.sh 2>&1', 'r');
  3. echo "'$handle'; " . gettype($handle) . "\n";
  4. $read = fread($handle, 2096);
  5. echo $read;
  6. pclose($handle);


 
Il va te renvoyer dans l'echo le résultat de ta commande passé au shell
 
Il te reste plus qu'a faire un
 
ftopen(tonScript.sh, a+)
echo chmod 777 /... >>tonScript.sh
 
Mais bon tu dois donner les droits a apache.
 
 
Ou sinon la meilleur méthode (d'après moi), sont les CGI.
 
 
:)


---------------
http://caledonien.org
Reply

Marsh Posté le 26-06-2006 à 11:13:37    

apres installation de SuPHP, mon problème est réglé
 
les scripts php sont executés sous l'user proprietaire du coup, les repertoires et fichiers crées par le script php appartiennent au bon user
 

Reply

Marsh Posté le 26-06-2006 à 11:19:05    

Bonjour,
 
je suis moi meme hébergé par OVH et j'ai eu un problème accès similaire (moi c'était sur des fichiers uploadé ) il y a quelque temps,
j'ai tous simplement utilisé la fonction chmod() de php http://fr.php.net/chmod  
 
exemple :

Code :
  1. <?PHP
  2. $uploaddir = "/home/toto/www/dl/rep1/";
  3. // met en chmod 777 le repertoire  
  4. if (! is_dir($uploaddir)) {
  5.  if (! @chmod($uploaddir,777))
  6.         }
  7. ?>



---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed