看了 pacman 的 man 页,貌似没有类似于 rpm -V 的功能。那么,当 ArchLinux 安装好之后的日常使用过程中,如果怀疑系统被篡改,有没有手段去检验所有系统文件的完整性呢?
pacman -Qkk
貌似是通过文件大小和修改时间来判断的,也太简单了,几乎没什么意义。
安装的时候有 gpg 校验已经很不错了,毕竟只是个社区发行版
这么说来,这个发行版只适合个人使用,不适合用在服务器上呀。记得以前连安装前的校验都没有的,呼唤了好多年才出来。
暂时不支持检查校验和。你有兴趣可以发个补丁出来。
本来就不适合在服务器上用。说不定某天你 pacman -Syu 之后,你自己的程序就因为缺库而跑不起来了。或者某个软件因为版本升级功能改变,导致你的程序出错。又或者人品太差, reboot 之后就失联了。
其实已经有了,不过还在 AUR 中: https://aur.archlinux.org/packages/pacutils/
里面的 paccheck 就可以检查软件包文件的 hash 。。。。
确实,随时更新的软件包有好处,也有更大的坏处,服务器上还是 redhat 或 centos 那样的慢更新比较保险。
不过, archlinux 的安装方式的确最干净,不会安装上一大堆并不想要的软件包。 Redhat 之类的,本来不想装 X 相关的包的,经常会因为不慎选上了一个其它包而装上 X 相关的一大堆。。。。
没有这个功能的原因:
https://bugs.archlinux.org/task/38884
原来是把皮球踢给 libarchive 了, 2014 年 6 月提出问题,到现在。。。。哦,我不会 C 或 C++。。。。:D
学
第一次了解,借楼能问一下 apt 的安装后校验怎么做?
APT 在安装前有针对整个包的 hash 校验,至于安装后每个文件的完整性。。。据我所知应该是没有的, apt 的软件列表里只有整个包的 hash ,没有单个文件的。。。。
恩,谢谢,安装前会校验我是知道的,果然 redhat 还是专业
话说我现在的笔记本把 /var/lib/dpkg/info/* 都删过一个了,之后还是照常更新升级。
Google 一下就搜到了,用 debsums 。
http://serverfault.com/questions/322518/can-dpkg-verify-files-from-an-installed-package
Debian 系列发行版 dpkg --verify 或者 dpkg -V
2013 年以后的 dpkg 就够了。详情请 man dpkg.
果然,以前没仔细看包里的细节,确实是每个文件的 md5 都有的。。。