例如,我可以用某种方式rpm
来验证它/etc/pam.d/system-auth
自安装在系统上以来没有发生变化吗?我知道我可以使用整个 RPM 来执行此操作,但我想知道是否可以使用内置rpm
校验和功能或类似功能对单个文件或配置文件执行此操作。红帽 Linux 5/6。
答案1
使用:
rpm -Vf /etc/pam.d/system-auth
尽管在本例中,rpm
会抱怨该文件不属于任何包,因为它是符号链接。在这种情况下,您需要确保针对该实际文件运行命令,而不是针对它的符号链接:
rpm -Vf /etc/pam.d/system-auth-ac
答案2
我知道很久以前就有人问/回答了这个问题,但我认为这是不正确的(也许行为发生了变化rpm
,但我不这么认为)。
rpm -Vf ${FILE}
似乎使用指定的文件来识别包(就像这样rpm -qf
做),但然后验证整个包,这就是总是rpm -V
做的事情。
要仅获取单个文件的详细信息,我认为最简单的解决方案是:
rpm -vf ${FILE} | grep ${FILE}
如果您希望状态代表“此文件自安装以来是否已被修改”,您可以执行以下操作:
FILE=/etc/pam.d/system-auth
if rpm -vf ${FILE} | grep -q ${FILE}
then
echo "${FILE} has been modified"
fi