Como explicó Gilles en una respuesta muy completa a una pregunta similar en security.stackexchange.com, los entornos de proceso solo son accesibles para el usuario propietario del proceso (y raíz, por supuesto).
Las variables de entorno son bastante seguras. Lo que dice la pregunta a la que se vinculó es que si el sistema está comprometido, el único beneficio de seguridad de usar variables de entorno sobre un archivo de configuración es la oscuridad. Lo que significa que si alguien ha obtenido acceso de root, puede acceder a ambos.
También es discutible si el uso de variables de entorno para datos secretos se considera "oscuro". Esta es una práctica muy común, y por lo tanto no la consideraría tal.
Solo puede acceder a los datos almacenados en una variable de entorno en 2 lugares:
1. El entorno de ejecución del proceso
Cuando el proceso se está ejecutando, se puede acceder a las variables de entorno de ese proceso a través de /proc/$PID/environ
. Sin embargo, solo el usuario propietario del proceso, o root, puede acceder a ese archivo.
2. La fuente de las variables de entorno
Si está utilizando un script de inicio y las variables están almacenadas en ese script de inicio, las variables, por supuesto, se pueden obtener leyendo ese script.
O si las variables de entorno provienen de otro lugar, entonces donde sea que esté.
3. salida 'ps'
Sí, sé que dije 2, y en cualquier sistema decente, será 2. Sin embargo, si el administrador no sabe lo que está haciendo, es posible abrir una tercera vía.
Si el proceso se inicia a través de algo como sh -c 'cd /foo/bar; POP=tart /my/executable'
, entonces ese sh
el proceso será visible en ps
:
$ sh -c 'cd /; POP=tart sleep 10' &
[1] 3085
$ ps ax | grep POP
phemmer 3085 14 5 0.0 0.0 SN 00:00 sh -c cd /; POP=tart sleep 10