Что именно делает эта команда 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 для файлов, которые уже существуют.