Actif
Messages : 174
Inscription :
Bonjour jchouix,
J'ai un souci avec la création de répertoire par les rédacteurs.
Lorsqu'un rédacteur créé un rép, celui-ci obtient les droit 700.
Les fichiers que le rédacteur place dans ce rép obtiennent bien des droit 644.
Mais comme le rép à les droit à 700, les fichiers placé dans le rép ne sont pas utilisables...
Sauf à faire un chmod par ailleurs...
Il faut bien évidement que les droits attribués au répertoire lors de sa création soient à 755 ! Mais j'ai jeté un oeil dans les scripts PHP et je n'ai pas trouvé ce qui régit l'attribution des droits...
Je précise que mon compte sur le serveur apache est en suPHP et que je travaille tjs avec le fichier "upload.inc" original et non celui de ton fork qui permet la suppression des fichiers.
Merci d'avance pour ton aide.
Bien cordialement.
Réponses
Administrateur
Messages : 1390
Inscription :
bonjour,
Citation (ZebulonT)J'ai un souci avec la création de répertoire par les rédacteurs.
Lorsqu'un rédacteur créé un rép, celui-ci obtient les droit 700.
Les fichiers que le rédacteur place dans ce rép obtiennent bien des droit 644.
Mais comme le rép à les droit à 700, les fichiers placé dans le rép ne sont pas utilisables...
Sauf à faire un chmod par ailleurs...
Je ne comprends pas pourquoi tu as un chmod à 700 sur le répertoire créé car je mets les droits à 755 lors de sa création.
Vérifie que le chmod du répertoire parent au répertoire créé soit à 755 et non à 700.
Tiens moi au courant.
Citation (ZebulonT)Il faut bien évidement que les droits attribués au répertoire lors de sa création soient à 755 ! Mais j'ai jeté un oeil dans les scripts PHP et je n'ai pas trouvé ce qui régit l'attribution des droits...
C'est dans le fichier functionredac.inc situé dans le répertoire plugins/adm_redacteurs/inc/ à la ligne 611.
A+
Actif
Messages : 174
Inscription :
Re,
Citation (jchouix)Vérifie que le chmod du répertoire parent au répertoire créé soit à 755 et non à 700.
Tiens moi au courant.
Oui, à§à j'ai vérifié et je suis certain que le répertoire parent est bien à 755...
Citation (jchouix)C'est dans le fichier functionredac.inc situé dans le répertoire plugins/adm_redacteurs/inc/ à la ligne 611.
à‡a je vais aller voir de plus près...
Je te tiens au courant...
A+
Actif
Messages : 174
Inscription :
Bonjour jchouix,
Citation (jchouix)Je ne comprends pas pourquoi tu as un chmod à 700 sur le répertoire créé car je mets les droits à 755 lors de sa création.
...
C'est dans le fichier functionredac.inc situé dans le répertoire plugins/adm_redacteurs/inc/ à la ligne 611.
Et bien moi non plus je ne comprend pas car j'ai vérifié tout les @mkdir dans tous les scripts de mon installation de GuppY et ils attribuent tous des droits à 755 voir à 777 pour certains...
Je vais donc aller me renseigner du cà´te de mon hébergeur et d'une éventuelle config de suPHP...
Je te donne des nouvelles dès que j'en ai.
A+
Actif
Messages : 174
Inscription :
Re,
Comme promis, voici quelques infos...
Après discussion sur le forum de mon hébergeur, il s'avère qu'il s'agit d'un problème d'umask qui est à 077 dans la config de suPHP.
J'ai néanmoins trouvé une parade qui consiste à faire un appel à la fonction umask() avant les appels à la fonction mkdir()... J'ai donc modifié le code des trois fichiers suivants :
- admin/editors/upload/fonction_upload.inc
- plugins/adm_redacteurs/inc/fonctionredac.inc
- plugins/adm_redacteurs/editors/upload/fonctions_upload.inc
Code (Sélectionner le code)function createNewRep($newrep) { @umask(0022); @mkdir(CHEMIN.$newrep,0755); @copy(CHEMIN."data/index.php", CHEMIN.$newrep."/index.php"); @chmod(CHEMIN.$newrep."/index.php", 0644);
J'ai également essayé avec les modifs suivantes mais cela ne fonctionne pas...Code (Sélectionner le code)function createNewRep($newrep) { @mkdir(CHEMIN.$newrep,0755); @chmod(CHEMIN.$rep,0755); @copy(CHEMIN."data/index.php", CHEMIN.$newrep."/index.php"); @chmod(CHEMIN.$newrep."/index.php", 0644);
Là , j'avoue que je ne comprend pas pourquoi le chmod n'a aucun effet !
Un des admins chez mon hébergeur va voir si il peu configurer le umask sur suPHP...
Bref, je pense que le problème est résolu puisque màªme en l'absence de modif de l'umask sur suPHP, les modifs que j'ai apportée aux fichiers sont satisfaisantes.
Merci beaucoup pour toute l'attention portée à ce sujet.
A+
Actif
Messages : 174
Inscription :
Bonjour,
Un des modos du forum de mon hébergeur m'a suggéré une autre faà§on de résoudre le problème...
Je l'ai testée et cela fonctionne aussi !Code (Sélectionner le code)$old = umask(0); @mkdir(CHEMIN.$newrep,0755); umask($old);
Comme quoi on peut résoudre un màªme problème de différentes faà§ons...
Bonne journée à tous.
Actif
Messages : 174
Inscription :
Bonsoir,
Dans le màªme ordre d'idée (problème de chmod avec un serveur Apache sous suPHP), j'ai également corrigé deux fichiers qui concernent le plugin diaporama.
Le premier est le fichier /plugins/adm_redacteurs/plugins/diaporama/inc/upload.inc
D'abord à partir de la ligne 42 :Code (Sélectionner le code)function MakeDir($dir) { $tmp1 = explode('/', $dir); $tmp2 = CHEMIN; for($t = 0; $t < count($tmp1); $t++) { $tmp2 .= $tmp1[$t]; if(!is_dir($tmp2)) //ligne modifiée par ZebulonT //if (@mkdir($tmp2, 0777)) { if (@mkdir($tmp2, 0755)) { @chmod($tmp2, 0755); //Ajout par ZebulonT => pour que le chmod sur le répertoire créé soit effectif avec le serveur apache sous suPHP @umask(0022); //Ajout par ZebulonT => pour que le chmod sur le fichier index.php soit effectif avec le serveur apache sous suPHP @copy(CHEMIN."data/index.php", $tmp2."/index.php"); @chmod(CHEMIN.$tmp2."/index.php", 0644); } else { if (!is_file($tmp2."/index.php")) { @umask(0022); //Ajout par ZebulonT => idem ci-dessus @copy(CHEMIN."data/index.php", $tmp2."/index.php"); @chmod(CHEMIN.$dir."/index.php", 0644);
Ensuite à partir de la ligne 200 :Code (Sélectionner le code)for($i=0; $i<$nb_upload; $i++) { $fic = $_FILES["img$i"]['name']; $tmp = $_FILES["img$i"]['tmp_name']; @umask(0022); //Ajout par ZebulonT => Afin de corriger un problème de chmod 600 sur les images chargées pour le diaporama => serveur Apache sous suPHP
Ensuite à la ligne 232 :Code (Sélectionner le code)//Ligne modifiée par ZebulonT => Modification du chmod pour le seveur Apache sous suPHP => Question de sécurité //@chmod(CHEMIN.$dp_dir_vig.'/'.$fic, 0666); @chmod(CHEMIN.$dp_dir_vig.'/'.$fic, 0644);
Et enfin à la ligne 255, il faut faire la màªme modification que la précédente...
Le deuxième fichier à modifier est le fichier /admin/plugins/diaporama/inc/upload.inc et les modification sont identiques si ce n'est que les numéros des lignes diffèrent légèrement...
Voilà , cela peut toujours servir à d'autres webmasters qui travaillent avec un serveur sous suPHP.
A+