# Permissions www-data

**URL:** <https://www.debian-fr.org/t/permissions-www-data/79177>\
**Category:** Support Debian\
**Created:** [Mai 4, 2019, 11:19 UTC](https://www.debian-fr.org/t/permissions-www-data/79177 "2019-05-04T11:19:58Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 4, 2019, 11:19 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/1 "2019-05-04T11:19:59Z")

</div>

Bonjour,  
j’essaye d’affiner les permissions sur mon serveur web sous Debian 9.9 ayant plusieurs sites; chacun géré par un utilisateur unique nommé “site1”, “site2”, etc…  
Actuellement et globalement mes dossiers sont en 755 et mes fichiers en 644 mais **j’aimerais retirer toute permission aux “autres”** et donc avoir 750 et 640.  
Je sais que le user **www-data** doit accéder au contenu du site. Je l’ai donc ajouter aux groupes “site1”, “site2”, etc…  
`usermod -aG site1 www-data`  
Malheureusement j’obtiens une erreur 403 " Forbidden - You don’t have permission to access / on this server."  
avec les permissions :

```
/home/ 755 drwxr-xr-x root root
/home/site1 755 drwxr-xr-x root site1
/home/site1/public 750 drwxr-x--- site1 site1
/home/site1/public/index.php 640 -rw-r----- site1 site1

```

Je ne comprends pas car normalement le groupe site1 (et donc www-data) a le droit d’accéder en lecture au site1 ! 😨

J’ai sûrement zappé un truc mais quoi ???  
Merci d’avance pour votre aide

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mai 4, 2019, 12:24 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/2 "2019-05-04T12:24:30Z")

</div>

salut  
je te propose cette page :  
[https://doc.ubuntu-fr.org/apache2#permissions](https://doc.ubuntu-fr.org/apache2#permissions)  
en particulier il y est dit  
Le propriétaire devrait être l’utilisateur qui va maintenir le contenu localement, mais le groupe propriétaire devrait rester _www-data_ :

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 4, 2019, 1:08 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/3 "2019-05-04T13:08:00Z")

</div>

Merci pour ton aide.  
Le problème avec cette méthode est que l’utilisateur (ayant un accès SFTP) ne peut pas mettre le groupe www-data sur les dossiers/fichiers qu’il uploade.  
Si www-data appartient au groupe site1… pourquoi ça ne fonctionne pas !?

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mai 4, 2019, 3:37 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/4 "2019-05-04T15:37:32Z")

</div>

tu as essayé de mettre site1 dans le groupe de www-data?  
ou peut être mettre un sgid au répertoire ```  
/home/site1/public

```auto

https://tech.feub.net/2014/06/permissions-des-fichiers-et-repertoires-dun-serveur-web/
```

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 4, 2019, 3:41 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/5 "2019-05-04T15:41:31Z")

</div>

non… 🤔  
pour moi ce n’est pas logique parce que c’est le user www-data qui accède aux données.  
J’essaye !

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mai 4, 2019, 3:45 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/6 "2019-05-04T15:45:56Z")

</div>

sauf si c’est lié à une configuration spéciale de apache2 : peut êtr faudrait-il aller voir par là.

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 4, 2019, 4:14 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/7 "2019-05-04T16:14:27Z")

</div>

ça n’a pas l’air de fonctionner en ajoutant site1 au groupe www-data :

```
root@debian:~# usermod -aG www-data site1
root@debian:~# cat /etc/group | grep www-data
www-data:x:33:www-data,site1
site1:x:1003:site1,www-data

```

mais c’est bon dès que je met :

```
root@debian:~# chmod 755 /home/site1
root@debian:~# chmod 644 /home/site1/index.php

