Monit vs Source Control:权限问题


3

我想要变得更好。那是我的大错。

通过进行过程监控,我很擅长:我监控一些关键进程,如果失败则重新启动它们。

我不善于以root身份运行:Monit运行一个Web服务器,我不希望它以root身份运行以防出现安全问题。所以,我有一个特殊的'monit'用户,它具有启动和停止某些关​​键进程所需的权限,这就是它。

monit进程从~monit / .monitrc文件读取,monit坚持认为该文件只能由其运行的用户读取 - 即monit用户。

通过将所有操作脚本和配置存储在源代码控制(mercurial)中,我很擅长,因此我可以使用相同的规范重建机器。我或其他开发人员,检查脚本的源代码控制更改,然后将结果拉到生产机器上。符号链接从~monit / .monitrc指向源控制目录。

然而,这就是它全部落下的地方 - 当我拉最新的脚本时,Mercurial会写入源控制目录,但是pull命令没有作为monit运行,所以monitrc文件可以由另一个用户写入...这个monit不喜欢,也不会跑。

我可以在每次拉动之前和之后不断地对monitrc文件进行chowning和chmodding,但这充满了疏忽。

我看不出如何让monit放松所有权。我看不出粘性位有多大帮助。

有什么建议?

Answers:


0

您可以随时hg进入调用hg然后处理权限的脚本。就像是

!#/bin/bash
/usr/bin/hg.bin $@ && chmod 400 ~monit/monitrc && chown monit ~monit/monitrc

将脚本保存为/usr/bin/hg(或hg安装二进制文件的位置)和

mv /usr/bin/hg /usr/bin/hg.bin
chmod 744 ~monit/monitrc

假设您的普通用户有权运行chmodchown命令,那应该可行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.