Estoy tratando de determinar si, en Linux, las variables de entorno para un proceso son observables por otros usuarios (no root).
El caso de uso inmediato es poner secretos en las variables de entorno. Esto se discute en muchos lugares de la web como inseguro, pero no he podido concentrarme en el punto exacto de exposición en Linux.
Nótese que estoy no hablando de poner secretos en archivos de texto en claro. También en cuenta que estoy no hablando de la exposición a la cuenta de root (I Ver intentar secretos esconderse de un adversario con la raíz como un imposible).
Esta pregunta parece abordar la mía, con comentarios que clasifican las variables de entorno como completamente sin seguridad, o simplemente ofuscadas, pero ¿cómo se accede a ellas?
En mis pruebas, un usuario no privilegiado no puede observar variables de entorno para otro usuario a través de la tabla de proceso ('ps auxwwe'). Los comandos que establecen las variables de entorno (por ejemplo, exportar) son componentes integrados de shell que no llegan a la tabla de proceso y, por extensión, no están en / proc / $ pid / cmdline. / proc / $ pid / environment solo es legible por el UID del propietario del proceso.
Quizás la confusión es entre diferentes sistemas operativos o versiones. Varias fuentes (recientes) en la web denuncian la inseguridad de las variables de entorno, pero mi comprobación de diferentes versiones de Linux parece indicar que esto no es posible al menos hasta 2007 (probablemente más, pero no tengo cuadros en mano para probar).
En Linux, ¿cómo puede un usuario no privilegiado observar variables de entorno para los procesos de otro?