Site hosted by Angelfire.com: Build your free website today!

3.6 LLAMADAS PARA PROTECCIÓN

 

CHMOD (nombre, modo)

MINIX proporciona 11 bits de modo, para protección de un fichero. La llamada CHMOD, permite cambiar estos bits de modo para un fichero.

Los nueve primeros bits, son para el propietario, el grupo y el resto de usuarios (rwx).

Ejemplo: chmod ("file", 0644);

Coloca el fichero file con acceso de solo lectura para cualquiera, excepto para el propietario.

Los otros dos bits son:

bit (10) 02000 SETGID (pone identificador de grupo)

bit (11) 04000 SETUID (pone identificador de usuario)

Cuando un usuario, ejecuta un programa con el bit SETUID puesto a uno, el identificador del usuario, se cambia por el identificador del dueño del fichero, y este cambio dura la vida del proceso.

Esto se utiliza, para permitir que un usuario pueda ejecutar procesos del súper usuario como por ejemplo crear un directorio. Si a mkdir se le coloca el modo 04755, usuarios normales pueden ejecutarlo.

SETGID cuando está a uno, el usuario del fichero, cambia su identificador de grupo, por el del propietario del fichero.

 GETUID () GETGID ()

Dan al proceso que hace esta llamada, el identificado real y efectivo del usuario, y grupo respectivamente.

Se necesitan cuatro rutinas de librería para obtener esta información.

getuid, getgid, geteuid, getegid

Las dos primeras cogen el real uid/gid y las dos últimas el efectivo uid/gid.

 SETUID(uid) SETGID(gid)

Estas llamadas permiten al súper usuario, cambiar el identificador real y efectivo de un usuario y grupo. 

 CHOWN (nombre, propietario, grupo)

Con esta llamada, el súper usuario puede cambiar el propietario de un fichero.

 UMASK (modo máscara)

Pone una máscara interna de bits, en el sistema, para enmascarar los bits de modo, cuando se crea un fichero.

Ejemplo, la llamada umask (022)

Hace que una llamada posterior para crear un fichero. creat ("file", 0777)

Su modo 0777 sea enmascarado con 022 y por tanto cambiado a 0755.

                0777 = 1 1 1 1 1 1 1 1 1

mácara 0022 = 1 1 1 1 0 1 1 0 1

                     and 1 1 1 1 0 1 1 0 1 = 755

Los bits de máscara son heredados por los procesos hijos.

Si el Shell hace umask justo después de login, ninguno de los procesos de usuario en esa sesión crearan ficheros que accidentalmente pueden ser escritos por otros usuarios. 

 ACCESS

Esta llamada nos dice si un usuario tiene permiso de acceso para un fichero.

Si un programa del súper usuario, tiene el SETUID a uno, cualquier usuario que la ejecute tomara el identificador efectivo del súper usuario y podrá ejecutar cualquier programa.

La llamada access nos dice si un identificador real tiene permiso para acceder a un fichero.

El parámetro modo es 4 para lectura, 2 para escritura y 1 para ejecutar, se permiten combinaciones por ejemplo con modo 6, si la llamada no devuelve un cero, si se permite acceso de lectura y escritura y 1 en otro caso.

Con modo cero, se testea si el fichero existe.