[英]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.