是否可以请求 root 密码而不存储在我的脚本内存中并以 root 身份运行一些 os.* 命令?
我的脚本
- 扫描一些文件夹和文件以检查它是否可以完成这项工作
- 对/etc/... 进行一些修改
- 创建应归运行脚本的用户所有的文件夹和文件
(1) 可以作为普通用户完成。我可以通过对脚本执行 sudo 来执行 (2),但是 (3) 中的文件夹和文件将是 root 的。
问题是我使用了很多 os.makedirs、os.symlink 等,这使我无法让普通用户运行它。
Tanks 2 所有的建议
目前的解决方案是:
# do all in sudo
os.chown(folder, int(os.getenv('SUDO_UID')), int(os.getenv('SUDO_GID')))
感谢 gnibbler 的提示。
最佳答案
也许你可以把 (2) 放在一个单独的脚本中,比如说 script2.py
,然后在主脚本中你用 调用
? sudo script2.py
打开
这样只有 (2) 会以 root 身份执行。
关于python - 如何以 root 身份执行 os.* 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636136/