![](/img/trans.png)
[英]Running Python script as root (with sudo) - what is the username of the effective user?
[英]How do I avoid creating folders as root when running a python script under sudo?
问题标题很好地总结了一下。 我正在运行一个Python脚本,该脚本在sudo下具有os.mkdir()
函数(因为其他函数需要它)。 当我使用sudo
运行它时,创建的文件夹具有root
作为所有者,并且是唯一具有访问权限的文件夹。 有什么办法可以避免这种情况?
使用install命令创建目录,该命令会自动更改所有权和权限。
install -o myuser -d -o 0755 /tmp/mydir
运行sudo时,环境变量SUDO_UID
和SUDO_GID
设置为运行sudo的用户的uid和gid。 所以:
uid = os.environ.get("SUDO_UID")
gid = os.environ.get("SUDO_GID")
if uid: os.chown(path, uid, gid)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.