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 :
salut
je te propose cette page : 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 :
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 !?
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.
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
Bonne question à votre avis, est-ce nécessaire ?
Pour le vérifier, vous pourriez tenter les commandes suivantes
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 ‹ x › 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
sudo chmod ........
et l’autre dans lequel vous vous êtes identifié comme www-data et vous lacez
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)
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
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 :