当使用 升级我的系统上的软件包时,通常我们会使用以下命令apt-get
更新文件数据库rkhunter
sudo rkhunter --propupd
缺点是,这会更新全部受 监督的文件rkhunter
。因此,如果另一个包裹真的是被操纵的, 这信息对于这个其他包丢失了每当您更新整个数据库时。
如何仅更新使用包管理器有意升级的文件的属性,并保持所有其他文件属性完好无损,以便仍报告潜在威胁rkhunter
?
答案1
留
APT_AUTOGEN="false"
在/etc/default/rkhunter
此脚本创建 rkhunter propupdate 命令,您在 apt 运行后需要:
#!/bin/bash
# store this file as /usr/local/sbin/rkhunter-auto-update-after-apt
cat /var/lib/rkhunter/db/rkhunter.dat|fgrep "File:" \
| awk -F ":" '{print $3}' > /tmp/rkhunter-list.txt
NUM=$(grep -n "startup archives unpack" /var/log/dpkg.log|cut -d":" -f1|tail -n1)
tail --lines=+$NUM /var/log/dpkg.log | grep 'installed' \
| awk '{ print $5 }'|sed s/:.*//|xargs dpkg-query -L > /tmp/installed-list.txt
cat /tmp/rkhunter-list.txt | while read BIN; do
if grep "^${BIN}$" /tmp/installed-list.txt > /dev/null; then
if [ "" != "$BIN" ];then
echo rkhunter --propupd "$BIN"
fi
fi
done
(在 trisquel 上,rkhunter.dat
文件少了一行,因此 awk 需要{print $2}
在那里)
在 apt-get 运行后调用此脚本以更新列表。
如果您满意,请删除echo
并创建一个钩子/etc/apt/apt.conf.d/91rkhunter-post-apt
DPkg::Post-Invoke { "if [ -x /usr/bin/rkhunter ]; then /usr/local/sbin/rkhunter-auto-update-after-apt; fi"; };