Setuid y Setgid
Cada proceso tiene un (R)UID, (R)GID, EUID, y EGUID.
Cada fichero tiene un UID y un GID owner.
El comando 'chmod 4000' pone el bit setuid . Esto hace que
el proceso que ejecuta este comando temporalmente cambie su EUID tomando
el valor UID del fichero. Es decir el proceso sufre un cambio de
personalidad y se convierte en la persona que figura como propietaria
de ese fichero. Para ello lógicamente ese fichero deberá ser un ejecutable.
El comando passwd sirve para cambiar la clave. Se trata de un comando
propiedad de root con setuid. Por lo tanto mientras estamos ejecutando
este comando adoptamos la personalidad de 'root'. Gracias a ello se nos
permite acceder a la clave para modificarla y gracias a que ese comando
no permite hacer nada más que eso se evita que este proceso con
personalidad de 'root' pueda hacer otras cosas.
Busque el comando 'passwd' en su sistema. Podría estar en '/usr/bin/passwd'
pero si no se encuentra en ese sitio puede localizarlo con 'which passwd'
Haga un ll para comprobar sus permisos y verá que es propiedad de 'root'
y que tiene una 's' en lugar de una 'x' en la parte de los permisos para
el propietario.
-rwsr-xr-x 1 root root 28896 jul 17 1998 /usr/bin/passwd
El comando 'chmod 2000' pone el bit setgid on execute. Hace algo parecido
al anterior pero a nivel de grupo. Es decir el proceso que ejecuta este
comando temporalmente cambie su EGID tomando el valor GID del fichero.
Por ejemplo el comado lpr no solo nos convierte en 'root' cuando lo
ejecutamos sino que nos cambia el grupo por el grupo de impresión.
-rwsr-sr-x 1 root lp 14844 feb 7 1999 /usr/bin/lpr
El comando 'chmod 1000' pone el bit sticky. Se usa poco y tenía más
utilidad en sistemas Unix más antigüos. Sirve para que el proceso
permanezca en memoria RAM todo el rato mientras se esté ejecutando.
Normalmente cuando muchos procesos usan la memoria RAM se van turnando
en su uso y se descargan a disco para ceder su espacio en memoria RAM
a otros procesos. Con el uso de este bit se evita la descarga a disco.
Es una forma de aumentar la velocidad de ese proceso.
Para ver el aspecto de estos permisos realice el siguiente ejercicio.
Realice siempre los ejercicios desde un usuario normal distinto de root.
$ cd /tmp
$ echo > kk
$ chmod 4000 kk
$ ll kk
---S------ 1 ..... ..... kk
$ chmod 4100 kk
---s------ 1 ..... ..... kk
$ chmod 2000 kk
------S--- 1 ..... ..... kk
$ chmod 2010 kk
------s--- 1 ..... ..... kk
$ chmod 1000 kk
---------T 1 ..... ..... kk
$ chmod 1001 kk
---------t 1 ..... ..... kk
|
Test
Puede comprobar sus conocimientos respondiendo el siguiente test.
Para ello seleccione las opciones que se ajusten a la verdad y luego
pulse el boton para ver el resultado de su test.
Si quiere hacernos llegar alguna duda, aclaración,
crítica, o contribución personal, utilice nuestro
formulario de contacto y nosotros le contestaremos |
|