2011-08-03 15 views
8

特定のファイルを変更したユーザーを見つける方法に関するガイダンスを探しています。 inotifyは、特定のファイルに触れたときに通知を受け取ることは素晴らしいですが、どのユーザーがそのファイルを変更したかをどのように把握しますか?私はlsofの使用を考えることができますが、私が望むように "リアルタイム"ではないかもしれない、そして/あるいはリソースに課税されすぎるかもしれないと恐れています。リアルタイムでは、ユーザがファイル上でコマンドを単に実行すると、lsofをファイルに書き込むまでには、lsofで取り上げられないことがあります。inotify - どのユーザーがファイルを変更したかを調べるには?

答えて

11

あなたはaudit deamonを使用することができます。

sudo apt-get install auditd 

書き込みや属性変更(-p wa)の監査を追加

touch /tmp/myfile 

を監視するファイルを選択:

sudo auditctl -w /tmp/myfile -p wa -k my-file-changed 

ファイルがタッチされると一部のユーザー:

touch /tmp/myfile 

チェック監査ログ:

sudo ausearch -k my-file-changed | tail -1 

あなたは出力

タイプ= SYSCALLのMSG =監査(1313055675.066:57):でコマンドを実行したユーザーのUID見ることができるアーチ= c000003eシステムコール= 2つの 成功= YES出口= 3 A0 = 7ffffb6744dd A1 = A2 = 941 1B6 A3 = 7ffffb673bb0 アイテム= 1 PPID = 3428、PID = 4793 AUID = 4294967295 UID = 1000 GID = 1000 EUID = 1000 SUID = 1000 FSUID = 1000 EGID = 1000 SGID = 1000 fsgid = 1000 TTY = PTS1 SES = 4294967295 COMM = "タッチ" EXE = "/ binに/タッチ" キー= "私のファイル・変更"

詳細については、man pagesまたはsample guideを参照してください。

+0

素晴らしい!どうもありがとう。 – user837208

2

以前のコマンドで-iオプションを追加すると、より人間が読める形式で出力されます。 uidはサーバーの実際のユーザー名に変換されます。

ausearch -k my-file-changed -i |テール-1

関連する問題