Skip to main content

Permisos extendidos de archivos en linux

Existen una serie de permisos especiales que, aunque no son habituales, es necesarios saberlos, por ejemplo, para trabajar en grupo sobre ciertos directorios.

sticky bit

Se trata de un permiso de acceso que puede ser asignado a ficheros y directorios en sistemas UNIX y similares. Aunque históricamente su fin eran otro, actualmente el sticky bit se utiliza sobre directorios.

Cuando se le asigna a un directorio, significa que los elementos que hay en ese directorio solo pueden ser renombrados o borrados por su propietario o bien por root. El resto de usuarios que tengan permisos de lectura y escritura, los podrán leer y modificar, pero no borrar.

Es un atributo muy común en la carpeta /tmp

Para asignar el permiso se usa el modificador t o bien mediante chmod con un 1 al principio.

chmod 1775 /micarpeta

O bien

chmod +t /micarpeta #para activar sticky bit
chmod -t /micarpeta #para desactivar sticky bit

Si un usuario intenta borrar un fichero en una carpeta con sticky bit, no podrá.

SUID

Cuando se activa el bit SUID sobre un fichero significa que el que lo ejecute va a tener los mismos permisos que el que creó el archivo. Esto es útil en algunas ocasiones, aunque hay que utilizarlo con cuidado, ya que puede acarrear problemas de seguridad.

Para asignar el permiso se usa el chmod con un 4 al principio.

chmod 4775 /micarpeta/ejecuta.sh

El permiso aparecerá así:

ls -l ejecuta.sh
-rwsrwxr-x 1 eduardo eduardo 6 Jun 11 19:02 ejecuta.sh
chmod -x ejecuta.sh
ls -l ejecuta.sh
-rwSrw-r-- 1 eduardo eduardo 6 Jun 11 19:02 ejecuta.sh

Observamos que en la última línea le quitamos el servicio de ejecución al archivo y en los permisos se reemplaza la s minúscula por la S mayúsculas.

SGID

El bit SGID es lo mismo que SUID, pero a nivel de grupo. Esto es, todo archivo que tenga activo el SGID, al ser ejecutado, tendrás los privilegios del grupo al que pertenece.

Es bastante útil til queremos configurar un directorio para que colaboren diferentes usuarios. Si se aplica este bit al directorio, cualquier archivo creado en dicho directorio, tendrá asignado el grupo al que pertenece el directorio.

Para asignar el permiso se usa el chmod con un 2 al principio o con un 

chmod g+s

O bien

chmod 2555 ejecuta.sh