我正在寻找一种方法来获取文件的历史记录,例如修改日期、谁修改了该文件(IP 地址或用户名)、更改的行
有没有办法获取Linux中修改文件的IP地址或用户名?
答案1
不太可能一步完成,但您可以看到谁登录了系统,w
并且您可以将 stat 显示的文件的修改时间与用户的登录时间相匹配。如果文件不是 777,您还可以考虑给定用户的权限,将其过滤为仅能够编辑该文件的人员。否则,请查看审核文件系统事件。
答案2
要监控用户登录历史记录,您可以尝试Utmpdump
。它会给你登录的用户、次数、IP地址
要显示 /var/run/utmp 的内容,请运行以下命令:
utmpdump /var/run/utmp
对 /var/log/wtmp 执行相同操作:
utmpdump /var/log/wtmp
并使用 /var/log/btmp:
utmpdump /var/log/btmp
您可以使用以下命令列出特定用户的所有登录事件(例如:用户12345)并将输出发送到 .csv 文件,该文件可以使用寻呼机或工作簿应用程序(例如 LibreOffice 的 Calc 或 Microsoft Excel)进行查看。
让我们只显示 PID、用户名、IP 地址和时间戳:
utmpdump /var/log/wtmp | grep -E "\[7].*USER12345" | awk -v OFS="," 'BEGIN {FS="] "}; {print $2,$4,$7,$8}' | sed -e 's/\[//g' -e 's/\]//g'
答案3
如果有人未经授权远程更改文件,您就可以非常严重的安全问题。
您应该断开机器与互联网的连接,备份仅有的配置和数据文件,仔细检查它们以确保没有任何可疑之处,从头开始重新安装,使当然您没有运行任何易受攻击的程序(特别是用户编写的程序!),更改全部密码以确保安全,例如禁止密码 SSH 连接。阅读有关保护您的发行版以及如何设置详细日志记录的内容并定期分析日志。
节哀顺变。