Primero, agréguese al grupo www-data
usermod -a -G www-data (your username)
Luego:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
Debería hacer el truco a menos que los permisos en su /home/myuser
no permitan el acceso de otros usuarios.
El primer comando cambia la propiedad del grupo de la carpeta a la del servidor web. El segundo comando otorga a los miembros del www-data
grupo derechos de lectura, escritura, entrada al directorio, y el s
indicador del grupo garantizará que cualquier archivo que se cree dentro de ese directorio tome www-data
como grupo, por lo que si crea un archivo, myuser
el www-data
usuario tendrá acceso.
Nótese bien. esto también depende de la umask
configuración de su cuenta de usuario y del servidor web: debe asegurarse de que los archivos creados en la carpeta A tengan rw
acceso de grupo (y los directorios creados dentro del grupo de necesidad rwx
)
Si su servidor web no tiene derechos de entrada en su /home/myuser
directorio (bastante sensato), entonces no entrará allí a menos que haga otra cosa. Dos soles:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(Este es un truco feo y tendría que repetirse después del reinicio. Pero un truco poderoso, también se puede usar para hacer que las carpetas sean accesibles dentro de las cárceles SSH).
Simplemente mueva la carpeta compartida a otro lugar, por ejemplo /home/shared-stuff/folderA
.
La segunda opción es la mejor. Digamos que el contenido de la carpeta A es realmente público y no te importa quién lo vea, puedes configurarlo como
sudo mkdir -m777 /home/shared-stuff
Luego puede poner dentro de eso, digamos, la carpeta A con permisos como se indicó anteriormente, y la carpeta B a la que www-data no debería tener acceso con diferentes permisos, por ejemplo
$ 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
?