Permisos especiales: suid, sgid, sticky bit
...
Introducción
Linux dispone de permisos especiales que modifican el comportamiento de ejecución y acceso: suid, sgid y sticky bit.
Tipos de permisos especiales:
- suid → ejecuta un programa con los permisos del propietario
- sgid → ejecuta con los permisos del grupo o hereda grupo en directorios
- sticky bit → restringe el borrado de archivos en directorios compartidos
Ejemplo de representación en permisos:
-rwsr-xr-x
Significado:
- s → indica SUID en lugar de la x del usuario
- s → indica SGID en lugar de la x del grupo
- t → indica sticky bit en lugar de la x de otros
También pueden aparecer en mayúscula (S, T) si no hay permiso de ejecución.
Notación numérica:
- suid → 4
- sgid → 2
- sticky → 1
Ejemplo de uso:
# chmod 4755 archivo
En este caso: 4 → activa SUID y 755 → permisos normales
suid (Set User ID)
Permite que un programa se ejecute con los permisos del propietario del archivo.
Ejemplo:
# chmod u+s archivo
Este comando: activa SUID en archivo, al ejecutarlo, se ejecutará como el propietario (normalmente root)
Caso típico: comandos como passwd necesitan modificar /etc/shadow
sgid (Set Group ID)
En archivos: ejecuta el programa con los permisos del grupo
En directorios: los archivos creados dentro heredan el grupo del directorio
Ejemplo:
# chmod g+s carpeta
Este comando hace que todo archivo dentro de carpeta pertenezca al mismo grupo.
sticky bit
Se usa principalmente en directorios compartidos.
Ejemplo de uso:
# chmod +t /tmp
Este comando evita que usuarios borren archivos de otros dentro del directorio.
Ejemplo real: /tmp tiene sticky bit activado por defecto normalmente.
Opciones comunes:
- -R → aplica cambios de forma recursiva