¿Cómo superviso los cambios realizados en las variables de entorno?

¿Cómo superviso los cambios realizados en las variables de entorno?

Tengo una variable de entorno cuyo valor no coincide con el establecido por /etc/environment, incluso después de reiniciar. Finalmente encontré el script .sh ejecutado automáticamente cambiándolo, pero ese incidente me interesó.

¿Existe alguna manera de monitorear (o registrar, o lo que esté disponible) todos los cambios realizados en el entorno?

Preferiblemente con marca de tiempo, variable accedida, conjunto de valores, usuario responsable y ruta al script bash utilizado cuando esté disponible. No todos son obligatorios, pero cuantos más mejor.

Como nota al margen, actualmente estoy usando Ubuntu14.04, pero las respuestas sobre diferentes sistemas operativos son bienvenidas.

Salud

Respuesta1

Eso sería difícil.

Las variables de entorno no son objetos monitorizables: existen en la propia memoria de los programas y son sólo un montón de texto que los procesos transmiten a sus hijos. Por lo tanto, es casi imposible auditar susaccesoa nivel de sistema. En el mejor de los casos, podría utilizar stracepara ver qué env se pasa a los nuevos procesos durante la creación del proceso (específicamente la execvellamada al sistema); eso supone que pueda adjuntarlo con suficiente antelación.

(Sin embargo, strace no te mostrará lo que sucedeadentroun proceso. Entonces, si intenta rastrear bash, solo verá con qué comienza y qué termina transmitiendo, pero no verá qué hacen los scripts /etc/profile.d individuales).

Esto también significa que los scripts bash no son lo único que puede afectar las variables. De hecho, muchos de ellos están configurados por módulos PAM o por el propio programa de inicio de sesión. En particular, /etc/environmentsuele ser leído por el módulo "pam_env".

información relacionada