我试图使用call命令从python脚本(python_script.py
)调用shell脚本shell_script.sh
。shell_script.sh
调用需要根访问才能执行的可执行文件。在
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-sudo python python_script.py
调用python
b)在call方法中调用sudo-subprocess.call(['sudo' '/complete_path/shell_script.sh', 'param1', 'param2',
'param3'], shell=True
)
最好的解决办法是什么。在
谢谢。在
我会在
python_script.py
中放入逻辑来检查它的UID,如果没有作为根用户执行,则失败。if os.getuid() != 0:
。这将确保它只以root用户身份运行,通过根用户登录或sudo运行。在如果在尝试执行
python_script.py
时权限被拒绝,则需要对其设置执行位。chmod +x python_script.py
相关问题 更多 >
编程相关推荐