【发布时间】:2020-07-26 22:44:56
【问题描述】:
我想使用 sudo(例如 sudo python test.py)运行 python 程序,但是在 python 程序中,当我使用 os.system(<some command>) 调用其他进程时,我想以非 root 用户身份运行它们。
这可行吗?
谢谢!
【问题讨论】:
-
分叉一个子进程。在子流程中,给用户打电话
os.setuid(),然后做你想做的事。在父进程中,等待子进程完成 (os.waitpid())。 -
@alaniwi 谢谢!这行得通!我刚刚发现的另一种方法似乎是我可以在要运行的命令前面添加前缀“sudo -u username”以作为该特定用户执行。
-
能否将您找到的解决方案添加为问题的正确答案。这可能对其他人有所帮助。