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.
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
Relacionados
Imprimir

Deja un comentario: