在企业或家庭网络环境中,Ubuntu文件共享监控是保障数据安全、及时响应文件变动的重要手段。本文将从零开始,教您如何在Ubuntu系统中搭建并监控Samba共享目录中的文件变化,即使是Linux小白也能轻松上手。

一、为什么需要文件共享监控?
当多人通过Samba等协议访问同一共享目录时,文件可能被意外删除、修改或上传恶意内容。通过Linux文件变动检测机制,您可以实时收到通知,快速响应异常操作,提升系统安全性与管理效率。
二、准备工作:安装Samba和inotify-tools
首先,确保您的Ubuntu系统已更新,并安装必要的软件包:
sudo apt updatesudo apt install samba inotify-tools -y
samba用于创建网络文件共享,
inotify-tools则提供文件系统事件监控能力,是实现Samba共享监控的核心工具。
三、配置Samba共享目录
假设我们要共享
/srv/shared目录:
sudo mkdir -p /srv/sharedsudo chmod 777 /srv/shared # 简化权限(生产环境建议更严格)
编辑Samba配置文件:
sudo nano /etc/samba/smb.conf
在文件末尾添加以下内容:
[shared] path = /srv/shared browseable = yes writable = yes guest ok = yes read only = no
保存后重启Samba服务:
sudo systemctl restart smbd
四、使用inotify监控文件变动
现在我们使用
inotifywait工具来监控
/srv/shared目录的变动。以下是一个简单的监控脚本:
#!/bin/bashMONITOR_DIR="/srv/shared"LOG_FILE="/var/log/file_monitor.log"echo "[$(date)] 开始监控 $MONITOR_DIR" >> "$LOG_FILE"inotifywait -m -r -e create,delete,modify,move "$MONITOR_DIR" --format '%T %e %w%f' --timefmt '%Y-%m-%d %H:%M:%S' |while read event; do echo "[$(date)] 文件变动: $event" >> "$LOG_FILE" # 可选:发送邮件或通知(此处省略)done
将上述脚本保存为
/usr/local/bin/monitor_shared.sh,并赋予执行权限:
sudo chmod +x /usr/local/bin/monitor_shared.sh
五、设置开机自启(可选)
为了让监控脚本在系统启动时自动运行,可以创建一个systemd服务:
sudo nano /etc/systemd/system/file-monitor.service
写入以下内容:
[Unit]Description=File Monitor for Shared DirectoryAfter=network.target[Service]ExecStart=/usr/local/bin/monitor_shared.shRestart=alwaysUser=root[Install]WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reexecsudo systemctl enable file-monitor.servicesudo systemctl start file-monitor.service
六、查看监控日志
所有文件变动都会记录在
/var/log/file_monitor.log中。您可以使用以下命令实时查看:
tail -f /var/log/file_monitor.log
日志示例:
[2024-06-15 10:30:22] 文件变动: 2024-06-15 10:30:22 CREATE /srv/shared/report.pdf[2024-06-15 10:31:05] 文件变动: 2024-06-15 10:31:05 DELETE /srv/shared/temp.txt
七、总结
通过本文,您已经掌握了在Ubuntu中实现Ubuntu文件共享监控的基本方法。结合Samba共享与inotify工具,您可以轻松构建一个低成本、高效率的文件变动追踪系统。进阶用户还可以将日志接入ELK、发送邮件告警或集成到自动化运维平台中。
记住,良好的监控是数据安全的第一道防线。赶快动手试试吧!
