la lista de control de acceso (ACL) proporciona un mecanismo de permisos adicional y más flexible para los sistemas de archivos. Está diseñado para ayudar con los permisos de archivos UNIX. ACL le permite otorgar permisos para cualquier usuario o grupo a cualquier recurso de disco.
Installation
El paquete acl es una dependencia de systemd, ya debería estar instalado.
habilitar ACL
para habilitar ACL, el sistema de archivos debe montarse con la opción acl
. Puede usar fstab para hacerlo permanente en su sistema.,
existe la posibilidad de que la opción acl
ya esté activa como opción de montaje predeterminada en el sistema de archivos. Los sistemas de archivos Btrfs y Ext2/3/4 también lo hacen. Use el siguiente comando para verificar particiones formateadas ext* para la opción:
# tune2fs-l /dev/sdXY | grep "opciones de montaje predeterminadas:"
opciones de montaje predeterminadas: user_xattr acl
también verifique que la opción de montaje predeterminada no esté anulada, en tal caso verá noacl
in /proc/mounts
in the relevant Line.,
Puede establecer las opciones de montaje predeterminadas de un sistema de archivos utilizando el comando tune2fs -o option partition
, por ejemplo:
# tune2fs -o acl /dev/sdXY
utilizando las opciones de montaje predeterminadas en lugar de una entrada en /etc/fstab
es muy útil para unidades externas, 4adafe218f»>
opción también en otras máquinas Linux. No es necesario editar /etc/fstab
en cada máquina.
Nota:
-
acl
se especifica como opción de montaje predeterminada al crear un sistema de archivos ext2/3 / 4., Esto está configurado en /etc/mke2fs.conf
.
- las opciones de montaje predeterminadas no aparecen en
/proc/mounts
.
Usage
Set ACL
la ACL se puede modificar usando el comando setfacl.
Consejo: puede enumerar los cambios de Permisos de archivo / directorio sin modificar los permisos (es decir, el simulacro) añadiendo la bandera
--test
.,
para establecer permisos para otros:
# setfacl -m "other:permissions" <file/dir>
para permitir que todos los archivos o directorios recién creados hereden entradas del directorio padre (esto no afectará a los archivos que se copiarán en el directorio):
# setfacl -dm "entry" <dir>
para eliminar una entrada específica:
# setfacl -x "entry" <file/dir>
para eliminar las entradas predeterminadas:
# setfacl -k <file/dir>
para eliminar todas las entradas (se retienen las entradas del propietario, grupo y otros):
# setfacl -b <file/dir>
la exactitud de los hechos de este artículo o sección está en disputa.,
razón: la nota original sobre la opción --mask
(que se tomó de setfacl(1)) se determinó como inexacta, pero la nueva nota tampoco parece correcta. Vea la página de discusión para más detalles. (Discuss in Talk:Access Control Lists#ACL mask entry)
Nota: el comportamiento predeterminado de setfacl es recalcular la entrada de la máscara ACL, a menos que se haya dado explícitamente una entrada --mask
. La entrada máscara indica los permisos máximos permitidos para los usuarios (que no sean el propietario) y para los grupos., A menos que se establezca explícitamente, esto coincidirá con los permisos del grupo predeterminado. Para aclarar lo que esto significa, supongamos que el grupo que posee un directorio tiene permisos r-X. Si agrega un usuario o grupo ACL con permisos rwx, los permisos efectivos de este usuario o grupo serán r-x. la razón de esto es para que no haya sorpresas cuando un archivo de un sistema que no soporta ACL esté disponible en un sistema que lo hace..
Consejo: para aplicar operaciones a todos los archivos y directorios recursivamente, añada el argumento
-R
.,c
# file: abc# owner: someone# group: someoneuser::RW-user:johnny:R-xgroup::R mask mask::r-xother::r<
Remove all ACL entries:
# setfacl -b abc
Check permissions:
# getfacl ABC
# file: ABC# owner: someone# Group: someoneuser::RW-group::r other other::R <
output of LS command
notará que hay una ACL para un archivo dado porque exhibirá un +
(signo más) después de sus permisos UNIX en la salida de ls -l
.,
$ ls-l/dev / audio
crw-rw----+ 1 root audio 14, 4 nov. 9 12: 49/dev/audio
get getfacl/dev/audio
otorgar permisos de ejecución para archivos privados a un servidor web
la siguiente técnica describe cómo un proceso como un servidor web puede obtener acceso a archivos que residen en el directorio personal de un usuario, sin comprometer la seguridad al dar acceso a todo el mundo.,
En la siguiente asumimos que el servidor web se ejecuta como el usuario http
y no conceder el acceso a geoffrey
's home directory /home/geoffrey
.
el primer paso es otorgar permisos de ejecución para el usuario http
:
# setfacl -m "u:http:--x" /home/geoffrey
Nota: los permisos de ejecución para un directorio son necesarios para que un proceso enumere el contenido del directorio.,
dado que el usuario http
ahora puede acceder a los archivos en /home/geoffrey
, otros ya no necesitan acceso:
# chmod o-rx /home/geoffrey
Use getfacl
para verificar los cambios:
get getfacl /home/Geoffrey
como se muestra en la salida anterior, other
ya no tiene ningún permiso, pero el usuario http
todavía puede acceder a los archivos, por lo que la seguridad podría considerarse aumentada.,
ver también
- getfacl (1)
- setfacl(1)
- listas de control de acceso POSIX en Linux
- Cómo establecer permisos de archivo predeterminados para todas las carpetas/archivos en un directorio?
Leave a Reply