¿Cómo le doy al usuario de www-data una carpeta en mi carpeta de inicio?
31
Tengo una carpeta: /home/myuser/folderA
Quiero dar al usuario de www-data acceso de escritura a lo anterior, mientras que 'myuser' continúa teniendo acceso normal (ya que de todos modos es la carpeta de inicio de myuser).
¿Qué comandos necesito usar?
Nota: no quiero www-datatener acceso a ninguna otra carpeta /home/myuser/.
Debería hacer el truco a menos que los permisos en su /home/myuserno 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-datagrupo derechos de lectura, escritura, entrada al directorio, y el sindicador del grupo garantizará que cualquier archivo que se cree dentro de ese directorio tome www-datacomo grupo, por lo que si crea un archivo, myuserel www-datausuario tendrá acceso.
Nótese bien. esto también depende de la umaskconfiguración de su cuenta de usuario y del servidor web: debe asegurarse de que los archivos creados en la carpeta A tengan rwacceso de grupo (y los directorios creados dentro del grupo de necesidad rwx)
Si su servidor web no tiene derechos de entrada en su /home/myuserdirectorio (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
Bit "Grupo pegajoso". Su efecto explicado en el párrafo que comienza con "El primero ..." :-)
artfulrobot
6
Otra forma es cambiar el nombre de usuario directamente en la configuración de apache, esto es si es su máquina local y guarda imágenes de otro lugar que aplastarían los permisos realizados en la carpeta. ¡También debe hacerlo si solo tiene 1 usuario y no le importa www-data!
$ sudo vi /etc/apache2/apache2.conf
Encuentra usuario y grupo y pon el tuyo User <Your User> Group <Your Group>
s
eng+rwxs
?Otra forma es cambiar el nombre de usuario directamente en la configuración de apache, esto es si es su máquina local y guarda imágenes de otro lugar que aplastarían los permisos realizados en la carpeta. ¡También debe hacerlo si solo tiene 1 usuario y no le importa www-data!
Encuentra usuario y grupo y pon el tuyo
User <Your User>
Group <Your Group>
fuente