files – ¿Qué relaciones unen la máscara de ACL y el permiso de grupo estándar en un archivo?

Pregunta:

Al principio, creo un archivo y verifico sus permisos estándar y entradas ACL:

$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--

Luego configuro la máscara ACL en el archivo y nuevamente verifico sus permisos estándar y entradas ACL:

$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--

Tenga en cuenta que junto con el permiso de grupo estándar de máscara ACL en el archivo también cambió.

  1. ¿Qué conexión existe entre la máscara de ACL y el permiso de grupo estándar?
  2. ¿Cuál es el motivo de la combinación de permisos de grupo de archivos y máscara de ACL? ¿Qué lógica hay detrás de esto?

Las distribuciones en cuestión son Debian Linux 7.6 y CentOS 7


EDITAR

En este punto, solo quería compartir algunos de mis hallazgos que se me ocurrieron mientras investigaba las relaciones entre los permisos de grupos de archivos estándar y la máscara ACL. Aquí están las observaciones empíricas que encontré:

  1. La máscara de LCA se puede cambiar:

    1. configurándolo directamente con el setfacl -mm:<perms> ;
    2. cambiando los permisos del grupo de archivos con el comando chmod (si la máscara de ACL ya está presente; es posible que no esté presente porque es opcional si no hay permisos de ACL de grupo o de usuario designado en el archivo);
    3. agregando una entrada de ACL de usuario designado o de grupo (la máscara se recalculará automáticamente).
  2. La máscara aplicará los derechos de acceso máximos (si hay entradas de ACL con permisos presentes que exceden los permisos de máscara de ACL) solo si la máscara se establece directamente mediante setfacl o mediante la modificación del permiso del grupo de archivos con chmod (no calculado automáticamente). Cualquier cambio en las entradas de ACL activará el recálculo automático de la máscara de ACL y desactivará efectivamente el "modo de aplicación".

  3. Hay un par de efectos secundarios que afectan implícitamente a los permisos de grupos de archivos estándar cuando se utilizan ACL:

    1. La entrada de ACL de usuario o grupo nombrada aplicada a un archivo puede cambiar la máscara de ACL (aumentar sus permisos) y, por lo tanto, los permisos de grupo de archivos efectivos. Por ejemplo, si usted, como propietario de un archivo, tiene los permisos "rw-r – r– jim estudiantes" establecidos en él y también otorga el permiso rw al usuario "jack", también otorgará implícitamente permisos rw a cualquier persona. del grupo "estudiantes".
    2. La máscara de ACL más estricta (menos permisos) puede eliminar permanentemente los permisos de grupo de archivos estándar correspondientes. Por ejemplo, si tiene un archivo con permisos de grupo de archivos estándar rw y aplica una máscara ACL de solo lectura al archivo, sus permisos de grupo se reducirán a solo lectura. Luego, si elimina todas las entradas de ACL extendidas (con el comando setfacl -b ), los permisos de grupo permanecerán como de solo lectura. Esto se aplica solo a la máscara ACL más estricta, la máscara ACL más suave (más permisos) no altera permanentemente el permiso del grupo de archivos original después de que se elimine.

Respuesta:

No tiene sentido si los permisos del archivo Unix no están de acuerdo con la entrada acl y viceversa. En consecuencia, la página del manual ( acl(5) ) dice lo que solicita:

CORRESPONDENCIA ENTRE ENTRADAS ACL Y BITS DE PERMISO DE ARCHIVO

Los permisos definidos por las ACL son un superconjunto de los permisos especificados por los bits de permisos de archivos.

Existe una correspondencia entre el propietario del archivo, el grupo y otros permisos y entradas de ACL específicas: los permisos de propietario corresponden a los permisos de la entrada ACL_USER_OBJ. Si la ACL tiene una entrada ACL_MASK, los permisos de grupo corresponden a los permisos de la entrada ACL_MASK. De lo contrario, si la ACL no tiene una entrada ACL_MASK, los permisos de grupo corresponden a los permisos de la entrada ACL_GROUP_OBJ. Los otros permisos corresponden a los permisos de la entrada ACL_OTHER_OBJ.

El propietario del archivo, el grupo y otros permisos siempre coinciden con los permisos de la entrada de ACL correspondiente. La modificación de los bits de permiso de archivo da como resultado la modificación de las entradas de ACL asociadas, y la modificación de estas entradas de ACL da como resultado la modificación de los bits de permiso de archivo.

Anexo en respuesta a la discusión:

¿Cuál es el motivo de la combinación de permisos de grupo de archivos y máscara de ACL? ¿Qué lógica hay detrás de esto?

Aquí hay una buena explicación. En esencia, la máscara es una

[…] límite superior de los permisos que otorgará cualquier entrada en la clase de grupo.

Esta propiedad de límite superior garantiza que las aplicaciones POSIX.1 que desconocen las ACL no comenzarán de forma repentina e inesperada a otorgar permisos adicionales una vez que se admitan las ACL.

En las ACL mínimas, los permisos de la clase de grupo son idénticos a los permisos del grupo propietario. En las ACL extendidas, la clase de grupo puede contener entradas para usuarios o grupos adicionales. Esto da como resultado un problema: algunas de estas entradas adicionales pueden contener permisos que no están contenidos en la entrada del grupo propietario, por lo que los permisos de entrada del grupo propietario pueden diferir de los permisos de la clase de grupo.

Este problema se resuelve gracias a la entrada de máscara. Con ACL mínimas, los permisos de la clase de grupo se asignan a los permisos de entrada del grupo propietario. Con las ACL extendidas, los permisos de la clase de grupo se asignan a los permisos de entrada de la máscara, mientras que la entrada del grupo propietario aún define los permisos del grupo propietario. El mapeo de los permisos de clase de grupo ya no es constante.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım