Hay situaciones que se requieren tener
niveles especificos. Un usuario que necesita ejecutar un proceso (por
ejemplo cambiar tu propia contraseña), con privilegios de root.
Acceso a archivos especiales:
El Archivo /etc/shadow no tenemos
acceso un usuario normal, pero la contraseña que quieras cambiar,
tienes que tener acceso a el para escribirla.
Para permitir eso, algunos procesos
tienen que tener privilegios root.
Suid: establece el id del usuario.
Los programas que lo tienen activado,
hace que el usuario que lo pone en marcha fuera el dueño del
fichero.
Ejemplo para explicarlo:
ls -l /usr/bin/passwd
El nombre del fichero lo pone rojo,
fijaos en los permisos:
- rws r-x
r-x 1
fichero s=suid
cantidad de enlaces que tenia el fichero.
Nota:
Tiene que tener el permiso de ejecución
x, ya que si no pondria S y no valdria para nada.
El dueño del programa passwd es el
root, con el indicativo s, indicamos que cuando se ejecute el
programa, lo hagas como sifueras el dueño.
Ahora ejecutamos:
ls -l /etc/shadow
Leerlo solo lo puede leer el root,
y los del grupo shadow. El usuario normal no tiene permisos
para escribir en el archivo.
El programa que se encargue de escribir
en ese fichero (passwd), si tiene activado s, lo
podemos ejecutar como su fueramos su dueño (el root) y cambiar ese
archivo shadow.
SGID:
Igual pero a nivel de grupo.
STI:
Hoy en dia no es
demasiado útil, pero tiene su gracia. Lo que hacia que un programa
que se va a ejecutar muy a menuda permanezca siempre en memoria. Asi
conseguimos que solo se lea una vez y se ejecute mas rápidamente las
otras veces. Puede dar el problema de que si tienes muchos programas
con ese bit activado, te quedes sin memoria.
Hoy si tiene
sentido, para en lugar que se active en fichero se active en
directorios. Escribir un directorio podemos modificar, crear y
borrar ficheros o subdirectorios. Si tenemos todos los ususarios
activados, puedes borrar todos los ficheros de otros usuarios. Si el
STI esta activado, solo puedes borrar ficheros cuyo dueño solo seas
tu. (es una medida de seguridad)
Por ejemplo el
directorio /tmp, podemos borrar los ficheros temporales de todos los
usuarios, para evitar eso le damos el permiso STI, y asi solo podria
borrar solos los temporales generados por ti.
Ejemplo: ls -l /
Vemos que en la
carpeta tmp, pone: drwxrwxrwt
No hay comentarios:
Publicar un comentario