Su representación en octal es la siguiente:
- Sticky bit --> 1000.
- Bit setgid --> 2000.
- Bit setuid --> 4000.
Los permisos SUID, SGID y sticky bit son permisos de acceso especiales y aunque menos conocidos, son igual de útiles e importantes que los permisos básicos.
SUID
Activar el bit SUID(Set User ID) significa que los usuarios que ejecuten los ficheros lo hacen con la identidad del usuario propietario del archivo. Se realiza en el primer grupo de permisos, en los permisos de usuario. Solo es aplicable a archivos.
Cuando un usuario ejecuta el comando passwd para cambiar la contraseña del usuario, lo puede realizar sin problemas pero si vemos en los permisos del fichero no tenemos permisos necesarios para poder ejecutarlo y el fichero pertenece al usuario root.
Esto se debe a que el fichero que contiene el comando ejecutable passwd tiene el bit SUID asignado de forma predeterminada para que usuarios comunes puedan ejecutar esta orden. Para ver esto tenemos que saber donde se encuentra el comando passwd y se hace mediante la orden:
whereis passwd
El primer campo que vemos es el directorio donde se encuentran los ejecutables de los usuarios como ya explique aquí y por supuesto, donde se encuentra el fichero que queremos identificar. Si ejecutamos lo siguiente se podrá ver como este comando tiene el bit SUID activado
chmod u-s /usr/bin/passwd
a parte de los usuarios no podrán ver hecha la operación, es que debajo de ella se pone automáticamente el permiso de ejecución x. Si este archivo por alguna razón no llevaría el permisox, al poner el permiso SUID
chmod u+s /usr/bin/passwd
en lugar de una s minúscula aparecerá una S mayúscula.
SGID
Activar el bit SGID(Set Group ID) significa que los usuarios que ejecuten los programas lo hacen como usuario perteneciente al grupo principal temporalmente. Se realiza en el segundo grupo de permisos, en los permisos de grupo. Esta función es aplicable a los archivos. En los directoriosque tienen aplicados este bit, significará que todo elemento creado dentro de ese directorio heredará como grupo principal el del directorio y no al del usuario que ha creado el elemento.
También se identifica con una s o S y su identificación es la misma que en la del bit SUID.
Sticky bit
El sticky bit implementa restricciones dentro de un directorio a la hora de borrar contenido dentro de él. Cuando el sticky bit está activado los usuarios podrán acceder al contenido y modificarlo (siempre que tengan permisos) pero nunca van a poder borrar nada. Solo pueden borrar el contenido,el propietario o root. Esta función es aplicable a los directorios.
El sticky bit también es aplicable a ficheros. Un programa que lo tenga activado, lo hace residente en memoria. Es muy poco común esta práctica.
El sticky bit se aplica al tercer grupo de permisos, al grupo otros. Y como en los otros dos, sustituye al permiso de ejecución x por una t o T. El significado de una letra mayúscula o minúscula es el mismo, si es una T significa que está implementado el sticky bit pero que debajo de él no hay permisos de ejecución x.
Para verlo en un ejemplo, el directorio de archivos temporales /tmp tiene por defecto el sticky bitactivado, por lo que se ve algo similar a esto: