Сначала добавьте себя в группу www-data
usermod -a -G www-data (your username)
Затем:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Должен делать свое /home/myuser
дело, если только ваши разрешения не разрешают доступ другим пользователям.
Первая команда меняет групповую принадлежность папки на принадлежность веб-сервера. Вторая команда дает членам www-data
группы чтения, права записи, введите-каталог, и группа s
флаг гарантирует , что все файлы , которые получают создаваемые внутри этого каталога взять в www-data
качестве группы - так что если вы создаете файл как пользователь будет иметь доступ.myuser
www-data
В северном направлении это также зависит от umask
настроек как вашей учетной записи пользователя, так и веб-сервера: вам необходимо убедиться, что файлы, созданные в папке A, имеют групповой rw
доступ (и каталоги, созданные в группе потребностей rwx
)
Если ваш веб-сервер не имеет прав на вход в ваш /home/myuser
каталог (вполне разумно), он не сможет войти туда, если вы не сделаете что-то еще. Два Солнца:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(Это уродливый хак, и его нужно будет повторить после перезагрузки. Но мощный прием также можно использовать, чтобы сделать папки доступными внутри SSH-тюрем.)
Просто переместите общую папку в другое место, например /home/shared-stuff/folderA
.
Второй вариант самый хороший. Допустим, материал в папке A действительно публичный, и вам все равно, кто его видит, вы можете настроить его следующим образом
sudo mkdir -m777 /home/shared-stuff
Затем вы можете поместить в эту, скажем, папку A с разрешениями, как указано выше, и папку B, к которой у www-данных не должно быть доступа с другими разрешениями, например
$ 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
внутриg+rwxs
?