Acceso a carpetas de grupo de Linux

Acceso a carpetas de grupo de Linux

Esta es una pregunta simple, estoy seguro, pero parece que no puedo encontrar ninguna razón por la cual no pueda hacer que esto funcione.

Estoy intentando configurar carpetas de grupo dentro de la raíz web para un servidor PHP. Cada departamento debería tener un grupo como este:

/srv/www/htdocs/dev/dept1
/srv/www/htdocs/dev/dept2

Todos los usuarios del grupo departamento1 deben tener acceso de lectura/escritura a la carpeta departamento1, todos los usuarios del departamento2 deben tener acceso de lectura/escritura a la carpeta departamento2, etc. Al intentar implementar esto, creé un grupo como este:

sudo groupadd dept1
sudo useradd -G dept1 -m user1
cd /srv/www/htdocs/dev
mkdir dept1
sudo chown -R wwwrun:dept1 dept1
sudo chmod -R g+rwxs dept1

wwwrunes el usuario con el que se ejecuta Apache. La idea es que los usuarios puedan crear/leer/actualizar/eliminar lo que quieran dentro de la carpeta de su departamento. Sin embargo, al probarlo, la cuenta de usuario puede ver el contenido de la carpeta y leer archivos, pero no crear ni escribir archivos.

¿Qué estoy haciendo mal?

Respuesta1

Con los permisos que usted otorga, los usuarios del dept1grupo pueden crear y eliminar archivos en formato /srv/www/htdocs/dev/dept1. Sin embargo, en configuraciones típicas, los archivos y subdirectorios que crearán no se podrán escribir en grupo.

Puede hacer que la mayoría de los archivos se puedan escribir en grupo cambiando el nombre de todos.máscaraconfiguración. La configuración de umask determina qué permisos senodado a nuevos archivos. Por lo general, se establece en 022, lo que significa que los archivos no se podrán escribir en grupo ni en otros a menos que se indique explícitamente. Puede cambiar esto a 002 para que los archivos se puedan escribir en grupo de forma predeterminada. Sin embargo, esto sólo es razonable si cada usuario tiene su propio grupo privado (de lo contrario, todos los miembros de su grupo principal podrían escribir en los archivos de las personas).

Una mejor solución es asegurarselistas de control de accesoestán habilitados en el sistema de archivos donde /srv/www/htdocs/devreside (asegúrese de que la fstabentrada contenga aclla cuarta columna). Luego, cree una ACL para srv/www/htdocs/dev/dept1otorgarle al dept1grupo permiso de escritura en el directorio y hacer que ese permiso lo hereden las entradas recién creadas en el directorio. Esto es similar a un cambio de umask, pero está vinculado a esta ubicación particular en el sistema de archivos. Después de ejecutar los dos comandos siguientes, los permisos serán correctos en todos los casos de uso típicos.

setfacl -R -m group:dept1:rwx /srv/www/htdocs/dev/dept1
setfacl -R -d -m group:dept1:rwx /srv/www/htdocs/dev/dept1

Respuesta2

¿Cómo acceden sus usuarios a los archivos? ¿Cómo intentan actualizarlos/crearlos? Supongo que están iniciando sesión en el servidor, pídales que ejecuten el comando 'grupos' para asegurarse de que realmente estén en el grupo correcto y que debería aparecer en primer lugar.

información relacionada