Protección de los usuarios y los procesos en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Cómo se implementan los privilegios

Cada proceso tiene cuatro conjuntos de privilegios que determinan si un proceso puede usar un determinado privilegio. El núcleo calcula automáticamente el conjunto vigente de privilegios. Puede modificar el conjunto heredable inicial de privilegios. Un programa que está codificado para utilizar privilegios puede reducir el conjunto permitido de privilegios del programa. Puede reducir el conjunto límite de privilegios.

  • Conjunto de privilegios en vigor, o E: El conjunto de privilegios que actualmente esta en vigor. Un proceso puede agregar los privilegios que están en el conjunto permitido al conjunto vigente. Un proceso también puede eliminar privilegios de E.

  • Conjunto de privilegios permitidos, o P: El conjunto de privilegios que está disponible para el uso. Los privilegios pueden estar disponibles para un programa a través de herencia o mediante asignación. Un perfil de ejecución es una forma de asignar privilegios a un programa. El comando setuid asigna todos los privilegios que tiene root a un programa. Se pueden eliminar privilegios del conjunto permitido, pero no se pueden agregar. Los privilegios que se quitan de P se eliminan automáticamente de E.

    Un programa que para privilegios elimina los privilegios que un programa nunca utiliza de su conjunto permitido. De esta forma, el programa ni ningún proceso malicioso pueden utilizar privilegios innecesarios. Para obtener más información acerca de los programas reconocimiento de privilegios, consulte Capítulo 2, Developing Privileged Applications de Developer’s Guide to Oracle Solaris 11 Security .

  • Conjunto de privilegios heredable o I: es el conjunto de privilegios que un proceso puede heredar a través de una llamada a exec. Después de la llamada a exec, los privilegios antiguos se colocan en los conjuntos permitido y vigente, por los que estos conjuntos son iguales, excepto en el caso especial de un programa setuid.

    En un programa setuid, después de la llamada a exec, el conjunto heredable se ve restringido primero por el conjunto límite. Luego, el conjunto de privilegios que se heredaron (I), menos los privilegios que estaban en el conjunto límite (L), se asignan a P y E para ese proceso.

  • Conjunto límite de privilegio, o L: El conjunto que define el límite exterior que indica qué privilegios están disponibles para un proceso y sus procesos secundarios. De manera predeterminada, el conjunto límite incluye todos los privilegios. Los procesos pueden reducir el conjunto límite, pero nunca pueden ampliarlo. L se utiliza para restringir I. Por lo tanto, L restringe P y E al tiempo de exec.

    Si se asignó a un usuario un perfil que incluye un programa con privilegios asignados, el usuario normalmente puede ejecutar ese programa. En un sistema sin modificaciones, los privilegios asignados del programa están dentro del conjunto límite del usuario. Los privilegios que se asignaron al programa pasan a formar parte del conjunto permitido del usuario. Para ejecutar el programa con privilegios asignados, el usuario debe ejecutar el programa desde un shell de perfil.

El núcleo reconoce un conjunto básico de privilegios. En un sistema sin modificaciones, cada conjunto heredable inicial del usuario es equivalente al conjunto básico en el inicio de sesión. Aunque no puede modificar el conjunto básico, puede modificar los privilegios que un usuario hereda del conjunto básico.

En un sistema sin modificaciones, los conjuntos de privilegios de un usuario en el inicio de sesión tendrían un aspecto similar al siguiente:

E (Effective): basic
I (Inheritable): basic
P (Permitted): basic
L (Limit): all

En el inicio de sesión, todos los usuarios tendrían el conjunto básico en su conjunto heredable, su conjunto permitido y su conjunto vigente. El conjunto límite del usuario es equivalente al conjunto límite predeterminado para la zona global o no global.

Puede asignar privilegios adicionales directamente a un usuario o, más exactamente al proceso de inicio de sesión de un usuario, de forma indirecta a muchos usuarios mediante un perfil de derechos e indirectamente mediante la asignación de un comando con privilegios a un usuario. También se pueden eliminar privilegios del conjunto básico de un usuario. Para conocer los procedimientos, consulte Chapter 3, Asignación de derechos en Oracle Solaris.