如何以root身份执行os.*方法?

是否可以在没有存储在我的脚本内存中并且以root身份运行一些os.*命令的情况下请求root pw?

我的剧本

>扫描一些文件夹和文件,以检查它是否可以完成这项工作
>在/ etc /中进行一些更改…
>创建应由运行脚本的用户拥有的文件夹和文件

(1)可以作为普通用户完成.我可以通过sudoing脚本来做(2),但是(3)中的文件夹和文件将是root的.

问题是我使用了很多os.makedirs,os.symlink等,这使我无法让普通用户运行它.

坦克2都是建议

到目前为止的解决方案是:

# do all in sudo
os.chown(folder, int(os.getenv('SUDO_UID')), int(os.getenv('SUDO_GID')))

感谢gnibbler提示.

最佳答案 也许你可以把(2)放在一个单独的脚本中,比如说script2.py,在主脚本中你用popen调用sudo script2.py?

这样只有(2)将以root身份执行.

点赞