我需要validation访问(模式,所有者)到solaris 10盒上的所有(!)二进制文件是否与它们来自的软件包一致。 我可以做类似的事情
/usr/bin/find / -type f -perm -u+x,g+x,o+x -exec ls -l {} \; > /tmp/binaries.txt
然后遍历列表并检查
pkgchk -l –p /path/to/binary
该文件是兼容的。 当然,这可能是脚本化的,但是这仍然需要相当长的一段时间。 我想知道是否会有一个工具或东西,让我反过来:对于每个安装的软件包,检查它的内容是否在磁盘上,就像最初在软件包(模式和所有权)中定义的一样。
是的,并且该实用程序也是pkgchk
,如果您不使用-p
选项将其限制为某些path名,而是指定要检查的一组软件包名称,或者使其缺省为检查计算机上安装的所有软件包。 从手册页:
上面定义的第一个概要用于列出或检查当前安装在系统上或指定的pkgmap中的对象的内容和/或属性。 软件包名称可以在命令行中列出,或者默认情况下,将检查机器的全部内容。
因此,对于每个已安装的软件包,检查它的内容是否在磁盘上,就好像最初在软件包(模式和所有权)中定义的一样,处理的语法就是:
pkgchk -a
( -a
告诉它只是检查模式和所有权,而不是内容,如果你删除它来检查内容,那么你会想要添加-n
不检查预期改变的可编辑文件的内容,例如configuration文件。)