我正在Linux上用python编程,并且我正在使用multiprocessing_pool.apply_async使用subprocess.check_output调用bash脚本
bash脚本正在调用Alien和rpmbuild。 Alien命令需要以root身份运行,因此rpmbuild命令也必须以root sed身份执行,以更正某些rpm特质。
此刻,如果我想将多个deb转换为rpm,则必须多次输入管理员密码。
是否可以只输入一次管理员密码? 即,该脚本始终以不同的变量作为新进程被调用,但总是在输入一个密码后获得更高的特权? 目前,我正在使用pkexec调用脚本,而脚本本身使用了sudo。
非常感谢
答案 0 :(得分:1)
如果您以超级用户身份运行python脚本,则该脚本不应询问您密码:
$ sudo python -c "import os ; os.system('whoami')"
root
因此,像往常一样运行您的设备,但在sudo
之前使用python
。如果您需要运行多个python脚本并仅输入一次密码,请输入sudo su
。然后,您将是所有命令的root用户(不带sudo
),直到关闭终端会话为止。
提供密码的替代方法:
sudo -A
。sudo -S
。每个进程都有自己的用户,您必须创建多个进程才能拥有多个用户。