gpt4 book ai didi

python - 作为另一个用户(例如 root)运行 Python 例程的 pythonic 方式是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:55 26 4
gpt4 key购买 nike

本着this answer的精神(“不要从 Python 调用 shell 命令。您可以在 Python 中执行 shell 命令可以执行的所有操作。”),这是给很多人的相当普遍的建议,我如何运行选定的单个例程 (并且只有这个例程)在 Python 程序中作为另一个用户,例如root,以 pythonic(并且有点安全)方式?

例如,我在一些代码中有这样一个例程:

import os
import signal
import subprocess

def kill_proc(pid, k_signal = signal.SIGINT, sudo = False):
if sudo:
subprocess.Popen(['sudo', 'kill', '-%d' % k_signal, '%d' % pid]).wait()
else:
os.kill(pid, k_signal)

如果我不需要成为 root,我可以在这个例子中调用 os.kill(pid, k_signal)。但是,如果在我的示例中需要 super 用户权限来发送信号,我必须通过子进程中的命令发送信号。我怎样才能改用 os.kill

最佳答案

您不能以其他用户身份运行 Python 函数。

类 Unix 操作系统将每个进程与特定用户相关联。除非最初的所有者是根用户,否则不能将进程重新分配给其他用户。 Python 函数不是进程,不能有自己的用户。

关于python - 作为另一个用户(例如 root)运行 Python 例程的 pythonic 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47892057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com