Что именно делает эта команда dpkg?

Я исправил проблему с разрешением для nagios, как описано здесь.

Команда была:

sudo dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3

Хорошо, очевидно, что это какое-то изменение разрешения. Но где это происходит? Где это хранится? Это просто модификация chmod?

2 ответа

Решение

dpkg-statoverride является инструментом управления базой данных, поддерживаемой dpkg, которая содержит настройки владельца и режима для заданных путей к файлам.

Вызванный, как и в вашем вопросе, он сделает две вещи: немедленно установит режим / режим для указанных файлов, если они существуют (--update) и сохраните новую запись в файле переопределения (--add). Последнее гарантирует, что в дальнейшем dpkg Операции, которые создают или изменяют перечисленные файлы, будут использовать значения переопределения, а не те, которые определены пакетом.

Эти переопределения являются постоянными. Они обычно бьют нормальный chmod/chown так как это избавляет вас от необходимости сбрасывать разрешения вручную при обновлении или переустановке пакета.

Существующие переопределения могут быть перечислены, запустив dpkg-statoverride --list,

Вы можете просто сделать это вручную. Это просто смена разрешений. Причина использования dpkg-statoverride заключается в том, что он будет помнить его при обновлениях и тому подобном.

Это инструмент, позволяющий dpkg использовать эти разрешения. Вы также можете установить его до установки пакета.

Флаг --update используется при изменении разрешений через dpkg-statoverride для файлов, которые уже существуют.

Другие вопросы по тегам