我修复了 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 修改吗?
答案1
dpkg-statoverride
是 dpkg 维护的数据库的管理工具,其中包含给定文件路径的所有者和模式设置。
按照您的问题进行调用,它将执行两件事:如果给定文件存在,则立即设置其所有权/模式(--update
),并在覆盖文件中存储新条目(--add
)。后者确保dpkg
创建或修改列出的文件的进一步操作将使用覆盖值,而不是包定义的值。
这些覆盖是永久性的。它们通常比常规方法更有效,chmod/chown
因为它可以让你省去在更新或重新安装软件包时手动重置权限的麻烦。
可以通过运行列出现有的覆盖dpkg-statoverride --list
。
答案2
你可以只需手动操作即可。这只是权限的更改。使用 dpkg-statoverride 的原因是它会在更新等时记住它。
这是一个告诉 dpkg 使用这些权限的工具。实际上,您也可以在安装软件包之前设置它。
当通过 dpkg-statoverride 更改已存在的文件的权限时使用 --update 标志。