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

2024-04-26 15:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用call命令从python脚本(python_script.py)调用shell脚本shell_script.shshell_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

最好的解决办法是什么。在

谢谢。在


Tags: path方法py脚本trueshsudoscript
1条回答
网友
1楼 · 发布于 2024-04-26 15:14:05

我会在python_script.py中放入逻辑来检查它的UID,如果没有作为根用户执行,则失败。if os.getuid() != 0:。这将确保它只以root用户身份运行,通过根用户登录或sudo运行。在

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

相关问题 更多 >