Fügen Sie sich zunächst der Gruppe hinzu www-data
usermod -a -G www-data (your username)
Dann:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Sollte den Trick machen, es sei denn, die Berechtigungen auf Ihrem /home/myuserComputer erlauben anderen Benutzern keinen Zugriff.
Der erste Befehl ändert den Gruppeneigentum des Ordners in den des Webservers. Mit dem zweiten Befehl erhalten die Mitglieder der www-dataGruppe Lese-, Schreib- und Zugriffsrechte für Verzeichnisse. Mit dem Gruppenflag swird sichergestellt, dass alle Dateien, die innerhalb dieses Verzeichnisses erstellt werden, www-dataals Gruppe gelten. Wenn Sie also eine Datei erstellen, hat myuserder www-dataBenutzer Zugriff.
Nb. Dies hängt auch von den umaskEinstellungen Ihres Benutzerkontos und des Webservers ab: Sie müssen sicherstellen, dass in folderA erstellte Dateien Gruppenzugriff haben rw(und Verzeichnisse, die innerhalb von need group erstellt wurden rwx).
Wenn Ihr Webserver keine Zugriffsrechte in Ihr /home/myuserVerzeichnis hat (ziemlich vernünftig), wird er nicht in dieses Verzeichnis gelangen, es sei denn, Sie tun etwas anderes. Zwei Lösungen:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (Dies ist ein hässlicher Hack und müsste nach dem Neustart wiederholt werden. Aber ein mächtiger Trick, der auch verwendet werden kann, um Ordner in SSH-Jails zugänglich zu machen.)
Verschieben Sie den freigegebenen Ordner einfach an einen anderen Ort, z /home/shared-stuff/folderA.
Die 2. Option ist am nettesten. Nehmen wir an, das Zeug in Ordner A ist wirklich öffentlich und es ist dir egal, wer es sieht, du kannst es so einrichten
sudo mkdir -m777 /home/shared-stuff
Dann können Sie beispielsweise Ordner A mit den oben genannten Berechtigungen und Ordner B, auf die WWW-Daten keinen Zugriff haben sollen, mit unterschiedlichen Berechtigungen einfügen, z
$ 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
sing+rwxs?