我有一个需要以超级用户身份运行的脚本:
$ sudo ./python-script.py
在这个脚本中,我做了一些其他不需要超级用户权限的事情。
$ os.mkdir('somefolder')
以非 root 用户身份创建目录的最佳/最有效方法是什么?我应该让脚本以root用户身份创建目录,然后更改它的权限吗?
os.mkdir
确实允许您明确指定权限:
os.mkdir(path [, mode=0777])
您还可以选择运行os.chown
来设置用户和组
os.chown(path, uid, gid)
您可能可以像这样获得原始用户(但它可能是特定于平台的?)
import os
original_user = os.environ.get('SUDO_USER')
original_uid = os.environ.get('SUDO_UID')
original_gid = os.environ.get('SUDO_GID')