我正在使用 RPM 进行文件验证。我所做的就是跑步
rpm -Va
获取已更改的文件列表。然后我跑
rpm -qf
获取文件所属的包名。最后我跑了
rpm --setperms <pkgname>
它运行时没有错误,但似乎没有完成其工作,因为当我启动新的验证时,它返回相同的文件列表。关于为什么这可能并不总是按预期工作的任何原因/警告?
答案1
如果没有有关失败原因的详细信息,谁知道呢,因为某些验证总是会失败并且永远无法修复,例如,如果/etc/aliases
已修改为将root
邮件指向其他地方:
% rpm -qf /etc/aliases
setup-2.8.14-20.el6_4.1.noarch
% rpm -V setup
S.5....T. c /etc/aliases
%
在这种情况下,文件大小不同(a--setperms
不会做任何修复),摘要不同(同样,--setperms
不相关),并且 mtime 不同,这又--setperms
不会做任何事情。
但是,权限当然可以通过--setperms
.
% sudo chmod 7001 /etc/aliases
% ls -l /etc/aliases
---S--S--t. 1 root root 1542 Aug 1 2014 /etc/aliases
% rpm -V setup
SM?....T. c /etc/aliases
% sudo rpm --setperms setup
% rpm -V setup
S.5....T. c /etc/aliases
% ls -l /etc/aliases
-rw-r--r--. 1 root root 1542 Aug 1 2014 /etc/aliases
%
请注意“模式”的第二列,以及在权限被窃取的情况下摘要检查如何失败的情况。
(包装器rpm -V
可能很方便,可以详细说明这个相当神秘的输出......)