Tout d'abord, ajoutez-vous au groupe www-data
usermod -a -G www-data (your username)
Ensuite:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Devrait faire l'affaire à moins que les autorisations sur votre /home/myuser
ne permettent pas aux autres utilisateurs d'accéder.
La première commande change la propriété du groupe du dossier en celle du serveur Web. La deuxième commande donne aux membres du www-data
groupe des droits de lecture, d'écriture, d'entrée dans le répertoire et l' s
indicateur de groupe garantira que tous les fichiers créés dans ce répertoire seront considérés www-data
comme le groupe - donc si vous créez un fichier, myuser
l' www-data
utilisateur y aura accès.
Nb. cela dépend également des umask
paramètres de votre compte utilisateur et du serveur Web: vous devez vous assurer que les fichiers créés dans le dossier A ont un rw
accès de groupe (et les répertoires créés dans le groupe de besoins rwx
)
Si votre serveur Web n'a pas de droits d'entrée dans votre /home/myuser
répertoire (tout à fait sensé), il ne va pas y entrer à moins que vous ne fassiez autre chose. Deux solns:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(Il s'agit d'un hack laid et devrait être répété après le redémarrage. Mais une astuce puissante peut également être utilisée pour rendre les dossiers accessibles dans les prisons SSH.)
Déplacez simplement le dossier partagé ailleurs, par exemple /home/shared-stuff/folderA
.
La 2e option est la plus agréable. Disons que le contenu du dossier A est vraiment public et peu importe qui le voit, vous pouvez le configurer comme
sudo mkdir -m777 /home/shared-stuff
Ensuite, vous pouvez mettre à l'intérieur, par exemple, le dossier A avec les autorisations ci-dessus et le dossier B auquel www-data ne devrait pas avoir accès avec des autorisations différentes, par exemple
$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data 4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser 4096 Jan 17 21:46 folderB
s
eng+rwxs
?