Cómo vincular el montaje de una carpeta en los directorios de inicio de varios usuarios con permisos completos

Cómo vincular el montaje de una carpeta en los directorios de inicio de varios usuarios con permisos completos

Tengo un servidor web que sirve archivos de /var/www/vhosts/mysite. Lo que estoy buscando hacer es montar esta vhostscarpeta /home/myuser/vhostspara que un usuario pueda iniciar sesión, editar cualquier archivo y cerrar sesión. El problema es que el montaje no ignora los permisos de esa carpeta. Algunos archivos podrían ser creados por www-data u otro usuario. Si son creados por otro usuario, www-data también tiene problemas para leerlos/modificarlos.

Lo que he intentado hasta ahora es crear un montaje vinculado usando fstab. La carpeta se monta correctamente en el directorio de inicio del usuario y, usando acl, pude permitirles escribir en ella asignando un grupo a la carpeta rwxy agregando www-data y el usuario al grupo. Me pregunto si hay una manera de vincular el montaje de la carpeta, pero que los permisos no se vean afectados para que www-data siempre pueda leer/escribir/ejecutar en ella sin problemas, al mismo tiempo que permite al usuario permisos completos.

Respuesta1

Primero desea agregar estos usuarios al grupo www-data. Entonces el método previsto es utilizar chmod g+s /home/user/vhost. Esto establecerá el SGIDcontenido de esta carpeta, lo que significa que su grupo se utilizará para archivos nuevos. Desafortunadamente, esto no ayuda a los subdirectorios. Para mantenerlos actualizados, deberá ejecutar esto periódicamente después de las modificaciones del árbol de directorios: find /home/user/vhost -type d -exec chmod g+s {} \;. Esto buscará todos los subdirectorios y habilitará el archivo SGID. La parte más molesta es que esto deberá hacerse en los directorios principales antes de agregar hijos, lo que significa que a veces es necesario ejecutar esto varias veces al realizar cambios y, si se olvida hacerlo, solo deberá ejecutar el comando chown. de todos modos: find /home/user/vhost -type d -exec chown user:www-data {} \;.

Esto es lo que digo que hagamos, pero encuentro que todo este plan me resulta molesto. En realidad lo que hago es trabajar en un servidor de desarrollo con permisos completamente ajenos. Después de realizar cambios, tengo un script que se sincroniza con el servidor de producción y establece todas las propiedades y permisos cada vez para garantizar que todo SIEMPRE esté bien. Este método ahorra mucho tiempo porque nunca tengo que preocuparme por qué se interrumpen los permisos. Simplemente ejecuto el script y todo vuelve a funcionar mágicamente.

información relacionada