微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 限制用户可以使用supervisor重启哪些进程?

我使用主管来管理运行Django站点的Gunicorn进程,尽管这个问题可能与主管管理的任何事情有关.以前我是唯一管理和使用我们服务器的人,而主管只是以root身份运行,我会在需要时使用sudo运行supervisorctl restart myapp.

现在,我们的服务器必须支持在不同站点上工作的多个用户,并且每个项目都需要能够重新启动他们自己的gunicorn进程,而无法重新启动其他用户的进程.

我关注这篇博文:

http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/

并且能够允许非root用户使用supervisorctl,但现在任何人都可以重启其他人的进程.从它的外观来看,主管没有办法进行每用户访问控制.

任何人都有任何关于如何允许用户只重新启动自己的进程而没有root的想法?

编辑:我们考虑过的一些事情包括编写一个root所拥有的脚本,suid位设置除了supervisorctl重启myapp之外什么都没有,并把它放在拥有myapp的用户的目录中.互联网似乎在说如果做错了这样的脚本是不安全的.我们还考虑编写一个自定义守护程序,该守护程序侦听来自特定用户的命令,并在用户具有权限时重新启动管理程序进程.如果一个更简单的解决方案可行,这个想法似乎过于复杂.

解决方法

您可以使用sudo代替自定义脚本来完成同样的事情.也就是说,给定认的supervisord配置,其中只有root可以运行supervisorctl,你可以将这样的条目放入/ etc / sudoers:
alice ALL = (root) nopASSWD:/usr/bin/supervisorctl restart app1
bob ALL = (root) nopASSWD:/usr/bin/supervisorctl restart app2

这将允许alice以root身份运行sudo /usr/bin/supervisorctl restart app1而无需提供密码,并且它将允许bob重新启动app2.

原文地址:https://www.jb51.cc/linux/400770.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