GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el propósito de cada uno de los diferentes UID que puede tener un proceso?

Cada proceso UNIX tiene 3 UID asociados. El privilegio de superusuario es UID=0.

IDU real

Este es el UID del usuario/proceso que creó ESTE proceso. Solo se puede cambiar si el proceso en ejecución tiene EUID=0.

UID efectivo

Este UID se utiliza para evaluar los privilegios del proceso para realizar una acción en particular. EUID se puede cambiar a RUID o SUID si EUID! =0. Si EUID=0, se puede cambiar a cualquier cosa.

UID guardado

Si ejecuta un ejecutable con el bit set-UID establecido, el proceso de ejecución resultante comenzará con un UID real del usuario real que lo ejecuta y un UID efectivo y guardado del propietario del archivo ejecutable. Si el proceso luego llama a setuid() o seteuid() para cambiar su UID efectivo, aún pueden recuperar sus privilegios originales nuevamente gracias al UID guardado. Si el bit set-UID no está configurado, SUID será el RUID.


El uid real es el id del usuario que inició un proceso.

El uid efectivo normalmente es el mismo que el uid real. Es diferente solo si:

  • el ejecutable tenía establecido el bit set-uid, y el propietario del ejecutable es diferente al usuario que lo llama

  • o si un proceso set-uid llama a setuid(2). Si el proceso tiene privilegios de superusuario, se permite cualquier argumento para setuid(2) (pero luego todos los *-uid se establecen en el mismo valor); de lo contrario, se puede llamar a setuid(2) con el uid real o el uid efectivo o el uid guardado.

El uid guardado es el uid efectivo que tenía el proceso cuando comenzó, y se guarda para permitirlo como argumento para las diversas llamadas al sistema set*uid.

Tenga en cuenta que un proceso con privilegio de superusuario que llama a setuid(2) para cambiar su uid efectivo también cambiará el uid real y el uid guardado al mismo valor, por lo que se debe usar seteuid(2) que no sea POSIX en su lugar.

Todo lo anterior se aplica también a los ID de grupo (reales|efectivos|guardados).


Además de los UID reales, efectivos y guardados, los sistemas Unix con auditoría habilitada también tienen el UID de auditoría. El AUID de un proceso identifica al usuario que inició el proceso; no es cambiado por setuid(2) o seteuid(2). La intención es que permanezca constante a lo largo del proceso y se use solo para etiquetar registros de auditoría. Por lo tanto, si un usuario ejecuta un shell privilegiado (incluso un usuario autorizado a través de su o sudo), los registros de auditoría de ese proceso se etiquetan desde ese usuario.


Linux
  1. ¿Cuáles son los diferentes tipos de shells en Linux?

  2. ¿Cuál es el propósito del usuario “mysql.sys@localhost”?

  3. ¿Cuál es el propósito del grupo "rueda" en Linux?

  4. ¿Cuál es el propósito del archivo .bashrc en Linux?

  5. Encuentra qué proceso está en el otro extremo de una tubería

¿Qué tienen en común los diferentes Bsd?

¿Qué significa en la salida de Ps?

¿Para qué sirve el Colon Builtin ':' Sirve?

SIGTERM vs SIGKILL:¿Cuál es la diferencia?

¿Cuál es el propósito del directorio setgid?

¿Cuál es el propósito de un final '-' en una aplicación de Kubernetes -f -