Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 20/12/2016, à 22:07

plumi

permissions de fichier avec serveur apache

Bonjour tout le monde,

Auparavant sur mac (:P), je débute sur ubuntu
je développe des sites web et je travaille en local avec php et un serveur apache
Depuis quelques jours, je bute sur un problème que je n'arrive pas à surmonter. Dans la partie admin de mon site on peut faire des upload de fichiers images dans un répertoire "upload"
A chaque téléchargement d'une image mon application crée une petite miniature, donc elle a besoin d'utiliser l'image téléchargée dans le répertoire "upload"
Et tous les fichiers téléchargés dans ce répertoire sont en lecture seule: 444 r--r--r--
et pourtant mon répertoire upload est totalement ouvert 777 rwxrwxrwx de manière recursive
et comme les fichiers venant du serveur apache, j'ai mis comme propriétaire du répertoire "upload", www-data de manière recursive, ainsi mes fichiers uploadés ont bien le propriétaire www-data mais restent en lecture 444 r--r--r--

Donc ma question, qui est sûrement très simple et pourtant je n'ai pas trouvé de solutions en naviguant sur le site ni ailleurs sur le web,
comment est-ce que je peux indiquer que tous les fichiers uploadés par www-data dans mon répertoire doivent être en lecture et écriture pour tout le monde en 666 rw-rw-rw ?

Merci beaucoup de prendre le temps

A bientôt

plumi

Dernière modification par plumi (Le 20/12/2016, à 22:08)

Hors ligne

#2 Le 21/12/2016, à 10:32

bruno

Re : permissions de fichier avec serveur apache

Bonjour,

plumi a écrit :

Dans la partie admin de mon site on peut faire des upload de fichiers images dans un répertoire "upload"
A chaque téléchargement d'une image mon application crée une petite miniature, donc elle a besoin d'utiliser l'image téléchargée dans le répertoire "upload"
Et tous les fichiers téléchargés dans ce répertoire sont en lecture seule: 444 r--r--r--

Les fichiers image peuvcent donc être lus par ton application et elle peut générer un fichier de miniature. Où est le problème ?



plumi a écrit :

et pourtant mon répertoire upload est totalement ouvert 777 rwxrwxrwx de manière recursive

C'est mal. rwxr-xr-x (755 en octal) sont amplement suffisants avec comme propriétaire et groupe www-data

Lorsque ton application place un fichier dans le dossier upload, elle le fait en tant qu'utilisateur www-data, le fichier appartient donc à l'utilisateur et au groupe www-data.
Sur Ubuntu le umask est réglé par défaut sur 022 ce qui implique que les fichiers soient crées avec des droits rw-r--r-- (ou rwxr-xr-x pour les dossiers).
Si tes fichiers créés par www-data le sont en lecture seule, c'est soit que tu as modifié la valeur de umask, soit que ton application modifie les droits sur les fichiers créés.

Pour voir la valeur de umask pour l'utilisateur www-data :

sudo -u www-data -s umask

Si cela renvoie 0022, alors tes fichiers devraient avoir des droits rw-r--r-- et c'est ton supplication qui est responsable de la modification des droits en r--r--r--.

Dernière modification par bruno (Le 21/12/2016, à 10:34)

Hors ligne

#3 Le 21/12/2016, à 15:04

plumi

Re : permissions de fichier avec serveur apache

Merci beaucoup Bruno pour ta réponse

en fait, je me suis trompé les fichiers téléchargés ont bien la permission rw-r--r--  sorry tongue

mais mon application (php) n'arrive pas à faire les miniatures
et j'ai ajouté mon compte user au groupe www-data et ça ne change rien

est-ce que je modifie umask avec pam_umask ? pour que tous les fichiers créés dans ce répertoire aient les permission rw-rw-r-- (664) ?

Hors ligne

#4 Le 21/12/2016, à 15:35

bruno

Re : permissions de fichier avec serveur apache

Je l'ai déjà dit :

- si les fichiers image appartiennent à www-data ton application (qui s'exécute en tant que www-data en principe) peut lire et modifier ces fichiers. Elle peut donc créer les miniatures. Inutile de bidouiller les droits et les umask au risque de casser le système.
D'ailleurs ton application a juste besoin d'avoir le droit en lecture sur le fichier image et u droit d’accès (rwx) et d'écriture sur le dossier où va être générée la miniature.

Donne nous le le propriétaire, le groupe et les droits effectifs sur le dossier upload et sur son contenu.

Si ton application n'arrive pas à générer les miniatures tu dois avoir un retour d'erreur, au moins dans les logs d'Apache. Il faut alors regarder /var/log/apache2/error.log et /var/log/apache2/access.log just après avoir tenté de générer une miniature.

Et si cela se trouve ce n'est pas un problème de droits mais d'abscence de bibliothèque PHP (gd ou imagemagick) permettant de générer et de manipuler des fichiers image.

Dernière modification par bruno (Le 21/12/2016, à 15:40)

Hors ligne

#5 Le 22/12/2016, à 06:06

plumi

Re : permissions de fichier avec serveur apache

Effectivement c'était l'absence de la biblio gd
oups désolé de t'avoir fait perdre ton temps avec des faux problèmes
il y a tellement longtemps que je bossais sur un environnement installé que j'avais oublié ce genre de détail tongue
merci beaucoup pour ton aide smile

bien à toi
et bonnes fêtes

Hors ligne

#6 Le 22/12/2016, à 10:35

bruno

Re : permissions de fichier avec serveur apache

Si je perds mon temps ici c'est par choix wink
Car on apprend toujours des choses en essayant de résoudre les problèmes des autres.

Bonnes fêtes à toi aussi wink

Hors ligne