Gestion de Php-Apache Droit d'ecriture

Eléphant du PHP | 189 Messages

18 janv. 2006, 10:16

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 ;-)

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2006, 20:09

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 :-(

Eléphant du PHP | 189 Messages

19 janv. 2006, 14:43

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

Eléphant du PHP | 189 Messages

23 janv. 2006, 08:56

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 :-(

Eléphant du PHP | 189 Messages

25 janv. 2006, 01:30

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 ???

Mammouth du PHP | 19672 Messages

25 janv. 2006, 11:40

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 189 Messages

25 janv. 2006, 13:34

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

Eléphant du PHP | 189 Messages

27 janv. 2006, 13:46

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 ?