gpt4 book ai didi

python - 删除 Python 中某些操作的 root 权限

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

在我的 Python 脚本中,我执行了一些需要根权限的操作。我还创建并写入了一些我不想由 root 而是由运行我的脚本的用户独占的文件。

通常,我使用 sudo 运行我的脚本。有办法做到以上几点吗?

最佳答案

您可以使用 os.seteuid() 在 uid 之间切换。这与 os.setuid() 的不同之处在于您可以在需要时返回获取 root 权限。

例如,以 root 身份运行以下命令:

import os

open('file1', 'wc')

# switch to userid 501
os.seteuid(501)
open('file2', 'wc')

# switch back to root
os.seteuid(0)
open('file3', 'wc')

这将创建 file1file3 为 root,但 file2 为具有 uid 501 的用户。

如果你想确定哪个用户正在调用你的脚本,sudo 设置两个环境变量:

SUDO_USER
SUDO_UID

分别是调用sudo的用户的用户名和uid。因此,您可以使用 int(os.environ['SUDO_UID'])os.seteuid() 一起使用。

关于python - 删除 Python 中某些操作的 root 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15705439/

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