Linuxマシンがあり、3人のユーザーがいると仮定します-
user1
、user2
、およびuser3
は、マシンにログインできます。
ルールを作成しました
$ auditctl -w /etc/file.txt -p rwxa
file.txt
にアクセスするいくつかのアプリを使用し、大量のログデータを作成するため、毎日、誰が、何時にfile.txt
にアクセスしたかを確認したい場合は、情報過多を最小限に抑えるためにどのようにアクセスしますか。他のユーザー(file.txt
、user1
、user2
、そのアプリ、リモートユーザーなど)からのuser3
へのファイルアクセスのみを表示する必要があります。
監査イベントをフィルタリングおよびレポートするためのユーザースペースツールがあります。いくつかの例については、 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sec-Creating_Audit_Reports.html を参照してください。
あなたの場合、あなたは次のようなことを試すことができます:
ausearch --start today --success no --file /etc/file.txt | aureport --file
当日のファイルで失敗したすべてのアクセス試行を確認します。
その他のオプションについては、ausearchおよびaureportのマニュアルページを確認してください。
Auditdをインストールしたとすると、auditctlを使用してルールを作成したように思われますが、uidでgrepを実行できます。
以下を使用してuidを見つけます。
id user1
id user2
id user3
問題のユーザーIDを選択してログを確認します。
cat /var/log/audit/audit.log | grep uid=1000
これは、1000がファイルアクセスを表示したいユーザーであると想定しています。たとえば、ユーザー1000が監査済みのfile.txtを表示したとき、この場合はcatを使用して表示されます。
type = SYSCALL msg = audit(1484859413.000:83):Arch = c000003e syscall = 2 success = yes exit = 3 a0 = 7ffd50e9eefb a1 = 0 a2 = 20000 a3 = 7ffd50e9c8d0 items = 1 ppid = 28517 pid = 28545 auid = 1000 uid = 1000 gid = 1000 euid = 1000 suid = 1000 fsuid = 1000 egid = 1000 sgid = 1000 fsgid = 1000 tty = pts0 ses = 435 comm = "cat" exe = "/ bin/cat" key =(null)type = PATH msg = audit(1484859413.000:83):item = 0 name = "test.txt" inode = 4847 dev = 08:01 mode = 0100644 ouid = 1000 ogid = 1000 rdev = 00:00 nametype = NORMAL
これがあなたが探していたものだったといいのですが!