【问题标题】:Invoking shell script from a python script using root privileges使用 root 权限从 python 脚本调用 shell 脚本
【发布时间】:2011-06-06 14:34:33
【问题描述】:

我正在尝试使用 call 命令从 python 脚本 (python_script.py) 调用 shell 脚本 shell_script.shshell_script.sh 调用需要 root 访问权限才能执行的可执行文件。

python_script.py 使用 subprocess.call() 调用 shell_script.sh

见下文: subprocess.call(['/complete_path/shell_script.sh', 'param1', 'param2', 'param3'], shell=True)

当我尝试执行 python 脚本python_script.py 时,它给了我权限被拒绝。

我尝试了不同的方法。

a) 使用 sudo 调用 python - sudo python python_script.py

b) 在调用方法内部调用 sudo - subprocess.call(['sudo' '/complete_path/shell_script.sh', 'param1', 'param2', 'param3'], shell=True)

解决此问题的最佳方法是什么。

谢谢。

【问题讨论】:

    标签: python linux shell root sudo


    【解决方案1】:

    我会在python_script.py 中添加逻辑来检查它的UID,如果没有以root 身份执行则失败。 if os.getuid() != 0:。这将确保它仅以 root 身份运行,以 root 登录的 ether 或 sudo 运行。

    如果您在尝试执行python_script.py 时遇到权限被拒绝,您需要在其上设置执行位。 chmod +x python_script.py

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 2018-03-25
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多