GNU/Linux >> Linux の 問題 >  >> Linux

Linux で特定のディレクトリからファイルを削除しているユーザーを特定する方法

質問

Linux で特定のディレクトリの下にあるファイルを削除しているユーザーを見つける方法は?

解決策

auditd サービスを使用して、特定のファイルまたはディレクトリが変更されたときに通知を記録できます。以下は、/tmp/dir ディレクトリの下の任意のファイルに加えられた変更を記録する例です。

1. 以下のコマンドを実行して、監査ルールを追加します:

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

構成された監査ルールを確認します:

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

2. /tmp/dir/ ディレクトリの下のファイルを削除し、audit.log ファイルを確認します:

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

3. audit.log を追跡して確認できます:

# 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. または、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"
注意 :この監査システムでは、望ましくないアクセスを防ぐことはできません。監査証跡のエントリのみを作成できます。Linux でのファイルの変更と実行の監査


Linux
  1. Linuxでグループにユーザーを追加またはグループから削除する方法

  2. Linuxで特定のディレクトリまたは別のディレクトリにtarファイルを抽出する方法

  3. Linuxでホームディレクトリのユーザーアカウントを削除する方法

  1. Linuxで特定の種類のファイルを検索してあるディレクトリから別のディレクトリにコピーする方法

  2. Linux – SshからTtyにユーザーをログインさせる方法は?

  3. Linuxでグループからユーザーを削除する方法[クイックヒント]

  1. LinuxでPDFファイルからビデオを作成する方法

  2. Linux:特定のディレクトリでコマンドを実行する方法

  3. Linux コンピューターから Active Directory ユーザー属性を一覧表示するにはどうすればよいですか?