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

Permisos especiales de ficheros y directorios.

ACLs: getfacl, setfacl.

Índice de la sección

Índice del curso