作为普通用户的python子进程

作为普通用户的python子进程,python,root,sudo,Python,Root,Sudo,我有一个脚本需要作为超级用户运行: $ sudo ./python-script.py 在这个脚本中,我做了一些不需要超级用户权限的其他事情 $ os.mkdir('somefolder') 以非根用户身份创建目录的最佳/最有效的方法是什么?我是否应该让脚本将目录设置为root用户,然后更改其权限 os.mkdir允许您明确指定权限: os.mkdir(path [, mode=0777]) 您还可以选择运行os.chown来设置用户和组 os.chown(path, uid, gid)

我有一个脚本需要作为超级用户运行:

$ sudo ./python-script.py
在这个脚本中,我做了一些不需要超级用户权限的其他事情

$ os.mkdir('somefolder')

以非根用户身份创建目录的最佳/最有效的方法是什么?我是否应该让脚本将目录设置为root用户,然后更改其权限

os.mkdir
允许您明确指定权限:

os.mkdir(path [, mode=0777])
您还可以选择运行
os.chown
来设置用户和组

os.chown(path, uid, gid)
您可能可以像这样获得原始用户(但可能是特定于平台的?)


创建目录后是否需要根权限?不一定。。。是否仍然可以获取非root用户的uid或gid?请原谅我的无知,但是。。。在上面示例中的mkdir调用中,表示省略号对象?@crawoori:这是来自文档的直接复制粘贴。它是下面解释的参数的占位符。@cravoori:我编辑它是因为如果ppl不知道它是docstring,它可能会让人困惑
import os
original_user = os.environ.get('SUDO_USER')
original_uid = os.environ.get('SUDO_UID')
original_gid = os.environ.get('SUDO_GID')