如何使用Python的pexpect库执行root命令?

时间:2016-07-13 13:51:11

标签: python python-2.7 pexpect

我正在尝试在我的系统(Centos)上安装驱动器共享文件夹。

由于mount命令需要以root用户身份执行,因此我首先使用su命令以sudo用户身份登录。登录成功后,我想执行我的mount命令。

import pexpect

cmd1 = "su"
cmd2 = "mount -t cifs -o username=abc,password=def //101.101.101.214/Volume1 /home/Juna/Drive"
pwd = "my_password"
child = pexpect.spawn(cmd1)
child.expect('Password:')
child.sendline(pwd)
child.expect('#')
child.sendline(cmd2)

我没有从我的脚本中获得所需的结果。您能否在我的脚本中分享需要完成或修改的内容以获得所需的结果。

1 个答案:

答案 0 :(得分:0)

不是以交互方式发送命令,而是使用-c option to su为其指定要运行的命令:

child = pexpect.spawn(['su', 'root', '-c', cmd2])