我想实现某种绊线安全机制,当用户在其工作站的硬盘驱动器上写入具有特定内容的文件时(将由我管理),该机制实时跟踪事件。
否则辉煌记录文件系统不允许我监视文件的内容,只能监视文件名。
我还有什么其他选择?我想我需要类似于实时防病毒软件使用的东西。
PS 我可以使用 btrfs 并依赖它的叶块校验和。但我更喜欢更通用的解决方案。
答案1
在 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
了解更多详情。