GNU/Linux >> Tutoriels Linux >  >> Linux

Comment identifier l'utilisateur qui supprime des fichiers d'un répertoire donné sous Linux

Question

Comment trouver quel utilisateur supprime les fichiers sous un répertoire particulier sous Linux ?

Solution

Vous pouvez utiliser le service auditd pour enregistrer une notification lorsqu'une modification est apportée à un fichier ou un répertoire particulier. Vous trouverez ci-dessous un exemple qui enregistrera toute modification apportée à n'importe quel fichier sous le répertoire /tmp/dir.

1. Exécutez la commande ci-dessous pour ajouter la règle d'audit :

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

Vérifiez les règles d'audit configurées :

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

2. Supprimez un fichier sous le répertoire /tmp/dir/ puis vérifiez le fichier audit.log :

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

3. Vous pouvez vérifier le fichier audit.log en le suivant :

# 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. Alternativement, le fichier journal peut être recherché à l'aide de l'outil 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"
Remarque :Ce système d'audit ne peut pas empêcher un accès indésirable. Seule une entrée de piste d'audit peut être effectuée. Audit des modifications et de l'exécution des fichiers sous Linux


Linux
  1. Comment ajouter ou supprimer un utilisateur d'un groupe sous Linux

  2. Comment extraire des fichiers tar dans un répertoire spécifique ou différent sous Linux

  3. Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

  4. Comment créer une vidéo à partir de fichiers PDF sous Linux

  5. Comment gérer les utilisateurs avec useradd sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Comment télécharger des fichiers à partir de serveurs Linux distants

Comment lister les fichiers de manière récursive sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Comment compter le nombre de fichiers dans un répertoire sous Linux

Comment créer/ajouter des utilisateurs sous Linux