两个setuid程序/usr/bin/bar和/usr/bin/baz共享一个配置文件foo。配置文件的模式为0640,因为它包含敏感信息。一个程序的运行方式为bar:bar(即,作为用户栏,组栏);另一个为baz:baz。更改用户不是一种选择,即使更改组也不可取。
我希望将单个配置文件与/etc/bar/foo和硬链接/etc/baz/foo。但是,这失败了,因为据我所知该文件必须属于root:bar或root:baz。
可能的解决方案:创建一个barbaz成员为bar和的新组baz。让foo属于root:barbaz。
对我来说,这似乎是一个繁重的解决方案。是否没有更整洁,更简单的方法foo在两个程序之间共享配置文件?
目前,我正在维护文件的两个相同副本。这有效,但是显然是错误的。什么是对的?
有关信息:我对Unix组几乎没有经验,对setgid(2)也没有经验。
ssl-cert小组,这几乎就是您的barbaz小组。标准是将所有私钥设置为该ssl-cert组拥有,并将与需要访问它们的程序相关联的UID放入该组中。
ssl-cert,该软件包的postinst脚本在安装时会创建您要说的群组。我一直不知道ssl-cert。建议使用 Apache2(安装在我的主机上)ssl-cert。各种进出口和Dovecot的包不这样做,但后缀(不安装我的主机上)依赖上ssl-cert。由于使用Apache,我的主机上确实有一个ssl-cert组,但是该组还没有成员。谢谢你的建议。