Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;sudo“;来自python守护进程的操作_Python_Linux - Fatal编程技术网

&引用;sudo“;来自python守护进程的操作

&引用;sudo“;来自python守护进程的操作,python,linux,Python,Linux,我正在linux上编写一个python管理守护程序,它需要启动/停止其他服务。遵循最小权限原则,我希望以常规用户权限正常运行此服务,但当它需要启动/停止其他服务时,我希望它成为root用户。基本上,我想做sudo在命令行中要做的事情。我无法直接从守护进程执行sudo,因为它没有tty。我希望避免在后台程序不需要以root身份运行时以root身份运行。有没有办法不用sudo就从python实现这一点 先谢谢你 兰加。在这种情况下,我有一个烧瓶后端,需要做一些特殊的事情。我把它分成了两个后端——一个

我正在linux上编写一个python管理守护程序,它需要启动/停止其他服务。遵循最小权限原则,我希望以常规用户权限正常运行此服务,但当它需要启动/停止其他服务时,我希望它成为root用户。基本上,我想做sudo在命令行中要做的事情。我无法直接从守护进程执行sudo,因为它没有tty。我希望避免在后台程序不需要以root身份运行时以root身份运行。有没有办法不用sudo就从python实现这一点

先谢谢你


兰加。

在这种情况下,我有一个烧瓶后端,需要做一些特殊的事情。我把它分成了两个后端——一个是非特权,另一个是小特权,而不是使用sudo


也可以在pty中运行sudo,但我决定反对这种方法,因为它确实存在安全漏洞。

仅为该守护程序创建一个新用户,并授予该守护程序用户sudo权限,而不需要密码?请注意,
sudo
提供了不同的方法来控制哪些命令可以被sudoe。尝试过了,但没有效果。我无法从守护进程执行sudo命令,因为sudo需要一个登录shell才能运行。我认为sudo在这方面不应该有帮助,因为如果你的应用程序可以无条件地使用sudo而不使用密码,那么它基本上是以root权限运行的。通常的做法是以root用户身份启动守护进程,但将其拆分并生成一个权限较低的新进程,该进程将完成大部分工作,并仅将需要root权限的请求转发给父进程。父进程的代码可以通过严格的限制保持在最低限度,从而最小化攻击面。我考虑了一下,决定把我的代码分成一个独立的小部分,作为root+所有其他非特权运行。谢谢