GNU/Linux >> Tutoriales Linux >  >> Linux

UNIX/Linux:Conceptos básicos de las listas de control de acceso (ACL)

¿Por qué necesitamos ACL?

Cada archivo en cualquier sistema de archivos UNIX tendrá un propietario/grupo y un conjunto de permisos. Imagine un caso en el que varios usuarios necesitan acceder al mismo archivo y los usuarios son de diferentes grupos. Las listas de control de acceso a archivos (FACL) o simplemente ACL son la lista de usuarios/grupos adicionales y su permiso para el archivo.

Cómo saber cuándo un archivo tiene una ACL adjunta

Es muy fácil saber cuándo un archivo tiene una ACL adjunta. ls-l El comando produciría una salida como se muestra a continuación.

# ls -l
-rw-r--r-+ 1   root   root  0  Sep  19  14:41  file

Tenga en cuenta el + firmar al final de los permisos. Esto confirma que el archivo tiene una ACL adjunta.

Ver ACL

Para mostrar información detallada de ACL de un archivo, utilice getfacl dominio.

# getfacl /tmp/test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
user:sam:rwx
group::r--
mask::rwx
other:---

Observe los 3 usuarios: diferentes líneas. La primera línea enumera los permisos de archivo estándar del propietario del archivo. Los otros 2 permisos de usuario son el permiso individual para el usuario john y sam. El campo de máscara aquí solo se aplica a los permisos adicionales que hemos otorgado al usuario y a los grupos. Si la máscara se establece en rwx, los permisos de lectura, escritura y ejecución se otorgarán a usuarios/grupos adicionales. Si la máscara se establece en r-x, el permiso de escritura no se otorgará a usuarios/grupos adicionales. En general, NO establezca la máscara en cualquier otra cosa que no sea rwx. El valor de la máscara no afecta los permisos estándar de usuario/grupo/otros de UNIX.

Archivo sin ACL
Si ejecuta el comando getfacl en un archivo sin ACL, las líneas adicionales "usuario:" y "máscara" no se mostrarán y se mostrarán los permisos de archivo estándar.

# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

Creación y administración de FACL

El setfacl El comando se usa para establecer ACL en el archivo dado. Para dar acceso rw al usuario john en el archivo /tmp/test :

# setfacl -m u:john:rw /tmp/test

La opción -m le dice a setfacl que modifique las ACL en los archivos mencionados en la línea de comando. En lugar del usuario john, podemos tener un grupo para tener un permiso específico en el archivo:

# setfacl -m g:accounts:rw /tmp/test

Las FACL para múltiples usuarios y grupos también se pueden configurar con un solo comando:

# setfacl -m u:john:rw,g:accounts:rwx /tmp/test

FACL predeterminados en directorios

Las ACL predeterminadas solo se crean en directorios. Cuando establece ACL predeterminadas en los directorios, todos los archivos creados dentro de ese directorio también tendrán esa FACL predeterminada asignada automáticamente.

Para crear una FACL predeterminada en un directorio:

# setfacl -m default:u:john:rw /accounts
# getfacl accounts/
# file: accounts/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:john:rw-
default:group::r-x
default:mask::rwx
default:other::r-x

Ahora cree un nuevo archivo en el directorio de cuentas y enumere la FACL en el archivo:

# touch /accounts/test
# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
group::r-x			#effective:r--
mask::rw-
other::r--

Eliminación de FACL

Para eliminar FACL, use el comando setfacl con la opción -x:

# setfacl -x u:john /tmp/test

El comando anterior elimina la ACL para el usuario john en el archivo /tmp/test. Las ACL para otros usuarios/grupos, si alguno, no se ven afectadas.

Para eliminar todas las ACL asociadas a un archivo, use la opción -b con setfacl :

# setfacl -b /tmp/test

Copia de seguridad de las FACL

Muchas veces, es posible que el software de respaldo no copie los metadatos relacionados con FACL en los archivos. En ese caso, es posible que desee hacer una copia de seguridad de la información FACL en los archivos. Ahora, la FACL de todos los archivos de un directorio (incluidos todos los subdirectorios) se puede copiar en un solo archivo.

# cd /accounts
# getfacl -R * > accounts_facl        ( -R -> recursive )

Restauración de las FACL

Cuando restaure los archivos en el directorio /accounts, tendrá que restaurar las FACL asociadas con los archivos en ese directorio. PARA hacerlo, use el archivo de copia de seguridad FACL accounts_facl junto con –restore opción:

# setfacl --restore=accounts_facl


Linux
  1. RHEL 7 - Notas de RHCSA - Crear y administrar listas de control de acceso (ACL)

  2. Cómo configurar ACL (Listas de control de acceso) en Linux FileSystem

  3. Cómo auditar el acceso a archivos en Linux

  4. Cómo contar líneas en un archivo en UNIX/Linux

  5. ejemplos de comandos tail en UNIX/Linux

Explicación de las listas de control de acceso en Linux

Comando AWK en Linux/Unix

Linux frente a Unix

Comprender los conceptos básicos de los inodos de UNIX/Linux con ejemplos

Conceptos básicos de la vinculación de Ethernet en Linux

¿Cómo eliminar setgid (linux/unix)?