ubuntu shell脚本中的Monit命令

fkaflof6  于 2023-10-17  发布在  Shell
关注(0)|答案(1)|浏览(155)

我从命令行发出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中的大多数问题都是关于gid和uid在monit config(如this one)中的使用,或者通过monit config(如this one)调用shell
这里出了什么问题?

ryevplcw

ryevplcw1#

根据您的示例命令

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

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

$ sudo -u ram sudo ./monitreload.sh

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

相关问题