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

标签 python root sudo

是否可以请求 root 密码而不存储在我的脚本内存中并以 root 身份运行一些 os.* 命令?

我的脚本

  1. 扫描一些文件夹和文件以检查它是否可以完成这项工作
  2. 对/etc/... 进行一些修改
  3. 创建应归运行脚本的用户所有的文件夹和文件

(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/

相关文章:

python - 循环内部 lambda

python - 通过仅获取元组的第一个值来重新格式化元组列表时出现问题?

Python:检索受 SQL DELETE 查询影响的行数

PHP is_file 和服务器根相对路径

android - 一次不能执行多个 shell 命令

Ubuntu 无法执行没有这样的文件或目录

python - 如何从 Python 中的套接字读取字节数组

iphone - 如何停止标签栏的第二次点击弹出到导航 Controller ?

java - linux中如何使用Java ProcessBuilder执行./filename

linux - 在命令链中输入 sudo 命令的密码