Quiero configurar ACL, por ejemplo. /tmp/test carpeta como esta:
El propietario de /tmp/test es el usuario "gaspar", miembro del grupo "testgroup".
El usuario "testuser" también es miembro del grupo "testgroup" y quiero otorgar permisos rwx solo a este usuario + propietario (usuario "gaspar").
También necesito configurar la misma ACL para todos los archivos/directorios recién creados dentro de/tmp/test automáticamente.
Cuando lo configuro así:
setfacl -Rdm u:testuser:rwx,g:testgroup:-,o::- /tmp/test/
getfacl -p /tmp/test/
da permisos:
# file: /tmp/test/
# owner: gaspar
# group: testgroup
user::rwx
group::---
other::---
default:user::rwx
default:user:testuser:rwx
default:group::---
default:group:testgroup:---
default:mask::rwx
default:other::---
Y luego el usuario "testuser" no tiene permisos para la carpeta /tmp/test. ¿Puede sugerirme dónde está el problema y qué debo corregir?
Cuando configuro ACL de esta manera (sin la opción "d"), el usuario "testuser" tiene los permisos que debería tener, pero obviamente los archivos/directorios recién creados no tienen la misma ACL:
setfacl -Rm u:testuser:rwx,g:testgroup:-,o::- /tmp/test/
getfacl -p /tmp/test/
# file: /tmp/test/
# owner: gaspar
# group: testgroup
user::rwx
user:testuser:rwx
group::---
group:testgroup:---
mask::rwx
other::---
¡Cualquier consejo apreciado!
Respuesta1
En su sistema, los archivos /tmp
desaparecen al reiniciar, ¿verdad? Quizás este no sea un buen lugar para una solución permanente. Al configurar una ACL en un directorio que debería aplicar la ACL a todos los objetos nuevos del sistema de archivos en el directorio, recuerde configurar dos máscaras: (1) la máscara para el directorio en sí y (2) la máscara predeterminada (para todos los objetos nuevos del sistema de archivos). ).
setfacl -m u::rwx,g::r-x,o::--- /tmp/test
setfacl -d -m u::rwx,g::r-x,o::--- /tmp/test
Arriba, el -m
modificador es la máscara para /tmp/test
, y el -d
modificador hace que la máscara sea la máscara predeterminada para todos los objetos nuevos del sistema de archivos en el mismo directorio. Es equivalente a 0750. También se pueden utilizar valores octales.
Las máscaras de usuario, grupo y otras funcionan de la misma manera: g:groupname:---
o en combinación: u:username:---,g:groupname:---,o::---
. Si no se especifica un nombre de usuario o de grupo, se aplica la máscara a la propiedad actual del usuario/grupo.
Tenga en cuenta que no todo el software conoce las ACL. Por ejemplo, no todos los clientes SFTP/SCP los conocen todavía.
Respuesta2
Esto está funcionando como debería.
man acl
tiene lo siguiente que decir sobre las ACL predeterminadas:
TIPOS DE LCA
Se puede pensar que cada objeto tiene asociada una ACL que gobierna el acceso discrecional a ese objeto; Esta ACL se denomina ACL de acceso. Además, un directorio puede tener una ACL asociada quegobierna la ACL de acceso inicial para los objetos creados dentro de ese directorio; Esta ACL se conoce como unaACL predeterminada.
(El énfasis es mío)
Lo que ha especificado con su ACL es que solo el propietario tiene permisos rwx para el directorio. La ACL predeterminada en el directorio especifica lo siguiente:
- todos los archivos creados dentro tendrán su ACL configurada para que sea la misma que la ACL predeterminada del directorio principal.
- todos los directorios creados dentro tendrán su ACL predeterminada configurada para que sea la misma que la ACL predeterminada del directorio principal.
Si cambia los permisos del directorio principal o agrega una ACL de grupo/usuario que permita el acceso, todos los archivos que contenga funcionarán como se esperaba.
Respuesta3
Debe comprender qué es la sección predeterminada "user::rwx and default:user::rwx" para heredar ACL.
Para obtener más información, debe leer "man setfacl" y tal vez este documento le ayude:
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxb200/aclinhe.htm