GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es SUID, SGID y Sticky bit?

Hay 3 permisos especiales que están disponibles para archivos y directorios ejecutables. Estos son:

1. Permiso SUID
2. Permiso SGID
3. Pedacito pegajoso

Identificación de usuario establecido (SUID)

¿Ha pensado alguna vez cómo un usuario no root puede cambiar su propia contraseña cuando no tiene permiso de escritura en el archivo /etc/shadow? mmm... interesante no? Bueno, para entender el truco, verifique el permiso del comando /usr/bin/passwd:

# ls -lrt /usr/bin/passwd
-r-sr-sr-x   1 root     sys        31396 Jan 20  2014 /usr/bin/passwd

– Si revisa cuidadosamente, encontrará las 2 S en el campo de permiso. La primera s representa SUID y la segunda representa SGID.
– Cuando se ejecuta un comando o secuencia de comandos con el bit SUID establecido, su UID efectivo se convierte en el del propietario del archivo, en lugar del usuario que lo está ejecutando.
– Otro buen ejemplo de SUID es el comando su:

# ls -l /bin/su 
-rwsr-xr-x-x 1 root user  16384 Jan 12 2014 /bin/su

– El permiso setuid se muestra como una “s” en el campo de ejecución del propietario.

¿Cómo configurar SUID en un archivo?

# chmod 4555 [path_to_file]
Nota:
Si aparece una "S" mayúscula en el campo de ejecución del propietario, indica que el bit setuid está activado y el bit de ejecución "x" para el propietario del archivo está desactivado o denegado.

Identificación de conjunto-grupo (SGID)

Permiso SGID en archivo ejecutable

– El permiso SGID es similar al permiso SUID, la única diferencia es que cuando se ejecuta el script o el comando con SGID activado, se ejecuta como si fuera un miembro del mismo grupo al que pertenece el archivo.

# ls -l /usr/bin/write
-r-xr-sr-x  1   root tty 11484 Jan 15 17:55 /usr/bin/write

– El permiso setgid se muestra como una “s” en el campo de ejecución del grupo.

Nota:
– Si aparece una letra minúscula “l” en el campo de ejecución del grupo, indica que el bit setgid está activado y el bit de ejecución del grupo está desactivado o denegado.

¿Cómo establecer GUID en un archivo?

# chmod 2555 [path_to_file]

SGID en un directorio

– Cuando se establece el permiso SGID en un directorio, los archivos creados en el directorio pertenecen al grupo del cual el directorio es miembro.
– Por ejemplo, si un usuario que tiene permiso de escritura en el directorio crea un archivo allí, ese archivo es miembro del mismo grupo que el directorio y no del grupo del usuario.
– Esto es muy útil para crear directorios compartidos.

Cómo configurar SGID en un directorio

# chmod g+s [path_to_directory]

Broca adhesiva

– El sticky bit se usa principalmente en directorios compartidos.
– Es útil para directorios compartidos como /var/tmp y /tmp porque los usuarios pueden crear archivos, leer y ejecutar archivos propiedad de otros usuarios, pero no pueden eliminar archivos propiedad de otros usuarios.
– Por ejemplo, si el usuario bob crea un archivo llamado /tmp/bob, otro usuario tom puede no elimine este archivo incluso cuando el directorio /tmp tenga el permiso 777. Si no se establece el bit fijo, tom puede eliminar /tmp/bob, ya que el archivo /tmp/bob hereda los permisos del directorio principal.
– usuario raíz (¡Por supuesto!) y el propietario de los archivos puede eliminar sus propios archivos.

Ejemplo de bit adhesivo:

# ls -ld /var/tmp
drwxrwxrwt  2   sys   sys   512   Jan 26 11:02  /var/tmp
- T refers to when the execute permissions are off.
- t refers to when the execute permissions are on.

¿Cómo configurar el permiso de bits adhesivos?

# chmod +t [path_to_directory]
or 
# chmod 1777 [path_to_directory]


Linux
  1. Permisos de Linux:SUID, SGID y sticky bit

  2. ¿Qué es Sticky Bit, SUID y SGID en Linux?

  3. Qué es NFS y cómo instalarlo en Linux

  4. ¿Qué es un archivo .so.2?

  5. ¿Qué es un archivo .so?

Comando de archivo de Linux:qué hace y cómo usarlo

Qué es EFS (Elastic File System) en AWS y cómo usarlo

Permisos y propiedad de archivos de Linux explicados con ejemplos

Permisos de archivos especiales en Linux:SUID, GUID y Sticky Bit

Un chico de Windows en un mundo Linux:usuarios y permisos de archivo

¿Qué es un archivo .sh?