shell 脚本中的 Monit 命令

问题描述 投票:0回答:1

我从命令行发出 monit 命令,这有效

$ sudo monit reload

现在我创建一个shell脚本monitreload.sh

#!/bin/bash
monit reload

然后是命令

$ sudo ./monitreload.sh
$ sudo -u ram ./monitreload.sh

上述失败并出现权限被拒绝错误。

请注意 /etc/monit/monitrc 文件由 root 所有,并且用户“ram”是有效的 sudo 用户。 SO 中的大多数问题都讨论 monit 配置中的 gid 和 uid 使用,如 this one 或通过 monit 配置调用 shell,如 this one

这里出了什么问题?

ubuntu sudo monit
1个回答
0
投票

基于您的示例命令

$ sudo ./monitreload.sh
$ sudo -u ram ./monitreload.sh

第一个应该可以工作,你切换到root。 但第二个不应该,你切换到用户“ram”,只要Monit被“root”盯着,用户“ram”就无法重新加载配置。

$ sudo -u ram sudo ./monitreload.sh

如果“ram”被授权切换到“root”,您可以在命令中额外添加一个“sudo”,以从“ram”切换到“root”。 Monit 不会自动切换到“root”用户。

© www.soinside.com 2019 - 2024. All rights reserved.