繁体   English   中英

使用 root 权限从 python 脚本调用 shell 脚本

[英]Invoking shell script from a python script using root privileges

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

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

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

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

我尝试过不同的方法。

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

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

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

谢谢。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM