Una característica muy útil en Linux son las “Listas de control de acceso” que controlan el acceso a archivos y directorios. Así es como funcionan las listas de control de acceso para controlar los permisos de archivos en Linux.
Nota: Para comprender a fondo cómo funcionan las listas de control de acceso, primero estamos configurando algunos usuarios y grupos en un sistema Linux que funcione. El siguiente ejercicio se realiza en una máquina virtual que ejecuta el sistema operativo Kali. El usuario root tiene el poder de agregar nuevos usuarios al sistema y asignarlos a grupos.
Contenidos
Creando usuarios y grupos
En primer lugar, iniciaremos sesión como root, crearemos usuarios y los colocaremos en los grupos respectivos como se muestra en la tabla a continuación. A los usuarios se les han dado nombres simples para ayudar a comprender mejor el concepto.
Usuario | Grupo |
---|---|
john1 john2 john3 | johns |
jane1 jane2 | janes |
Usaremos el adduser
comando para agregar nuevos usuarios al sistema.
los id
El comando mostrará los detalles del usuario recién creado. Mostrará la identificación del usuario (uid), la identificación del grupo (gid) y el nombre del grupo (grupos). El usuario, una vez creado, se agrega automáticamente a un grupo con el mismo nombre que el nombre de usuario. Ese usuario sería el único miembro del grupo.
Asimismo, también se crean los usuarios “john2” y “john3”.
adduser john2 adduser john3
Una vez creados los tres usuarios, utilice elid
comando para ver los respectivos identificadores de usuario y grupo.
Podemos ver que los tres usuarios están en sus propios grupos: 1000, 1001 y 1002. Según la tabla mostrada anteriormente, queremos que los tres usuarios estén en el mismo grupo: johns
. Dado que dicho grupo no existe en el sistema actualmente, lo crearemos con el groupadd
mando:
groupadd -g <new_group_ID> <group_name>
El nuevo ID de grupo se especifica como 5000. Si el -g
se ignora el interruptor, entonces el sistema seleccionará automáticamente un ID de grupo. El nombre del nuevo grupo es “johns”. Ahora los tres usuarios – “john1”, “john2” y “john3” – deben agregarse como miembros de este grupo. Usaremos el usermod
comando para esta tarea.
usermod -g <group_name> <user_name>
usermod
agrega el usuario “nombre_usuario” al grupo “nombre_grupo”. La siguiente figura muestra primero el uid y el gid para “john1” antes del cambio de grupo. Después de la usermod
El comando se ejecuta correctamente, “john1” se agrega al grupo “johns” con gid 5000.
El mismo proceso se realiza para los usuarios “john2” y “john3”.
usermod -g johns john2 usermod -g johns john3
Finalmente, los detalles de los tres usuarios en el grupo “johns” se pueden ver usando id
mando.
Hemos creado tres usuarios con éxito y los hemos agregado al mismo grupo.
De manera similar, los usuarios “jane1” y “jane2” se crean y agregan al grupo “janes” con gid 6000. Sus detalles se pueden ver usando el id
comando como se muestra a continuación.
¿Cuál es la necesidad de listas de control de acceso?
Supongamos que el usuario “john1” inicia sesión,
crea un nuevo archivo en el directorio de inicio,
y agrega algo de contenido.
Utilizando lals
comando, vemos los metadatos del archivo.
Los primeros caracteres de la salida, - rw - r - - r - -
tenga en cuenta la cadena de permisos. Vamos a diseccionarlo.
– | rw – | r – – | r – – |
---|---|---|---|
Tipo de archivo | permisos que john1 tiene en el archivo | permisos que los miembros del grupo johns tienen en el archivo | permisos otorgados a otras personas que no están en el grupo de johns |
Este artículo es una buena introducción a los permisos de archivos.
¿Qué sucede si “john1”, que es el propietario del archivo, desea otorgar permisos de escritura adicionales solo a “john2” y “jane1” pero persiste con los permisos de lectura para “john3” y “jane2”?
rw – | r – – |
---|---|
john1 john2 jane1 | john3 jane2 |
Una opción sería crear un nuevo grupo con permisos de lectura y escritura para “john1”, “john2” y “jane1” y otro grupo con solo permisos de lectura para “john3” y “jane2”. En caso de que john1 desee modificar aún más los permisos para cualquier miembro del grupo, es necesario crear más grupos. Crear y administrar varios grupos es una carga para el administrador del sistema.
En su lugar, se puede crear una “Lista de control de acceso” para un archivo que indicará claramente las operaciones que cualquier usuario puede realizar en ese archivo.
¿Cómo crear una lista de control de acceso (ACL) para un archivo?
Cada archivo al momento de su creación tiene una ACL asignada. Usarlo de manera eficiente es simplemente una cuestión de modificarlo. Solo el propietario del archivo y el usuario raíz pueden modificar la ACL de un archivo.
Podemos usar el getfacl
comando para ver la ACL existente:
Las líneas que comienzan con #
son líneas de comentarios. La información real está en las últimas tres líneas de salida, que es similar a la cadena de permisos obtenida anteriormente. La línea “usuario” se refiere a los permisos asignados al propietario del archivo “john1”. La línea “grupo” se refiere a los permisos asignados a otros miembros en el grupo “johns”. Como lo adivinó, la línea “otros” se refiere a cualquier otra persona fuera del grupo.
Usemos el setfacl
comando para modificar la ACL existente en el archivo.
setfacl -m entity:name:permissions <file_name>
entidad | nombre | permisos |
---|---|---|
el valor aquí significa para quién es la entrada de ACL: usuario (u) o grupo (g) u otros (o) | el nombre del usuario o grupo, para quien la entrada de ACL es relevante | los permisos de lectura, escritura y ejecución se indican con las letras r, w, x |
“John2” recibe primero acceso de lectura y escritura al archivo,
seguido de “jane1”.
Veamos la ACL actualizada para “secretfile”.
Podemos ver que se han asignado permisos de lectura y escritura a “john2” y “jane1”.
Verificación de la autenticidad de la ACL
Podemos ver que “john2” puede leer el archivo y escribir en él.
La nueva información ingresada por “john2” se ha agregado al archivo.
Del mismo modo, “jane1” obtiene el mismo privilegio: acceso de lectura y acceso de escritura.
Pero “john3” en el mismo grupo no puede escribir en el archivo.
“Jane2”, que pertenece a la otra categoría, tampoco puede escribir en el archivo.
Conclusión
El mismo proceso también se puede extender a directorios. Las listas de control de acceso permiten al administrador del sistema manejar el acceso a archivos y directorios de manera experta.
¿Es útil este artículo?
Compártelo con alguien que le vaya a resultar de ayuda