我正在尋找關於如何找出哪個用戶修改了特定文件的指導。雖然inotify非常適合在接觸特定文件時收到通知,但我如何確定哪個用戶修改了該文件?我可以考慮使用lsof,但是恐怕它可能不像我想要的那樣「實時」,並且/或者它可能對資源徵稅太多。通過實時,我的意思是,如果用戶只是在文件上執行touch
命令,那麼在我運行lsof
時,它可能不會被lsof
拾取。inotify - 如何找出哪個用戶有修改過的文件?
8
A
回答
11
您可以使用audit deamon:
sudo apt-get install auditd
選擇一個文件監控
touch /tmp/myfile
添加審計寫入和屬性變化(-p wa
):
sudo auditctl -w /tmp/myfile -p wa -k my-file-changed
該文件被觸摸部分用戶:
touch /tmp/myfile
檢查審計日誌:
sudo ausearch -k my-file-changed | tail -1
你可以看到用戶的UID
誰在輸出運行命令
類型= SYSCALL味精=審計(1313055675.066:57):弓= c000003e系統調用= 2次 成功=是出口= 3 A0 = 7ffffb6744dd A1 = 941 A2 = A3 1B6 = 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。
2
如果在前面的命令中添加-i選項,則會以更易讀的格式獲得輸出。您將在服務器中將uid轉換爲真正的用戶名。
ausearch -k my-file-changed -i |尾巴-1
相關問題
- 1. Inotify vim修改
- 2. 如何列出修改過的文件?
- 3. 如何找出哪些文件在分支中被修改?
- 4. 找出用戶名(誰)在C#中的修改文件
- 5. 如何通過C++找出當前用戶屬於哪個組?
- 6. 如何找出文件模式更改來自哪個提交?
- 7. Perforce:如何查找用戶是否修改了文件?
- 8. 找出哪個進程阻止修改應用程序數據文件
- 9. 如何在Clearcase中找到修改過的文件的活動
- 10. 如何找出使用Sbt更改了哪些文件
- 11. 我應該修改哪個XML文件&&
- 12. 如何找出正在使用哪個進程的文件
- 13. 找到文件的修改時間和修改後的用戶名linux
- 14. 只有修改過的文件
- 15. 如何在Python中查找修改後的文件
- 16. all_trips Webhooks:找出哪個用戶的status_changed
- 17. 如何找出哪個文件上傳輸入文件來自?
- 18. 如何找出文件是否被修改?
- 19. 如何找出哪個JavaScript庫擁有$
- 20. 如何監視哪個進程在Windows中修改文件?
- 21. 如何知道某個作者修改了哪些文件?
- 22. 如何找到哪個腳本修改所選屬性的css
- 23. 如何使用C#確定哪個帳戶修改了共享文件夾中的文件
- 24. 如何修改一個文件的PHP
- 25. 修改Rails:高級用戶如何找出需要更改的內容?
- 26. 如何通過修改日期顯示我的所有文件?
- 27. 如何在沒有修改日期的Unix中列出文件
- 28. 如何列出影子卷中的所有已修改文件?
- 29. 監控文件,以查找哪個線程正在修改文件
- 30. 如何觀看目錄文件修改
太棒了!非常感謝。 – user837208