我刚刚完成设置主pipe来运行我的gunicorn实例,我想知道是否有一个默认的方式,让普通用户运行superctctl来启动/停止网站。 我正在考虑添加一些sudo的configuration,使用户能够运行它,但是我认为这可能会打开一些漏洞,通过这个漏洞,入侵者可以以root身份运行。 我知道我可以在[supervisord] config部分设置user = someuser,但是我必须为整个文件系统的文件授予该用户的权限,用于日志,套接字创build等。这将是一个问题,因为标准ubuntu软件包部署假设主pipe将以root身份运行。
那么哪一个更好,还是有另一个select?
sudo在这里真的是更好的select。 如果担心除了start / stop之外他们可以将parameter passing给supervisorctl ,可能会创build两个除了调用supervisorctl start / stop (而不是使用system(3)而是exec(3)之外什么都不做的小二进制文件),只能为用户调用这两个特定的二进制文件。
在网站中部署网站,在其内部构build主pipe,然后bin / supervisorctl start / stop将成为用户ID,所有的configuration都将在构build中,并且不需要root。