Www-data ou Root


#1

Bonjour
Je me penche maintenant un peu sur apache… sur les tuto il est indiqué qu’il faut que /var/www soit en www-data, alors que moi je suis en root root

/var root root
/var/www root root
/var/www/html root root

#2

Bonjour,
Tu peux essayer, en root ou sudo… :

cd /var/www
chown -R www-data:www-data

Sans oublier la même opération sur le répertoire /var/www
Bonne journée.


#3

Pourquoi à l’install on a pas directement www-data:www-data pour /var/www
il faut le modifier manuellement ???


#4

Je ne sais pas vraiment.
Il y a ici un échange qui pourrait t’intéresser, bien qu’un peu vieillot.


#5

salut,
je pense plutôt que /var/www c’est où tu vas mettre ton site, apache sert son contenu.
je vois pas d’utilité à chown -R www-data:www-data /var/www,
par contre /var/www/ton_site.com ça me paraît essentiel.
Puisqu’on parle ici de droits dans /var/www, fais-je bien de mettre mon user dans le groupe
www-data avec g+w sur mon_site.com pour me simplifier l’édition des fichiers html ou php ?


#6

Bonjour,
Il est normal que /var/www appartienne à root, et il ne faut pas qu’il appartienne à www-data, en aucun cas. Ce qui est important ce sont les droits. Le user www-data est celui qui exécute le serveur apache et il doit avoir les droits en lecture, d’une façon ou d’une autre. Ceci est le cas avec une installation par défaut et il n’y a rien à changer. Seulement en lecture car s’il est compromis par une attaque, il ne doit pas pouvoir modifier le site.
Que le user du développeur soit dans le groupe www-data ne devrait pas permettre de modifier les fichiers, parce que le groupe www-data ne doit pas pouvoir le faire. Pour que ces modifications soient possibles et pratiques, il faut que les répertoires appartiennent (chown) à un groupe dont le user est membre et qui ne soit pas www-data. Et que les droits soient en lecture pour tout le monde sur la machine. De ce fait, le serveur apache pourra y accéder, et le développeur pourra déployer son application facilement.
Par ailleurs, si le serveur apache, donc l’application web, doit modifier des données, c’est plutôt dans la base de données que ça se passe. S’il doit absolument modifier ou créer des fichiers sur le filesystem, ceci doit être doit un sous-répertoire dédié, qui devra alors donner les droits en écriture à www-data. Si on peut l’éviter, c’est pas plus mal.


Problème avec apache²
#7

Intéressant, alors il y aurait deux solutions valables ?

  • mettre root en user, www-data en groupe sur /var/www/exemple.com en récursif du style:
find /var/www/exemple.com/ -type f -print0 | xargs -0 chmod 0640
find /var/www/exemple.com/ -type d -print0 | xargs -0 chmod 0750
chown -R root:www-data /var/www/exemple.com/
 et l'admin du site édite les fichiers via `sudo` .
  • mettre l’utilisateur www-data en owner de tous fichiers, sans droit en écriture, et on crée un grouge par exemple www-dev, un chown -R www-data:www-dev /var/wwwexemple.com/
    puis un chmod g+w récursif. Puis ajout de l’utilisateur qui administre au groupe www-dev. Ce qui me paraît plus tordu, non ?