kernel event listener

Me pregunto si hay algo similar a un oyente de events en UNIX al que un progtwig pueda suscribirse. Específicamente, quiero saber:

Start and end times of a user session Start and end of the applications executed by that user 

¿Algun consejo?

Usando psacct

Los events que está buscando se pueden encontrar a través de psacct . Específicamente, echaré un vistazo a la herramienta ac que muestra información contable sobre los usuarios. Toco esto en este U & L Q & A titulado: Comandos para determinar el nivel de uso del server .

NOTA: Este no es un "service" subscrbible, sino una infraestructura de seguimiento y presentación de informes en la que puede formular preguntas.

También puede usar lastcomm (parte de psacct, tiene varias herramientas en el package) para averiguar cuándo una aplicación determinada fue utilizada por el usuario X.

Ejemplo

 $ lastcomm rm rm S root pts/0 0.00 secs Tue Nov 14 00:39 rm S root pts/0 0.00 secs Tue Nov 14 00:39 rm S root pts/0 0.00 secs Tue Nov 14 00:38 

Tendrás que profundizar un poco en psacct pero hay muchos resources al respecto en U & L, así como en Google, que deberían darte lo que deseas.

Usando auditd

La otra herramienta, en el mismo vano como el psacct de rastreo e información de auditd es auditd . Con auditd puede consultar para averiguar quién y durante cuánto time se ejecutó el progtwig X.

Ejemplo

 $ sudo ausearch -x /usr/bin/sudo | head -5 ---- time->Sat Dec 7 21:15:15 2013 type=USER_AUTH msg=audit(1386468915.558:419): pid=2189 uid=1000 auid=1000 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="saml" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success' ---- time->Sat Dec 7 21:15:15 2013 

NOTA: Lo anterior es encontrar todas las inputs donde alguien ejecutó la herramienta /usr/bin/sudo .

Referencias

  • Capítulo 32. Introducción de un set de reglas de auditoría
  • 7.7. Buscando en los files de logging de auditoría