permissions www-data

Eléphant du PHP | 107 Messages

16 oct. 2013, 12:54

Bonjour à tous,

J'ai installé proftpd et apache sur un serveur VPS debian 6.
J'ai un site joomla qui tourne sur le serveur apache.

Après installation, je me suis rendu compte que des erreurs de permissions étaient générées lorsque le site essayait d'effectuer des opérations sur les fichiers.
J'ai donc exécuté l'instruction suivante en ssh

chown www-data:www-data /var/www/monsite.com -R

Cela a résolu le pb.
Pourtant le lendemain, les mêmes erreurs sont apparues, et j'ai dû réexécuter l'instruction pour que tout fonctionne.

Je ne sais pas exactement ce qui se passe mais j'ai l'impression que les permissions sont réinitialisées lorsque l'hébergeur redémarre la machine
Comment puis-je faire pour ne pas avoir à exécuter cette instruction tous les jours?

En vous remerciant pour vos réponses.

ViPHP
ViPHP | 5924 Messages

16 oct. 2013, 13:07

Bonjour,
Après installation, je me suis rendu compte que des erreurs de permissions étaient générées lorsque le site essayait d'effectuer des opérations sur les fichiers.
J'ai donc exécuté l'instruction suivante en ssh

chown www-data:www-data /var/www/monsite.com -R

Cela a résolu le pb.
Pourtant le lendemain, les mêmes erreurs sont apparues, et j'ai dû réexécuter l'instruction pour que tout fonctionne.

Je ne sais pas exactement ce qui se passe mais j'ai l'impression que les permissions sont réinitialisées lorsque l'hébergeur redémarre la machine
Comment puis-je faire pour ne pas avoir à exécuter cette instruction tous les jours?
Bizarre...
Si c'est un VPS:
* Quel hébergeur ?
* Est-il infogéré ou administré par tes soins ?
* Est-ce que l'hébergeur a accès à la machine (une clé ssh dans /root/.ssh/authorized_keys par exemple) ?
* Es-tu sûr que la machine a été redémarrée (commande uptime) ?

Cordialement

Eléphant du PHP | 107 Messages

16 oct. 2013, 13:21

le redémarrage n'est qu'une supposition mais je n'ai aucun élément permettant de dire que c'est vrai.
Je suis chez ovh, j'administre le vps moi même.

Ce que je constate, c'est que l'instruction chown ne reste pas bien longtemps.

ViPHP
ViPHP | 5924 Messages

16 oct. 2013, 13:53

* Est-ce que l'hébergeur a accès à la machine (une clé ssh dans /root/.ssh/authorized_keys par exemple) ?
* Es-tu sûr que la machine a été redémarrée (commande uptime) ?
* Quelles sont les permissions avant le chown ?

ViPHP
ViPHP | 2577 Messages

16 oct. 2013, 14:33

Une tache cron lié à webmin ?
Une mise à jour de joumla ?

A tout hasard : http://forum.kimsufi.com/showthread.php?t=8895 (mais c'est sur un dédié)

Eléphant du PHP | 107 Messages

17 oct. 2013, 13:20

Bonjour,

Merci à tous pour vos suggestions.
Il va me falloir un peu de temps pour vérifier tous les points suggérés.

En attendant, je ne sais pas si ça peut aider à trouver une piste mais je me suis rendu compte que :

1- l'utilisateur root perd ses droits quand je fais:
chown www-data:www-data /var/www/monsite.com -R

2- l'utilisateur www-data perd ses droits quand je fais ensuite:
chown root /var/www/monsite.com -R

On dirait que les deux ne peuvent pas coexister et l'un annule l'autre.
C'est peut-être la raison pour laquelle je dois le refaire régulièrement, car j'ai toujours fait l'un après l'autre pour avoir les 2.

Y at il un moyen d'avoir les deux ou est-ce un pb de configruration?

ViPHP
ViPHP | 5924 Messages

17 oct. 2013, 13:44

1- l'utilisateur root perd ses droits quand je fais:
chown www-data:www-data /var/www/monsite.com -R

2- l'utilisateur www-data perd ses droits quand je fais ensuite:
chown root /var/www/monsite.com -R
[/quote]
Euh, c'est logique...
L'instruction chown sert à changer le owner.
En 1 tu changes le owner pour www-data et le group pour www-data, root n'est plus owner du fichier.
En 2 tu changes le owner pour root, www-data n'est plus owner du fichier. Tu ne peux pas avoir 2 owner en même temps.
On dirait que les deux ne peuvent pas coexister et l'un annule l'autre.
C'est peut-être la raison pour laquelle je dois le refaire régulièrement, car j'ai toujours fait l'un après l'autre pour avoir les 2.

Y at il un moyen d'avoir les deux ou est-ce un pb de configruration?
Tu pourrais faire coexister les deux mais je ne vois pas à quoi cela te servirait car:
* l'utilisateur root n'a pas besoin d'accéder aux fichiers dans /var/www/, seul l'utilisateur www-data a besoin (les processus apache sont exécutés en www-data)
* l'utilisateur root a (sauf exception) un accès privilégié à tous les fichiers du système, qu'il en soit le owner ou non.

Enfin si tu as seulement besoin de fournir à joomla les droits d'écriture sur un dossier précis, ne lui donne pas pouvoir sur la totalité de l'arborescence. Donne lui exclusivement le droit d'écriture sur les dossiers qu'il a besoin de modifier. C'est une pratique de sécurité de base.

Cordialement