Python:使用sudo权限调用函数

时间:2017-02-01 18:55:43

标签: python ipc pickle sudo elevated-privileges

考虑以下情况:

def sudo_get_data():  # needs root permissions
    return some_python_objects()  # not plain text output

def user_notify(data):  # must be called as user
    if condition(data):
        desktop_notification(data)

while True:  # the two functions are called periodically
    data = sudo_get_data()
    user_notify(data)
    sleep(interval)

我猜我不可避免地需要拆分代码并在单独的进程中调用sudo_get_data函数。

然而,我不能简单地将数据作为子进程的文本输出,因为数据是专门为我的目的而构造为Python对象的。

我可能会腌制和取消它,但是这些功能将每隔几秒被无限期地调用,所以这不是一个很好的解决方案,不断进行sudo调用:如果sudoers设置是这样的,那么每个用户都被提示调用

到目前为止,我正在考虑在代码的两个部分之间创建进程间通信。用户使用自己的权限运行主脚本,这个主脚本sudo-在子进程中运行一个单独的python脚本,然后每隔几秒就将python数据传回主脚本。

  • 这样做是否有意义?

    • 如果是这样,哪种Python库会有用?
    • 要注意哪些潜在的缺点?
  • 有没有更好的方法?

0 个答案:

没有答案