Page 1 sur 1

Gestion de Php-Apache Droit d'ecriture

Posté : 18 janv. 2006, 10:16
par Number
Bonjour a tous,

Je cherche des informations sur la gestion des droits lors de la creation de fichier par php 'fwrite, et mkdir' par exemple.

Lors de l'utilisation de ces fonctions, les fichiers sont créer avec des droits de proprietaire en ecriture / mod mais aucun droit de groupe..

Sur les serveurs, comment gerer ces droits avec des comptes ftp differents?

Sachant que PhpsafeMod gere le uid ou gid..

Admetons, que j'ai 3 comptes Ftp ..

Chaqu'un ecris dans un dossier avec des droits uid et gid..

Sachant que leurs répertoires doit lui aussi, etre acessible en ecriture par apache.. je dois soit les ajouter a ce groupe, soit donner le droits lors de la creation a apache. Tous en metant un difference sur l'uid ou gid..

Pour que phpsafemod marche..

Apres plusieurs tests j'en suis arrivé a ceci :

Dossier : Créer avec user apache, gid different pour chaque user
Fichier : pareil

Acces aux proprio et au groupe

Le safeMod marche
Et Mkdir aussi..
Seulement il le crée avec les droit d'apache en proprio, mais aucun autre.
Ce qui fait que l'utilisateur, ne peut plus changer le chmod du fichier, ni le supprimer, ou si c'est un dossier ne peut ecrire dedans

Les fichiers envoyé par ftp sont en 775
Et les fichiers créer par php le sont en 700

Et j'ai du utiliser une astuce, pour que chaque fichier aille les droit apache.
MAis que phpsafemode marche quand meme et ce sans avoir de réel user sur le system (unix)

Merci a vous ;-)

Posté : 18 janv. 2006, 20:09
par Invité
Comment font les hebergeurs ? :-(

Si SafeMode est a On ..

Quand un utilisateurs crée un dossier, il ne peut par ftp rien y metre ...
Sauf si il a les droit d'apache

Donc je devrais donner le droit d'apache a tous les utilisateurs..

Mais donc SafeMode ne servirais a rien :s

Suis perdu :-(

Posté : 19 janv. 2006, 14:43
par Number
J'ai trouvé quelque choses d'interessant et de prometeur :

J'arrive avec mon serveur ftp a :
- Créer des dossiers,des fichiers avec l'uid du proprio et le groupe d'apache

Donc cela fonctionne parfaitement
Le probleme des fichier créer par Php vas peut etre se regler d'apres ce que j'ai lut :
Le mode par défaut est le mode 0777, ce qui correspond au maximum de droits possible.
Chez moi, surement du a une configuration automatique de php / apache.
Se mode est en 0700, il est donc aparement posible de le modifier.

Puis-je savoir comment ?

Ensuite, derniere questions :

safe_mode est une directive PHP_INI_SYSTEM
La valeur peut être modifiée dans php.ini ou httpd.conf

Comment modifier safe_mode sur un Vhost ?

Merci a vous ;-)

P.S: L'invité c'etait moi

P.S : J'ai trouver Php_Admin_Value safe_mode Off
Reste a trouver comment il on modifier l'umsask (0700) lors de la creation d'un fichier pour le remetre a 0770

Posté : 23 janv. 2006, 08:56
par Number
Toujours pas trouver ....

J'peux avoir une confirmation s'il vous plait ?

Sur vos hebergeur respectif quand vous utilisé mkdir(), fwrite, etc ..

Les fichiers/dossiers crée vous sont bien accessible directement ?
Chez moi, il ne sont accessible qu'a Apache... Et non pas a l'user qui a crée le script.

Vu que PhpsafeMode est a On .. Et SafeMode Gid a off, on se base sur un uid different..
Et donc personne n'est l'utilisateur apache (c'est impossible)

Alors comment fair pour changer le chmod, ou umask de création d'un fichier par Php ?

Merci et bonne journée :-(

Posté : 25 janv. 2006, 01:30
par Number
Houhouuu ? Personne pour verifier si il on directement acces au dossier crée par mkdir() lorsqu'il ne specifie pas de chmod avec safemode a on ???

Posté : 25 janv. 2006, 11:40
par Cyrano
Il faut vérifier en général dans le phpinfo : les fonctions qui ont été désactivées dans le php.ini sont indiquées.

Après, c'est une question de gestion des droits d'écriture modifiable ou non selon que la fonction chmod() a été désactivée ou non.

Posté : 25 janv. 2006, 13:34
par Number
En fait, j'ai mkdir() d'activé, chmod() aussi ;-)

Donc je peut y avoir acces en changeant le chmod et/ou le umask..

Cependant sur les hebergeurs type free lycos etc..

Quand on crée un repertoire ou fichier, celui-ci est directement acessible au modification par ftp.
Ce qui implique que l'utilisateur ftp aille les droits sur le fichier..

Sachant que SafeMode fonctionne avec les uid / gid
et qu'il est actif sur les hebergeurs..

Comment ceux-ci procedent'ils pour que sans utiliser les fonctions chmod() umask() on aille acces a ce dossier/fichier ?

Merci

Posté : 27 janv. 2006, 13:46
par Number
Harf personnes? :-(

Je réexplique :

J'ai réussi a regler mes droits comme ceci :

User1 uid 1001 gid 502
User2 uid 1002 gid 502

uid > 100 = faux utilisateurs (n'existe pas dans le system)
gid = 502 = Gid d'un groupe fesant partie d'apache

Connection ftp avec ces utilisateurs dans leurs directory home par defaut.
Php safemode = on ..

Donc aucune possibiliter d'acceder a d'autre repertoire

Seullement un script demandant de crée un fichier/dossier le fera si aucun chmod n'est specifier avec les droits 700..

Donc seul l'user ayant l'uid 48 pourra modifier/supprimer se dossier..
SAUF si par apres il change le chmod a l'aide de son script php

Car c'est impossible via le logiciel ftp (vu qu'il n'est plus proprio ..)

Les hebergeurs arrivent a coutourné ceci..
Vu qu'avez le safemode a on.. On a quand même pas acces a d'autr repertoire..

Personne n'aurais ne fusse qu'une piste ?