
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
wwwrun
es 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 dept1
grupo 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/dev
reside (asegúrese de que la fstab
entrada contenga acl
la cuarta columna). Luego, cree una ACL para srv/www/htdocs/dev/dept1
otorgarle al dept1
grupo 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.