Listas de Control de acceso en Linux
Table of Contents
ToggleListas de control de acceso
De manera predeterminada a un archivo o directorio solo podemos definirle un usuario propietario y un grupo. Todo aquel que no sea uno estos dos, se verá afectado por los permisos de “otros”. Es aquí donde entra en juego el comando getfacl. Este permite ver los permisos agregados.
Ejemplo:
#getfacl test
#file: test
#owner: usuario1
#group: usuario1
user::–x
group::–x
other::–x
Estableciendo Reglas
El comando setfacl sirve para definir el acceso de usuarios y grupos adicionales a uno o más directorios y/o archivos. Agregar al usuario ‘Pablo’ con permisos de lectura y ejecución sobre el archivo test.sh
Ejemplo:
#setfacl -m user:Pablo:r-x test.sh
#getfacl test.sh
#file: test.sh
#owner: usuario1
#group: usuario1
user::–x
user:Pablo:r-x
group::–x
mask::r-x
other::–x
Agrego al grupo usuarios con permiso de lectura y ejecución sobre test.sh
$ setfacl -m group:eventos:r-x test.sh
$ getfacl test.sh
#file: test.sh
#owner: usuario1
#group: ususario1
user::–x
user:Pablo:r-x
group::–x
group:eventos:r-x
mask::r-x
other::–x
Por tanto, estas herramientas son fundamentales para controlar las listas de control de acceso en Linux, y de esta manera, verificar y añadir una capa más de seguridad.
Atributos de archivos
Comando lsattr
Los sistemas de archivos ext2/3/4 poseen atributos, es decir, estos se pueden hacer visibles con el comando lsattr
Solo el archivo prueba.txt posee el atributo de inmutabilidad “ i ”. También posee el atributo “e” (formato de extención).
Atributos y Significados según la página de manual
ATRIBUTO | SIGNIFICADO | DESCRIPCIÓN |
a | Añadir solo | Este atributo permite agregar un archivo, pero no eliminarlo. Evita cambios accidentales o maliciosos en archivos que registran datos, como archivos de registro. |
c | Comprimido | Hace que el kernel comprima los datos escritos en el archivo automáticamente y los descomprima cuando se vuelve a leer. |
d | Sin volcado | Se asegura de que el archivo no esté respaldado en las copias de seguridad donde se usa la utilidad de volcado |
e | Formato de extensión | Indica que el archivo está usando extensiones para mapear los bloques en el disco. |
i | Inmutable | Hace que un archivo sea inmutable, lo que va un paso más allá de simplemente deshabilitar el acceso de escritura al archivo. No se puede eliminar el archivo, no se pueden crear vínculos a él y no se puede cambiar el nombre del archivo. |
j | Registro de datos | Asegura que en un sistema de archivos ext3, el archivo se escribe primero en el diario y solo después en los bloques de datos del disco duro. |
s | Eliminación segura | Se asegura de que la recuperación de un archivo no sea posible después de que se haya eliminado. |
t | Sin fusión de colas | La fusión final es un proceso en el que pequeñas piezas de datos al final de un archivo que no llenan un bloque completo se fusionan con piezas similares de datos de otros archivos. |
u | Indeleble | Cuando se elimina un archivo, su contenido se guarda, lo que permite desarrollar una utilidad que trabaja con esa información para salvar los archivos eliminados. |
Actualizaciones A | No hay actualizaciones de tiempo | Linux no actualizará la marca de tiempo de acceso cuando acceda a un archivo. |
D | Actualizaciones de directorio síncronas | Se asegura de que los cambios en los archivos se escriban en el disco inmediatamente y no en la caché primero. |
S | Actualizaciones sincrónicas | Los cambios en un archivo se escriben de forma sincrónica en el disco. |
T | Parte superior de la jerarquía de directorios | Se considerará que un directorio es la parte superior de las jerarquías de directorios efectos del asignador de bloques de Orlov. |
Comando chattr
Se puede cambiar el estado de un atributo con el comando chattr. Veamos el siguiente ejemplo muestra la eliminación del atributo “ i ”:
chattr –I prueba.txt