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/