Esta es probablemente una de las cosas más molestas que la gente comete todo el tiempo. El bit SUID / GUID y el bit adhesivo son 2 cosas completamente diferentes.
Si lo hace man chmod
, puede leer sobre el SUID y los bits adhesivos. La página de manual también está disponible aquí .
antecedentes
extracto
Las letras rwxXst seleccionan bits de modo de archivo para los usuarios afectados: leer (r), escribir (w), ejecutar (o buscar directorios) (x), ejecutar / buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algunos usuario (X), establecer ID de usuario o grupo en ejecución (s) , bandera de eliminación restringida o
bit fijo (t) .
SUID / GUID
Lo que la página de manual anterior está tratando de decir es que la posición que toma el bit x en rwxrwxrwx para el usuario octal (primer grupo de rwx) y el grupo octal (segundo grupo de rwx) puede tomar un estado adicional donde la x se convierte un s. Cuando esto ocurre, este archivo cuando se ejecuta (si es un programa y no solo un script de shell) se ejecutará con los permisos del propietario o del grupo del archivo.
Entonces, si el archivo es propiedad de root y el bit SUID está activado, el programa se ejecutará como root. Incluso si lo ejecuta como un usuario normal. Lo mismo se aplica al bit GUID.
extracto
SETUID Y SETGID BITS
chmod borra el bit set-group-ID de un archivo normal si la ID de grupo del archivo no coincide con la ID de grupo efectiva del usuario o una de las ID de grupo suplementarias del usuario, a menos que el usuario tenga los privilegios apropiados. Las restricciones adicionales pueden hacer que se ignoren los bits set-user-ID y set-group-ID de MODE o RFILE. Este comportamiento depende de la política y la funcionalidad de la llamada al sistema chmod subyacente. En caso de duda, verifique el comportamiento subyacente del sistema.
chmod conserva los bits set-user-ID y set-group-ID de un directorio a menos que especifique explícitamente lo contrario. Puede establecer o borrar los bits con modos simbólicos como u + sy gs, y puede establecer (pero no borrar) los bits con un modo numérico.
Ejemplos de SUID / GUID
sin suid / guid : solo se configuran los bits rwxr-xr-x .
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
bit ejecutable de suid y usuario habilitado (s minúscula) : se establecen los bits rwsr-xrx .
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid habilitado y bit ejecutable deshabilitado (S mayúscula) : se establecen los bits rwSr-xr-x .
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
bit ejecutable de guid & group habilitado (minúsculas) : se establecen los bits rwxr-sr-x .
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
guid habilitado y bit ejecutable deshabilitado (S mayúscula) : se establecen los bits rwxr-Sr-x .
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
poco pegajoso
El bit adhesivo, por otro lado, se denota como t
, por ejemplo, con el /tmp
directorio:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Este bit siempre debería haberse llamado "bit de eliminación restringida" dado que eso es lo que realmente connota. Cuando este bit de modo está habilitado, crea un directorio de modo que los usuarios solo puedan eliminar archivos y directorios de los que son propietarios.
extracto
BANDERA DE ELIMINACIÓN RESTRINGIDA O PICADA
El indicador de eliminación restringida o bit fijo es un solo bit, cuya interpretación depende del tipo de archivo. Para los directorios,
evita que los usuarios no privilegiados eliminen o cambien el nombre de un archivo en el directorio a menos que sean dueños del archivo o del directorio; Esto se llama el indicador de eliminación restringida para el directorio, y se encuentra comúnmente en directorios de escritura mundial como / tmp. Para archivos regulares en algunos sistemas más antiguos, el bit guarda la imagen de texto del programa en el dispositivo de intercambio para que se cargue más rápidamente cuando se ejecuta; esto se llama la parte adhesiva.