Filesystems
當在本地文件系統上創建具有特定內容(由例如校驗和給出)的文件時,如何擷取事件?
我想實現一種絆線安全機制,當使用者在他的工作站的硬碟驅動器(將由我管理)上寫入具有特定內容的文件時實時跟踪事件。
否則輝煌的loggedfs不會讓我監控文件的內容,只有文件名。
我還有什麼選擇?我想我需要類似於實時防病毒軟體使用的東西。
PS 我可以使用 btrfs 並依靠它的葉塊校驗和。但我更喜歡更通用的解決方案。
在 Linux 上,您可以將該
inotify
機制與incron
. 通過安裝incron
包進行設置並編輯配置:/etc/incron.conf system_table_dir=/etc/incron.d user_table_dir=/var/spool/incron allowed_users=/etc/incron.allow denied_users=/etc/incron.deny lockfile_dir=/var/run logfile_name=incrond editor=vi
然後在中配置一個手錶
/etc/incron.d/myscriptwatch
:/path/to/dir IN_CLOSE_WRITE,IN_MOVED_TO /path/to/check_content_script.sh $@ $#
下一步是設置您
/path/to/check_content_script.sh
以檢查文件的處理方式:CURRSUM=$(md5sum $@) PREVSUM=$(cat /path/to/old_saved_sum) if [ "$CURRSUM" = "$PREVSUM" ] then echo "file $@ is not altered" >> /tmp/watch_log else echo "file $@ is altered" >> /tmp/watch_log fi
您還可以監視其他事件以查看文件是否已更改,例如
IN_CLOSE_WRITE,IN_ATTRIB,IN_MODIFY
有關
man 5 incrontab
更多詳細資訊,請參閱。