我在linux上用python编程,我使用multiprocessing_pool.apply_async使用subprocess.check_output调用bash脚本
bash脚本正在调用alien和rpmbuild。 alien命令需要以root身份运行,因此rpmbuild命令也会执行root sed命令来纠正某些rpm特性。
目前,如果我想将几个deb转换为rpms,我必须多次输入我的管理员密码。
有没有办法只输入一次我的管理员密码?即,始终使用不同的变量作为新进程调用脚本,但在一次密码输入后始终提升权限?目前我正在使用pkexec调用脚本,脚本本身使用了sudo。
非常感谢
如果以超级用户身份运行python脚本,脚本不应该问你密码:
$ sudo python -c "import os ; os.system('whoami')"
root
所以像往常一样运行你的东西,但在sudo
之前使用python
。如果您需要运行多个python脚本并仅键入一次密码,请键入sudo su
。然后,您将成为所有命令的root(不添加sudo
),直到您关闭终端会话。
提供密码的其他方法:
sudo -A
。sudo -S
。每个进程都有自己的用户,您必须创建多个进程才能拥有多个用户。