```

J’ai peut être une piste avec l’utilisation des **ACL** … y a une notion d’héritage et d’utilisateur/ **groupe par défaut** Je reviens qd j’aurais testé…

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Mai 4, 2019, 5:57 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/8 "2019-05-04T17:57:39Z")

</div>

Le service apache a bien été redémarré à chaque test ?  
Parce qu’il faut que les différents process relisent les appartenance de groupe des différents users utilisés, avant que ça soit effectif.

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mai 4, 2019, 8:35 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/9 "2019-05-04T20:35:24Z")

</div>

bien vu

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 4, 2019, 9:05 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/10 "2019-05-04T21:05:02Z")

</div>

non je n’ai pas restarté Apache à chaque modif… j’avais l’impression qu’à chaque test il y avait des différences.

Question : faut -il donner les permissions d’exécution sur les dossiers ( x) à www-data pour qu’il traverse tous les dossiers du chemin complet depuis la racine ? (ce n’est pas mon cas)

Après relecture du lien proposé par dindoun je test l’utilisation du SGID…  
`chmod 2750 /home/site1`

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Mai 5, 2019, 1:17 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/11 "2019-05-05T13:17:27Z")

</div>

> [@tchup](#):
>
> Question : faut -il donner les permissions d’exécution sur les dossiers ( x) à www-data pour qu’il traverse tous les dossiers du chemin complet depuis la racine ? (ce n’est pas mon cas)

Bonne question 😁 à votre avis, est-ce nécessaire ?  
Pour le vérifier, vous pourriez tenter les commandes suivantes

```plaintext
sudo su - www-data
stat /chemin/absolu/vers/un/fichier
exit

```

en mettant comme argument de `stat` un chemin existant qui passe par un répertoire sans le drapeau ‹&nbsp;x&nbsp;› pour les autres, et répertoire dont le groupe propriétaire n’est pas www-data.  
Pour comprendre ce qui se passe, travaillez avec deux terminaux, un dans lequel vous faites vos essais à base de

```plaintext
sudo chmod ........

```

et l’autre dans lequel vous vous êtes identifié comme `www-data` et vous lacez

```plaintext
stat ......

```

Cordialement,  
Regards,  
Mit freundlichen Grüßen,  
مع تحياتي الخالصة

* * *

F. Petitjean  
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »  
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

---

<div class="post-metadata">

**Author:** ![Ksynet](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ksynet/32/12919_2.png) [@Ksynet](https://www.debian-fr.org/u/Ksynet)\
**Post date:** [Mai 6, 2019, 10:36 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/12 "2019-05-06T22:36:40Z")

</div>

Salut,  
Je n’ai jamais eu ce genre de pb.  
Perso, je n’ai qu’une porte d’accès (en php) qui gère les autorisations au cas par cas.  
En local tout est accessible, en web c’est php qui autorise ou non (j’ai splitté le site, en ‘bypassant’ apache).  
Ça ne répond pas vraiment à la question, mais de mon côté c’est un système qui fonctionne très bien (et hyper sécure, rien d’accessible de l’extérieur sans passer par le code php qui vérifie les autorisations au cas par cas).  
Exemple : [https://www.sibian.fr/sbot/wrapper.php?scriptname=updateProduct.php&id=12688](https://www.sibian.fr/sbot/wrapper.php?scriptname=updateProduct.php&id=12688)

[EDIT] chmod +X peut être utile…

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 7, 2019, 10:48 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/13 "2019-05-07T22:48:22Z")

</div>

Merci pour cette idée de démonstration mais je ne vois pas comment me connecter en tant que www-data sans password 🙄

```
root@debian:~# su - www-data
This account is currently not available.
```

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 8, 2019, 12:20 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/14 "2019-05-08T00:20:58Z")

</div>

désolé pour cette idée mais je cherche à adopter une solution native, simple et sécurisée.

Je test (tranquillement) l’utilisation du SGID (chmod avec octale 2000)… Ainsi tous fichiers/dossiers créés dans public obtient le groupe www-data.  
ça semble prometteur :

```
chown -R site1:www-data /home/site1/public
chmod -R 2750 /home/site1/public
chmod -R 2770 /home/site1/public/cache
chmod -R 2770 /home/site1/public/tmp
```

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Mai 8, 2019, 8:12 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/15 "2019-05-08T20:12:07Z")

</div>

> [@tchup](#):
>
> comment me connecter en tant que www-data sans password

**su - www-data -s /bin/bash**  
(en root ou avec sudo, pour contourner le pb de passwd)

---

<div class="post-metadata">

**Author:** ![tchup](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tchup/32/4415_2.png) [@tchup](https://www.debian-fr.org/u/tchup)\
**Post date:** [Mai 8, 2019, 8:33 UTC](https://www.debian-fr.org/t/permissions-www-data/79177/16 "2019-05-08T20:33:43Z")

</div>

> [@mattotop](#):
>
> su - www-data -s /bin/bash

merci mattotop 😉
