我修正了像这里描述的 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修改?
dpkg-statoverride
是由dpkg维护的数据库的pipe理工具,包含给定文件path的所有者和模式设置。
在你的问题中调用,它会做两件事情:如果给定的文件存在( --update
)立即设置OWENERShip /模式,并在覆盖文件( – --add
)中存储一个新的条目。 后者确保进一步创build或修改列出的文件的dpkg
操作将使用覆盖值而不是包中定义的值。
这些重写是永久的。 它们通常会击败正常的chmod/chown
因为它可以节省您在更新或重新安装软件包时必须手动重置权限的function。
现有的覆盖可以通过运行dpkg-statoverride --list
来列出。
你可以手动完成。 这只是一个权限的改变。 使用dpkg-statoverride的原因是,它会记住更新等。
这是一个告诉dpkg使用这些权限的工具。 您实际上也可以在安装软件包之前进行设置。
在通过dpkg-statoverride对已存在的文件更改权限时使用–update标志。