# Www-data ou Root

**URL:** <https://www.debian-fr.org/t/www-data-ou-root/79562>\
**Category:** Support Debian\
**Created:** [Juillet 5, 2019, 6:17 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562 "2019-07-05T06:17:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![scam](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/4491bb/32.png) [@scam](https://www.debian-fr.org/u/scam)\
**Post date:** [Juillet 5, 2019, 6:17 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/1 "2019-07-05T06:17:58Z")

</div>

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`

```nohighlight
/var root root
/var/www root root
/var/www/html root root

```

---

<div class="post-metadata">

**Author:** ![Albert](https://www.debian-fr.org/user_avatar/www.debian-fr.org/albert/32/8474_2.png) [@Albert](https://www.debian-fr.org/u/Albert)\
**Post date:** [Juillet 5, 2019, 8:28 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/2 "2019-07-05T08:28:54Z")

</div>

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

```nohighlight
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.

---

<div class="post-metadata">

**Author:** ![scam](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/4491bb/32.png) [@scam](https://www.debian-fr.org/u/scam)\
**Post date:** [Juillet 5, 2019, 9:28 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/3 "2019-07-05T09:28:44Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Albert](https://www.debian-fr.org/user_avatar/www.debian-fr.org/albert/32/8474_2.png) [@Albert](https://www.debian-fr.org/u/Albert)\
**Post date:** [Juillet 5, 2019, 9:45 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/4 "2019-07-05T09:45:31Z")

</div>

Je ne sais pas vraiment.  
Il y a [ici](https://www.debian-fr.org/t/apache-reglage-des-droits/52588) un échange qui pourrait t’intéresser, bien qu’un peu vieillot.

---

<div class="post-metadata">

**Author:** ![Usinaquoi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/51bf81/32.png) [@Usinaquoi](https://www.debian-fr.org/u/Usinaquoi)\
**Post date:** [Juillet 7, 2019, 9:04 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/5 "2019-07-07T09:04:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jmbc](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/c5a1d2/32.png) [@jmbc](https://www.debian-fr.org/u/jmbc)\
**Post date:** [Juillet 12, 2019, 5:23 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/6 "2019-07-12T05:23:10Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Usinaquoi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/51bf81/32.png) [@Usinaquoi](https://www.debian-fr.org/u/Usinaquoi)\
**Post date:** [Juillet 12, 2019, 6:40 UTC](https://www.debian-fr.org/t/www-data-ou-root/79562/7 "2019-07-12T06:40:43Z")

</div>

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:

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