启用用户帐户运行supervisorctl 的最佳方法?

启用用户帐户运行supervisorctl 的最佳方法?

我刚刚完成设置导师运行我的 gunicorn 实例,我想知道是否有一种默认方式可以让普通用户运行 Supervisorctl 来启动/停止网站。我原本想添加一些 sudo 配置,让此用户能够运行它,但后来我认为这可能会打开一些漏洞,入侵者可以通过这些漏洞以 root 身份运行程序。我知道我可以在 [supervisord] 配置部分设置 user=someuser,但随后我必须授予该用户访问整个文件系统的文件、日志、套接字创建等的权限。这将是一个问题,因为标准 ubuntu 包部署假定 Supervisor 将以 root 身份运行。

那么哪一个更好,或者还有其他选择吗?

答案1

sudo 确实是更好的选择。如果您担心他们可以将参数传递给/supervisorctl以外的其他位置,也许可以创建两个小的二进制文件(不是脚本!),除了调用/ (而不是使用but )之外不执行任何操作,并且只允许用户调用这两个特定的二进制文件。startstopsupervisorctl startstopsystem(3)exec(3)

答案2

在构建中部署您的网站,在其中构建主管,然后 bin/supervisorctl start/stop 将是用户 id,所有配置都将在构建中,并且不需要 root 权限。

相关内容