systemadmin.es > Utilidades > El sticky bit y el setuid bit

El sticky bit y el setuid bit

Resulta muy común ver como mucha gente confunde el sticky bit con el bit de setuid. Vamos a ver que es cada cosa.

Cada vez que confundes el setuid con el sticky bit, los Dioses de Kobol matan a un gatito

Cada vez que confundes el setuid con el sticky bit, los Dioses de Kobol matan a un gatito

El sticky bit en un origen marcaba al sistema operativo que mantuviese en swap la sección de código de un programa una vez ha finalizado. De esta forma resultaba más rápido volver a ejecutarlo.

En el caso de Linux ninguna versión lo ha soportado nunca, en su lugar lo que marca el sticky bit en un directorio es que solo el propietario del fichero o directorio de dentro de éste puede moverlo o borrarlo. Es el caso típico del /tmp:

drwxrwxrwt   3 root root  4096 Jul  5 15:47 tmp

En el caso de definir el sticky bit en un fichero, simplemente se ignora.

-rw-rw-r-T   1 jprats jprats      95116 May 31 16:29 ejemplo

Por otro lado, el bit setuid cuando se aplica a un fichero ejecutable, dicho fichero correrá con el usuario que sea el propietario:

$ chmod u+s fichero.bin

Un ejemplo que suele estar en los sistemas Linux es el sudo:

$ ls -la /usr/bin/sudo
---s--x--x 2 root root 150904 Mar 25  2009 /usr/bin/sudo

Se ejecuta con el efective UID a root. En el caso que se use en el grupo:

$ chmod g+s fichero.bin

Simplemente de ejecutará con el efective group del propietario del fichero.

Por otro lado, si se define el setuid en un directorio Linux lo ignora, pero si se define el setgid el comportamiento es el siguiente: Todo nuevo fichero o directorio dentro de este mantiene el grupo de dicho directorio en lugar del grupo primario del creador del fichero. Podemos ver dicho comportamiento en el siguiente ejemplo:

$ mkdir test
$ sudo chown jprats.apache test
$ sudo chmod g+s test
$ ls -la test
total 20
drwxrwsr-x   2 jprats apache  4096 Jul  6 08:18 .
drwx--x---+ 76 jprats jprats 12288 Jul  6 08:18 ..
$ cd test
$ touch prueba
$ ls -la
total 20
drwxrwsr-x   2 jprats apache  4096 Jul  6 08:18 .
drwx--x---+ 76 jprats jprats 12288 Jul  6 08:18 ..
-rw-rw-r--   1 jprats apache     0 Jul  6 08:18 prueba

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>