在sudo下运行python脚本时,如何避免以root用户身份创建文件夹?

时间:2014-06-03 19:16:26

标签: python unix root

问题标题很好地总结了它。我正在运行一个Python脚本,在sudo下有一个os.mkdir()函数(因为其他函数需要它)。当我使用sudo运行它时,创建的文件夹以root作为所有者,并且唯一具有访问权限的文件夹。有什么办法可以避免这个吗

2 个答案:

答案 0 :(得分:1)

使用install命令创建目录,该命令会自动更改所有权和权限。

install -o myuser -d -o 0755 /tmp/mydir

答案 1 :(得分:1)

运行sudo时,环境变量SUDO_UIDSUDO_GID设置为运行sudo的用户的uid和gid。所以:

uid = os.environ.get("SUDO_UID")
gid = os.environ.get("SUDO_GID")
if uid: os.chown(path, uid, gid)