Saltar al contenido principal

SUID, SGID y Sticky Bit: El club de los permisos especiales

· 3 min de lectura
SysAdmin & IT Educator

Si ya dominas la matriz rwx, sabrás que con el dueño, grupo y otros cubrimos el 90% de los casos. Pero, ¿qué pasa cuando queremos que un usuario normal cambie su propia contraseña (algo que requiere permisos de root) o que nadie pueda borrar archivos ajenos en una carpeta pública?

Hoy vamos a explorar el "Cuarto Dígito" de los permisos: SUID, SGID y el Sticky Bit. 🔒

El Cuarto Dígito (Modo Octal)

Hasta ahora usábamos tres números (ej. 755). Pero en realidad, Linux acepta cuatro. Ese primer dígito a la izquierda representa los permisos especiales:

ValorPermisoEfecto Principal
4SUIDEjecutas con privilegios del dueño.
2SGIDLos archivos heredan el grupo del directorio.
1Sticky BitSolo el dueño borra sus archivos.

1. SUID: El "Disfraz" de Root

El SUID (Set User ID) es como un disfraz. Cuando un ejecutable tiene este bit, cualquiera que lo corra adquiere temporalmente los poderes del dueño del archivo.

El ejemplo rey: /usr/bin/passwd. Para cambiar tu clave, el sistema debe escribir en /etc/shadow (que es solo de root). Gracias al SUID, cuando corres passwd, el sistema te "disfraza" de root por un momento para que la operación tenga éxito.

  • Cómo se ve: Una s minúscula en el bloque del dueño: -rw**s**r-xr-x.
  • Comando: chmod u+s archivo o chmod 4755 archivo.

2. SGID: Trabajo en Equipo

El SGID (Set Group ID) es el mejor amigo de la colaboración. Aunque se puede usar en archivos, su verdadero poder brilla en los directorios.

Si activas SGID en una carpeta compartida, cualquier archivo creado dentro pertenecerá automáticamente al grupo de la carpeta, sin importar quién sea el usuario que lo creó. Se acabó el problema de: "Oye, no puedo leer tu archivo porque lo creaste con tu grupo personal".

  • Cómo se ve: Una s minúscula en el bloque del grupo: drwxr-**s**r-x.
  • Comando: chmod g+s directorio o chmod 2755 directorio.

3. Sticky Bit: El "Seguro" de Borrado

Imagina la carpeta /tmp. Todos pueden escribir ahí. Sin el Sticky Bit, un usuario malintencionado podría borrar el trabajo de otro solo porque tiene permiso de escritura en la carpeta.

El Sticky Bit asegura que, aunque la carpeta sea pública, solo el dueño del archivo (o root) pueda borrarlo o renombrarlo. Es el permiso de la "permanencia".

  • Cómo se ve: Una t minúscula al final: drwxrwxrw**t**.
  • Comando: chmod +t directorio o chmod 1777 directorio.

¿s o S? ¿t o T?

A veces verás estas letras en MAYÚSCULAS. Esto es una señal de advertencia: significa que el bit especial está activo pero el permiso de ejecución (x) subyacente no lo está.

Es como tener el disfraz de superhéroe (SUID) pero no tener piernas para correr (falta el bit x). En la mayoría de los casos, esto indica un error de configuración.

Resumen de Comandos Rápidos

Si necesitas configurar un entorno de desarrollo compartido rápidamente:

# 1. Crear carpeta y dar permisos totales al grupo
mkdir /opt/shared_dev
chmod 2770 /opt/shared_dev # SGID activo, grupo hereda todo

# 2. Asegurar que nadie borre lo de otros (Sticky Bit)
chmod +t /opt/shared_dev

Conclusión

Los permisos especiales son potentes pero requieren cuidado. Un bit SUID mal puesto en un editor de texto o en la Shell podría dejar la puerta abierta para que cualquier usuario tome el control total del servidor. ¡Úsalos con criterio de administrador!

¿Te ha servido esta nota? En la sección de comandos prácticos tienes más ejemplos sobre cómo combinar estos bits con el comando chmod. 🚀