GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo registro cada comando ejecutado por un usuario?

Solución 1:

Agregue esta línea a su configuración de pam responsable de los inicios de sesión (su sistema de autenticación en distribuciones basadas en redhat)

session    required     pam_tty_audit.so enable=*

Para saber qué se hizo, puede usar.

ausearch -ts <some_timestamp> -m tty -i

Esto produce una salida como esta:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

El único inconveniente de esto es que puede ser un poco difícil de leer, pero es mucho mejor que la mayoría de las soluciones propuestas, ya que en teoría podría usarse para grabar una sesión completa, con todos los defectos.

Editar:Ah, y puedes usar aureport para generar una lista que puede ser más útil.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

Solución 2:

La mejor solución a su problema sería el sistema de auditoría integrado de Linux. Usa man 8 auditd o consulte esta página para obtener más información:http://linux.die.net/man/8/auditd.

Además, puede consultar este tutorial:aunque está un poco fuera del alcance de su pregunta, muestra cómo funciona el sistema de auditoría.

Solución 3:

Podrías usar Snoopy.

Es una biblioteca de registro de comandos simple, y no una solución de auditoría adecuada (fácil de eludir). Divulgación:soy el actual mantenedor de Snoopy.

Solución 4:

Un truco menos conocido, pero fácilmente el más asombroso, es usar las capacidades de auditoría integradas de sudo . Sudo viene con un sudoreplay Comando que facilita la reproducción de sesiones. Incluso transmitirá vim sesiones (como usted sugiere).

He aquí cómo usarlo en unos sencillos pasos:

  1. Instalar sudosh en su sistema; este es un contenedor de shell alrededor del sudo comando que hace que un usuario sudo ellos mismos (no root ) y se puede usar como shell de inicio de sesión del sistema
  2. Habilitar sudo Inicio sesión. Editar /etc/sudoers.d/sudosh : Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Agregue este comando a /etc/shells para permitir inicios de sesión usándolo: /usr/bin/sudosh

    Consejo :para evitar que los usuarios usen otros shells para iniciar sesión, elimine esos otros shells de /etc/shells .

  4. Actualice el usuario foobar usar el sudosh shell. chsh -s /usr/bin/sudosh foobar

Para obtener información más detallada, consulte:https://github.com/cloudposse/sudosh/


Linux
  1. Cómo crear un usuario en Linux[Gestión de usuarios]

  2. ¿Cómo registrar cada comando escrito en Bash y cada operación de archivo?

  3. ¿Cómo registrar cada comando escrito?

  4. Cómo limitar los comandos de usuario en Linux

  5. ¿Cómo ver el historial de comandos de otro usuario en Linux?

Cómo crear un usuario Sudo en Debian

Cómo eliminar un usuario en Ubuntu

Cómo crear un usuario Sudo en Ubuntu

Cómo crear un usuario Sudo en CentOS

Cómo crear un usuario Sudo en Debian

Cómo crear un usuario Sudo en CentOS