GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo identificar usuarios que eliminan archivos de un directorio determinado en Linux

Pregunta

¿Cómo encontrar qué usuario está eliminando los archivos en un directorio particular en Linux?

Solución

Puede usar el servicio auditd para registrar un aviso cuando se realiza algún cambio en un archivo o directorio en particular. A continuación se muestra un ejemplo que registrará cualquier cambio realizado en cualquier archivo del directorio /tmp/dir.

1. Ejecute el siguiente comando para agregar la regla de auditoría:

# auditctl -a always,exit -F dir=/tmp/dir/ -F perm=war -k file_del

Verifique las reglas de auditoría configuradas:

# auditctl -l
-w /tmp/dir// -p rwa -k file_del

2. Elimine un archivo en el directorio /tmp/dir/ y luego verifique el archivo audit.log:

$ date > /tmp/dir/when
$ rm /tmp/dir/when

3. Puede verificar audit.log siguiéndolo:

# tail -f /var/log/audit/audit.log
...
type=SYSCALL msg=audit(1515697690.586:2237): arch=c000003e syscall=2 success=yes exit=3 a0=251a9f0 a1=90800 a2=251a9c0 a3=a items=1 ppid=12424 pid=12425 auid=0 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=pts0 ses=332 comm="bash" exe="/bin/bash" key="file_del"
type=CWD msg=audit(1515697690.586:2237): cwd="/home/test"
type=PATH msg=audit(1515697690.586:2237): item=0 name="/tmp/dir/" inode=912888 dev=f9:00 mode=040777 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=PROCTITLE msg=audit(1515697690.586:2237): proctitle="-bash"
type=SYSCALL msg=audit(1515697690.861:2238): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=f2f0c0 a2=0 a3=100 items=2 ppid=12425 pid=12519 auid=0 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=pts0 ses=332 comm="rm" exe="/bin/rm" key="file_del"
type=CWD msg=audit(1515697690.861:2238): cwd="/home/test"
type=PATH msg=audit(1515697690.861:2238): item=0 name="/tmp/dir/" inode=912888 dev=f9:00 mode=040777 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1515697690.861:2238): item=1 name="/tmp/dir/when" inode=913056 dev=f9:00 mode=0100664 ouid=501 ogid=501 rdev=00:00 nametype=DELETE
type=PROCTITLE msg=audit(1515697690.861:2238): proctitle=726D002F746D702F6469722F31

4. Alternativamente, el archivo de registro se puede buscar usando la herramienta ausearch:

# ausearch -k file_del
----
time->Thu Jan 11 19:08:10 2018
type=PROCTITLE msg=audit(1515697690.586:2237): proctitle="-bash"
type=PATH msg=audit(1515697690.586:2237): item=0 name="/tmp/dir/" inode=912888 dev=f9:00 mode=040777 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1515697690.586:2237): cwd="/home/test"
type=SYSCALL msg=audit(1515697690.586:2237): arch=c000003e syscall=2 success=yes exit=3 a0=251a9f0 a1=90800 a2=251a9c0 a3=a items=1 ppid=12424 pid=12425 auid=0 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=pts0 ses=332 comm="bash" exe="/bin/bash" key="file_del"
----
time->Thu Jan 11 19:08:10 2018
type=PROCTITLE msg=audit(1515697690.861:2238): proctitle=726D002F746D702F6469722F31
type=PATH msg=audit(1515697690.861:2238): item=1 name="/tmp/dir/when" inode=913056 dev=f9:00 mode=0100664 ouid=501 ogid=501 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1515697690.861:2238): item=0 name="/tmp/dir/" inode=912888 dev=f9:00 mode=040777 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1515697690.861:2238): cwd="/home/test"
type=SYSCALL msg=audit(1515697690.861:2238): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=f2f0c0 a2=0 a3=100 items=2 ppid=12425 pid=12519 auid=0 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=pts0 ses=332 comm="rm" exe="/bin/rm" key="file_del"
Nota :Este sistema de auditoría no puede impedir un acceso no deseado. Solo se puede realizar una entrada de seguimiento de auditoría. Auditoría de modificaciones y ejecución de archivos en Linux


Linux
  1. Cómo extraer archivos Tar a un directorio específico o diferente en Linux

  2. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux

  3. Cómo encontrar y copiar cierto tipo de archivos de un directorio a otro en Linux

  4. Linux:¿cómo iniciar sesión como usuario en Tty desde Ssh?

  5. Cómo restaurar archivos en el directorio de inicio del usuario a los valores predeterminados en Linux

Cómo contar archivos en el directorio en Linux

Cómo descargar archivos desde servidores Linux remotos

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Cómo crear/agregar usuarios en Linux