【发布时间】:2011-06-13 07:04:15
【问题描述】:
我有一个没有以 root 身份运行的 Python 服务器,它面向我正在开发的应用程序。但是,有些应用程序功能需要访问 RAW 套接字,这意味着 root 权限。
显然我不想以 root 身份运行主服务器,因此我的解决方案是创建一个以 root 身份运行的守护进程或命令行脚本,以提供对所述功能的保护访问。
但是我想抛开标准输入/标准输出通信并使用 RPC 交互方式,例如Pyro。但这会将 RPC 接口暴露给任何可以通过网络访问机器的人,而我知道调用 RPC 方法的进程将是同一台机器上的另一个进程。
难道没有一种进程间过程调用标准可以以类似的方式(仅限本地机器)使用吗?我想象服务器在做这样的事情:
# Server not running as root
pythonically, returned, values = other_process_running_as_root.some_method()
并且以root身份运行的进程暴露了一个方法:
# Daemon running as root
@expose_this_method
def some_method():
# Play with RAW sockets
return pythonically, returned, values
这样的事情可能吗?
【问题讨论】:
-
我不知道任何预先写好的东西,但我认为使用像 zmq 这样的通信层来实现它会很容易,作为围绕请求/回复通道的抽象。