4 votes

Apache - Autoriser l'accès aux répertoires personnels des utilisateurs

Cela fait maintenant une semaine que je suis confronté à ce problème, en parcourant divers sites web, je n'arrive pas à le résoudre.

J'ai installé Apache2 et un site web Wordpress, situé dans le dossier d'un utilisateur à l'adresse suivante /home/<user>/www .

Maintenant, le site web fonctionne, mais l'installation de plugins depuis l'interface web (et tout ce qui nécessite un accès en écriture - modification des paramètres, téléchargement de médias, etc.) ne fonctionne pas, car wordpress (plutôt apache) n'a pas d'accès en écriture à ces fichiers.

die /home/<user>/www et tout ce qui se trouve en dessous appartient à l'utilisateur et au groupe <user> .

J'ai déjà essayé plusieurs solutions, mais aucune n'a fonctionné, notamment :

  1. Changer le propriétaire de /home<user>/www à www-data:www-data . Très bien - honnêtement, je n'ai pas essayé cette solution, car je n'en veux pas. Si vous faites cela pour tous les utilisateurs du serveur, ils auront accès à tous les dossiers, mais ils ne devraient pouvoir accéder qu'à leur dossier personnel, pas aux autres.

  2. Ajout de www-data au groupe de l'utilisateur. Je pensais que cela pourrait fonctionner, mais apparemment ce n'est pas le cas. Le site www-data est bien dans le groupe de l'utilisateur (vérifié avec la commande id), mais cela ne semble toujours pas fonctionner.

  3. Définir une ACL sur le répertoire personnel de l'utilisateur. J'ai fait cela aussi et j'ai donné www-data rwx accès au répertoire personnel, et pourtant ça n'a toujours pas aidé.

Au cas où vous seriez intéressé, le /home/<user>/ et tous les fichiers/répertoires en dessous ont la permission 775.

2voto

Skrypt Points 61

Bon, après avoir continué à lutter contre ce problème, j'ai finalement trouvé une solution qui fonctionne pour moi.

Voici ce que j'ai fait : Disons que j'ai créé un nouvel utilisateur appelé dummy et son dossier personnel se trouve à l'adresse suivante /home/dummy et un dossier dédié à sa présentation web situé à l'adresse suivante /home/dummy/www .

  1. Utilisez sudo chgrp -R www-data /home/dummy/www pour changer le groupe de la www et tout son contenu vers www-data (L'utilisateur par défaut d'Apache pour l'accès au Web).
  2. Utilisez sudo chmod -R g+wrxs /home/dummy/www pour donner au groupe www-data Droits d'écriture, de lecture et d'exécution sur le répertoire spécifié et son contenu. Le site important ici est le s partie. Cela garantit que le groupe ( www-data ) prend en charge la propriété de tout fichier créé à l'intérieur du répertoire avec le paramètre s.

Pas besoin d'ajouter l'utilisateur dummy à aucun groupe.

J'espère que cela vous aidera si vous rencontrez le même problème que moi à l'avenir.

EDIT : Après quelques tests supplémentaires, cela ne semble pas suffire. En dehors des deux étapes mentionnées ci-dessus, vous devez également indiquer explicitement à wordpress comment travailler avec les fichiers en ajoutant define('FS_METHOD', 'direct'); au fichier de configuration de wordpress.

En outre, pour une configuration plus stricte des autorisations, veuillez consulter l'étape 5 de la procédure d'autorisation de DigitalOcean. Comment installer WordPress avec LAMP sur Ubuntu guide.

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