从python多线程子进程中使用提升的权限运行bash脚本

2024-09-28 13:13:58 发布

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

我在linux上用python编程,使用多处理_pool.apply_异步使用调用bash脚本subprocess.check_输出在

bash脚本调用alien和rpmbuild。alien命令需要以root用户身份运行,因此rpmbuild命令也需要这样做,跟随根sed命令来纠正一些rpm特性。在

现在,如果我想把几个deb转换成rpm,我必须输入我的管理员密码,好几次。在

有没有办法让我只输入一次管理员密码? 也就是说,脚本总是以不同的变量作为新进程调用,但总是在一个密码输入后提升权限? 目前我使用pkexec调用脚本,脚本本身使用sudo。在

非常感谢


Tags: 命令脚本bash密码linux管理员check编程
1条回答
网友
1楼 · 发布于 2024-09-28 13:13:58

如果您以超级用户身份运行python脚本,则脚本不应询问您密码:

$ sudo python -c "import os ; os.system('whoami')"
root

所以像往常一样运行你的东西,但是在python之前加上sudo。如果需要运行多个python脚本并只键入一次密码,请键入sudo su。然后您将成为所有命令的根用户(不加前缀sudo),直到您关闭终端会话。在

提供密码的其他方法:

  1. 如果您希望出现输入密码的gui提示,可以使用sudo -A。在
  2. 如果要将密码作为stdin传递,可以使用sudo -S。在

每个流程都有自己的用户,您必须创建多个流程才能拥有多个用户。在

相关问题 更多 >

    热门问题