Мне нужно убедиться, что доступ (режим, владелец) ко всем (!) Двоичным файлам на 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
вариант, чтобы ограничить его определенными именами пути, но вместо этого укажите либо набор имен пакетов для проверки, либо разрешите по умолчанию проверять все пакеты, установленные на машине. На странице руководства:
Первый синопсис, определенный выше, используется для перечисления или проверки содержимого и / или атрибутов объектов, которые в настоящее время установлены в системе или в указанном pkgmap. Имена пакетов могут быть перечислены в командной строке или по умолчанию будет проверяться все содержимое машины.
Таким образом, синтаксис, который нужно обработать для каждого установленного пакета, убедитесь, что его содержимое находится на диске, как если бы он был изначально определен в пакете (режим и право собственности), будет просто:
pkgchk -a
(The -a
говорит ему просто проверять режим и право собственности, а не содержимое. Если вы удалите его и для проверки содержимого, тогда вы захотите добавить -n
чтобы не проверять содержимое редактируемых файлов, которые, как ожидается, изменятся, например файлы конфигурации.)