linux – ¿Hay alguna razón por la que / proc / * / cmdline sea legible en todo el mundo?

Pregunta:

Tal vez no he /proc/PID/cmdline suficiente café todavía hoy, pero no puedo recordar ni pensar en ninguna razón por la que /proc/PID/cmdline debería ser legible en todo el mundo; después de todo, /proc/PID/environ no lo es.

Hacerlo legible solo por el usuario (y tal vez el grupo. Y el root, por supuesto) evitaría la exposición casual de las contraseñas ingresadas como argumentos en la línea de comandos.

Claro, afectaría a otros usuarios que ejecutan ps y htop y similares, pero eso es algo bueno, ¿verdad? Ese sería el punto de no hacerlo legible por todo el mundo.

Respuesta:

Sospecho que la razón principal, y quizás la única, es histórica: /proc/.../cmdline fue inicialmente legible por todo el mundo, por lo que sigue siendo así para compatibilidad con versiones anteriores. cmdline se agregó en 0.98.6, lanzado el 2 de diciembre de 1992, con el modo 444; el registro de cambios dice

     - /proc filesystem extensions.  Based on ideas (and some code) by
       Darren Senn, but mostly written by yours truly.  More about that
       later.

No sé cuándo fue "más tarde"; Por lo que puedo decir, las ideas de Darren Senn se pierden en la niebla del tiempo.

environ es un interesante contraejemplo del argumento de compatibilidad con versiones anteriores: comenzó siendo legible por palabras, pero solo su propietario lo hizo legible en 1.1.85. No he encontrado el registro de cambios para eso, así que no sé cuál fue el razonamiento.

La accesibilidad y visibilidad general de /proc/${pid} (incluido /proc/${pid}/cmdline ) se puede controlar usando la opción de montaje hidepid proc , que se agregó en la versión 3.3 del kernel . La opción de montaje gid se puede usar para dar acceso completo a un grupo específico, por ejemplo , para que los procesos de monitoreo aún puedan ver todo sin ejecutarse como root.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım