Filesystems

當在本地文件系統上創建具有特定內容(由例如校驗和給出)的文件時,如何擷取事件?

  • March 28, 2019

我想實現一種絆線安全機制,當使用者在他的工作站的硬碟驅動器(將由我管理)上寫入具有特定內容的文件時實時跟踪事件。

否則輝煌的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更多詳細資訊,請參閱。

引用自:https://unix.stackexchange.com/questions/210148