Python 如何在只有一个密码提示的情况下实现具有root权限的多个命令?
我正在开发一个GUI应用程序,它分别调用两个系统命令 这两个命令需要根权限才能执行Python 如何在只有一个密码提示的情况下实现具有root权限的多个命令?,python,linux,Python,Linux,我正在开发一个GUI应用程序,它分别调用两个系统命令 这两个命令需要根权限才能执行 我采用的第一种方法是调用gksu,然后调用gksu 这很好,但是用户必须分别输入两次密码,从用户体验的角度来看,这不是一个好主意 我试图用第一个命令调用gksu,用第二个命令调用sudo,但我得到了以下错误: sudo:不存在tty,也没有指定askpass程序 因此,我尝试在python文件中分离这些命令,并从原始文件中调用一个类似于gksu python3 commands.py的命令 我不确定在发布整
- 我采用的第一种方法是调用
,然后调用gksu
这很好,但是用户必须分别输入两次密码,从用户体验的角度来看,这不是一个好主意gksu
- 我试图用第一个命令调用
,用第二个命令调用gksu
,但我得到了以下错误:sudo
sudo:不存在tty,也没有指定askpass程序
- 因此,我尝试在python文件中分离这些命令,并从原始文件中调用一个类似于
的命令 我不确定在发布整个项目的编译版本后是否会执行此操作,因为我打算在其上使用gksu python3 commands.py
pyinstaller--onefile
因此,我需要的是,考虑到应用程序的最终状态是一个可执行的二进制文件,不包括使用root权限运行整个应用程序,使应用程序能够以超级用户权限运行特定脚本。您可以执行以下操作:
gksu -- bash -c 'command1; command2; command3'
它将询问您的密码一次,并以root用户身份执行3个命令
来源:多亏了,他的回答引导我找到了正确的解决方案,即使用pkexec
而不是像这样使用gksu
:
pkexec bash -c "command_1;command_2"
问题与GUI无关。请不要在问题标题中添加已解决的问题,而是在2天内将答案标记为正确。查看给出此输出的
未能执行子进程“-”(没有这样的文件或目录)
刚刚做了一些研究并找到了可行的替代方法:pkexec bash-c“whoami;whoami”
谢谢。