我使用 root 用户为许多应用程序安装了 monit。其中一个应用程序使用非 root 用户帐户启动。
不幸的是,当我更新我的应用程序时,我还需要重新启动它。我的更新过程使用非root用户(我使用capistrano来更新我的应用程序)
由于 Monit 正在检查此应用程序,并且更新过程由非 root 用户完成。为了重新启动应用程序,非 root 用户会终止该应用程序,然后 monit 会重新启动它。
我想允许非 root 用户仅重新启动此特定应用程序。此用户不应被允许运行其他与 monit 相关的操作。
有没有办法允许用户运行特定的 monit 操作,即使他不是 monitrc 的所有者?
答案1
添加条目到/etc/sudoers
...
%non-root-group ALL=NOPASSWD:/usr/bin/monit
或者
non-root-user ALL=NOPASSWD:/usr/bin/monit
或者
non-root-user ALL=NOPASSWD:/usr/bin/monit reload # to give a specific Monit command.
答案2
根据https://mmonit.com/monit/documentation/monit.html#CONFIGURATION-EXAMPLES,您可以使用配置
启动程序...作为 uid“capistrano”和 gid“users”
也许这正是你想要的?