[résolu] problème de propriétaire : nobody, serveur web

Bonjour à tous

Mon problème c’est que quand je crée un dossier via PHP (donc via le serveur web) , sur un site, le propriétaire du dossier deviens “nobody”, l’utilisateur par défaut d’apache alors qu’il faudrait que le propriétaire du dossier reste à la personne à qui appartient le site.
J’ai cherché pendant des heures sur le net, je n’ai pas réussi à résoudre ce problème

Si quelqu’un à solutionner ce problème, qu’il me fasse signe.

bonjour,
tu veux dire que tu peux créer un dossier dans le DocumentRoot d’un site distant ? peux - tu monter le code php ici, si c’est pas trop volumineux ?
Le code php s’exécutant sur le serveur, il suffirait de rajouter une ligne du style dans ce code qui permet la création du fichier. exec("chown bonuser.bongroup lefichier"); non ?

J’ai trouvé,
il faut installer le module suPHP qui va laisser les droits au propriétaire du site et non du serveur web.

Pour répondre à ta question:
C’est parce que on as installé Php en module Apache. De ce fait il en hérite les permissions.
Supposons que le propriétaire du site est toto pour le user et toto pour le groupe.
Un utilisateur visite ton site et upload un fichier image (dans une galerie par exemple).
Toto n’as plus le droit de modifier ou de supprimer cette image puisque le propriétaire n’est plus toto mais ‘nobody’.

A l’upload du fichier par la commande php l’image à changé de propriétaire, c’est apache qui s’approprie les droits.

Ah oui, et comment est récupéré le nom de l’user qui upload l’image pour que l’image uploadée appartiennet à cet user ?
exemple: l’user titi, authentifié via un formulaire d’authentification, a effectivement les droits nécessaire pour déposer image.png sur le serveur, il le fait … bon, quels sont les user et groupe de image.png du coup ?
J’imagine:

  • que titi n’est pas un user système, donc chmod titi image.png ne peut pas fonctionner … à moins que ce soit un user system avec un shell à /bin/false.
  • que le propriétaire du fichier va être www-data, chez moi, nobody chez toi, mais ceci se règle dans httpd.conf.
    Tu dis qu’avec le module suPHP, ça fait quoi alors ? ça donne quel propriétaire pour image.png au final ?

Voici:
suphp.org/Home.html
Tu comprendras mieux car je me suis peut-être mal exprimé.

Ben oui mais d’aprés ce que je comprend, tu veux que image.png appartienne à celui qui la dépose, mais seul un user system peut etre propriétaire d’un fichier … non ?

Oui tout à fait.
Mais on essai pas de récupérer le nom de l’user qui a uploader l’image, le visiteur du site pourrais être même toi-même, ça n’a pas d’importance.

Le problème ici c’est que lorsqu’on installe php4 ou 5 en module, le serveur web hérite des permissions des fichiers et avec suPHP non.

Salut Dexmon

comment se passe ton install de suphp ?

Avec fullemetalucard, nous avons réussi à l’installé mais nous avons ce soucis :

http://forum.debian-fr.org/viewtopic.php?t=6435

Qu’en pense tu s’il te plaît ?

Salut,
mon install de suphp c’est bien passé et il met les bon droits aux utilisateurs mais j’ai trouver une autre solution.
C’est de configurer mon serveur ftp avec les mêmes utilisateurs que le serveur web.
Si apache est nobody nogroup alors ftp sera nobody nogroup et là plus de problème de droits. Le contraire marche aussi.
C’est à dire que tu crée un utilisateur spécial sans shell valide pour le serveur web et le serveur ftp par exemple webuser et webgroup.

ok merci pour l’info :wink: