GNU/Linux >> Tutoriales Linux >  >> Cent OS

Centos:¿cómo se procesan los permisos de Acl y en qué orden se aplican a una acción de usuario determinada?

CentOS 6.4

Estoy tratando de comprender mejor cómo se procesan las reglas ACL del sistema de archivos y en qué orden se aplican las reglas ACL.

Por ejemplo, digamos que los usuarios bob y joe pertenecen a un grupo llamado ventas. Digamos también que tengo un documento de venta con los siguientes detalles:

[[email protected] ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

Mi pregunta es, ¿cómo se procesan los permisos en un ejemplo como este y qué privilegios de acceso tienen prioridad?

¿Hay solo una búsqueda de arriba hacia abajo y cualquier regla que coincida primero es la que se aplica?

¿O Linux impone el acceso en función de cuál es la regla más específica para el usuario en cuestión? ¿O tal vez prevalece la regla más restrictiva y aplicable?

Respuesta aceptada:

Este es un tema un poco amplio y un poco demasiado para cubrir aquí. Lo remitiré a las Listas de control de acceso POSIX en el documento técnico de Linux elaborado por Andreas Grünbacher de SuSE Labs. Hace un buen trabajo cubriendo el tema y desglosándolo para que comprenda cómo funcionan las ACL.

Tu ejemplo

Ahora echemos un vistazo a tu ejemplo y analízalo.

  • grupo (ventas)
  • miembros del grupo de ventas (bob, joe)

Ahora analicemos los permisos en el archivo /home/foo/docs/foo.txt . Las ACL también encapsulan los mismos permisos con los que la mayoría de la gente debería estar familiarizada en Unix, principalmente los bits de Usuario, Grupo y Otros. Así que saquemos esos primero.

user:: r--
group::r--
other::---

Por lo general, se verían así en un ls -l :

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

Puede ver quién es el propietario del archivo y cuál es el grupo con estas líneas ACL:

# owner: jane
# group: executives

Así que ahora nos adentramos en el meollo de las ACL:

user:bob:rw-
user:joe:rwx
group:sales:rwx

Esto muestra que el usuario bob tiene rw , mientras que el usuario joe tiene rwx . También hay un grupo que también tiene rwx parecido a jo. Estos permisos son como si la columna de usuario en nuestro ls -l la salida tenía 3 propietarios (jane, bob y joe) así como 2 grupos (ejecutivos y ventas). No hay distinción aparte de que son ACL.

Por último, la mask línea:

mask::rwx

En este caso no estamos enmascarando nada, está completamente abierto. Entonces, si los usuarios bob y joe tienen estas líneas:

user:bob:rw-
user:joe:rwx

Entonces esos son sus permisos efectivos. Si la máscara fuera así:

mask::r-x

Entonces sus permisos efectivos serían así:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

Este es un mecanismo poderoso para restringir los permisos que se otorgan de manera mayorista.

Relacionado:Debian:¿cómo rizar el contenido completo de la página web?

NOTA: El propietario del archivo y otros permisos no se ven afectados por la máscara de derechos efectivos; todas las demás entradas son! Entonces, con respecto a la máscara, los permisos de ACL son ciudadanos de segunda clase en comparación con los permisos tradicionales de Unix.

Referencias

  • getfacl(1) – página man de Linux
  • Listas de control de acceso POSIX en el documento técnico de Linux

Cent OS
  1. Registros de Docker:qué son y cómo usarlos (con ejemplos)

  2. Cómo encontrar quién está conectado a su sistema y qué está haciendo

  3. Cómo crear y eliminar un grupo de usuarios en Linux

  4. Cómo crear un usuario Sudo en Rocky Linux y CentOS

  5. ¿Precedencia del propietario del usuario y del grupo en los permisos de archivo?

¿Qué es Umask y cómo usarlo?

Cómo agregar un usuario a un grupo en RHEL 8 / CentOS 8

Cómo agregar y eliminar usuarios en CentOS 8

Cómo agregar y eliminar usuarios en CentOS 7

Cómo habilitar la cuota de disco de usuario y grupo en CentOS 7 / RHEL 7

Cómo agregar y eliminar usuarios en CentOS 8