¿Cuál es la política de permisos en / proc / <PID> / environ?

2

Ya veo, que el proceso de usuario habitual obtiene permisos legibles por el usuario:

-r-------- 1 1000 1000 0 Nov 19 13:51 /proc/9083/environ

pero f.ex. El demonio de la pantalla se pone root propiedad:

-r-------- 1 root root 0 Nov 19 13:47 /proc/9167/environ

Sin embargo, 9167 también es UID de usuario:

# ps axnu|grep 9167
    1000  9167  0.0  0.0  23488  2008 ?   Ss   13:47   0:00 SCREEN
midenok
fuente

Respuestas:

2

En la mayoría de los sistemas, /usr/bin/screen se instala con el setuid bit para root, lo que significa que primero comenzará con un UID efectivo 0, y solo más tarde eliminará los privilegios (volverá a su UID normal).

(Esto se usa para implementar la función de "sesión compartida", ya que de lo contrario no se permitiría que la pantalla se conecte a los sockets de pantalla de otros usuarios).

Pero, dado que los procesos privilegiados podrían mantener información confidencial en la memoria, el kernel les brinda una protección especial, incluso si eliminan todos los privilegios y cambian a su UID, aún no puede enviarles señales, adjuntar un depurador o crear volcados de memoria.

La opción "sin volcados de núcleo", también conocida como fs.suid_dumpable ajuste sysctl, es lo que causa la pantalla /proc Los archivos serán propiedad permanente de la raíz, independientemente de su UID efectivo.

grawity
fuente