Permisos especiales y ACL en Linux


Permisos especiales y ACL en Linux

Esta es una guía simple para saber como se asignan permisos especiales y ACL en Linux.

Permisos especiales

El primer paso será crear un usuario y asignarle una contraseña con los siguientes comandos:

sudo useradd alumno1
sudo passwd alumno1

Luego crearemos un grupo llamado “alumnos” de esta manera.

sudo groupadd alumnos

Ahora veremos a qué grupos pertenece el usuario “alumno1” con el comando id.

sudo id alumno1

Nos mostrará que sólo pertenece al grupo “alumno1”. Para que pertenezca al grupo “alumnos”, debemos ingresar el siguiente comando:

sudo usermod -G alumnos alumno1

Por último comprobamos si efectivamente “alumno1” pertenece al grupo “alumnos”.

sudo id alumno1

Crearemos un directorio el cual utilizaremos para asignar ciertos permisos.

sudo mkdir /diralumnos/

Verificamos cual es el grupo propietario del directorio creado.

ls -ld /diralumnos/

Como vemos, el grupo es “root”. Lo cambiaremos al grupo “alumnos”.

sudo chgrp alumnos /diralumnos/

Volvemos a verificar cual es el grupo.

ls -ld /diralumnos/

Como podemos ver en la imagen anterior, el grupo sólo puede leer y ejecutar (r-x). Para asignar manualmente permisos, lo hacemos de la siguiente forma.

sudo chmod g+rwx /diralumnos

Donde “g” es para grupos. Si queremos asignar a usuarios seria “u” y para otros “o”. Los permisos son r: lectura, w: escritura y x: ejecución.

Verificamos los cambios

ls -ld /diralumnos/

Ahora aplicaremos el permiso especial Set GID (SGID).

sudo chmod g+s /diralumnos

Verificamos los cambios

ls -ld /diralumnos/

Podemos ver que al final de los permisos de grupo aparece una “s” por el permiso especial anteriormente dado.

A “otros” le daremos el permiso especial Sticky bit.

sudo chmod o+t /diralumnos

Verificamos los cambios

ls -ld /diralumnos/

Podemos ver que al final de los permisos de “otros” aparece la letra “t” por el permiso especial Sticky bit y el directorio aparece marcado en azul. Con este permiso cualquiera puede escribir y modificar, pero sólo el propietario puede eliminar.


ACL

Para ver si un directorio tiene asignada una ACL, lo hacemos de la siguiente forma.

sudo getfacl /diralumnos/

Vemos que no posee ACL. Agregaremos un ACL para el usuario “alumno1” asignando permisos rwx al directorio /diralumnos.

sudo setfacl -m u:alumno1:rwx /diralumnos/

Verificamos los cambios.

sudo getfacl /diralumnos/

También podemos asignar ACL por defecto de la siguiente forma.

sudo setfacl -m d:u:alumno1:rwx /diralumnos/

Verificamos los cambios.

sudo getfacl /diralumnos/

Para borrar las ACL por defecto, se hace de la siguiente manera.

sudo setfacl -k /diralumnos/

Verificamos los cambios.

sudo getfacl /diralumnos/

Para borrar un ACL normal se hace de la siguiente forma.

sudo setfacl -x u:alumno1 /diralumnos/

Verificamos los cambios.

sudo getfacl /diralumnos/