5 votes

Quelle est la meilleure façon de configurer les permissions avec nginx + php-fpm sur un hébergement mutualisé ?

Je fais tourner un serveur d'hébergement partagé avec nginx et php-fpm sur Debian.

Tout fonctionne bien, php-fpm a des pools séparés pour chaque utilisateur fonctionnant en tant qu'utilisateur séparé et ils ont chacun leurs propres chaussettes.

Nginx fonctionne cependant en tant que www-data car je ne veux pas avoir de processus nginx séparés pour chaque utilisateur.

Cela signifie que pour que nginx ait accès aux données des utilisateurs, les permissions de /home doivent être drwxr-x--x. Le problème est que tous les utilisateurs ont accès aux fichiers des autres utilisateurs.

Quel serait le meilleur moyen de donner à nginx l'accès aux fichiers des utilisateurs sans donner l'accès à d'autres utilisateurs. L'exécution de nginx en tant que root n'est pas une option. Mais est-ce qu'AppArmor pourrait aider ?

6voto

Michael Hampton Points 232226

Je préfère utiliser les ACL pour cela. Par exemple :

setfacl -R -m user:www-data:rx,d:user:www-data:rx /home

Donne le www-data l'accès de l'utilisateur à la lecture des fichiers et à la traversée des répertoires sous le nom de /home et applique la même ACL à tous les nouveaux fichiers ou répertoires créés ultérieurement.

Une fois cette mesure appliquée, les répertoires personnels des utilisateurs n'ont plus besoin d'être exécutables dans le monde entier (par ex. chmod o= /home/$USER ), les utilisateurs ne peuvent donc plus lire les fichiers des autres, mais nginx le peut.

Notez que si certains répertoires doivent être accessibles en écriture par le serveur web, vous pouvez les configurer au cas par cas en modifiant les deux instances des autorisations rx à rwx . Par exemple :

setfacl -R -m user:www-data:rwx,d:user:www-data:rwx /home/user/public_html/wp-content/{cache,uploads}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X