python subprocess作为普通用户

时间:2012-07-21 05:56:50

标签: python root sudo

我有一个需要以超级用户身份运行的脚本:

$ sudo ./python-script.py

在这个脚本中,我做了一些需要超级用户权限的事情。

$ os.mkdir('somefolder')

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

1 个答案:

答案 0 :(得分:3)

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')