gpt4 book ai didi

python - 以另一个用户身份运行 python 脚本

转载 作者:IT王子 更新时间:2023-10-29 00:11:55 27 4
gpt4 key购买 nike

在 Linux 机器上,我想以另一个用户身份运行 Python 脚本。

我已经用 C++ 编写了一个调用脚本的包装程序,因为我已经意识到运行脚本的所有权是由 python 解释器的所有权决定的。之后,我将 C++ 程序更改为不同的用户并运行 C++ 程序。

此设置似乎不起作用。有什么想法吗?

最佳答案

可以通过os.setuid()设置用户,通过pwd获取uid。像这样:

>>> import pwd, os
>>> uid = pwd.getpwnam('root')[2]
>>> os.setuid(uid)

显然,这仅在用户或可执行文件具有这样做的权限时才有效。具体如何设置我不知道。显然,如果你是 root,它就可以工作。我认为您可能需要在 Python 可执行文件上设置 setuid 标志,这会留下巨大的安全漏洞。如果您设置了 setuid 的用户也是一个专用的受限用户,除了您需要做的事情之外,他什么也做不了。

Unix 安全,基于用户和 setuiding 之类的东西,不是很好或实用,而且很容易留下大的安全漏洞。一个更安全的选择实际上是执行这种客户端-服务器类型的操作,因此您有一个可以执行所有操作的恶魔,客户端可以与之对话。然后恶魔可以以比用户更高的安全性运行,但用户在运行脚本时必须提供名称和密码,或者使用一些公钥/私钥等来标识自己。

关于python - 以另一个用户身份运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499268/

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