通过Python输入终端输入

时间:2016-06-27 07:49:32

标签: python linux python-2.7 terminal operating-system

我想通过Python在终端中使用su命令切换用户:

import os
os.system("su user")

执行此代码后,系统会要求输入密码(显然)。

另外,当然我不能添加这样的另一行:

import os
os.system("su user")
os.system("password")

如果有可能,我更喜欢使用Python 2.7的答案。

1 个答案:

答案 0 :(得分:0)

也许你需要pexpect。我的实验如下:

sec@sec-router:/tmp$ uname -a
Linux sec-router 3.19.0-59-generic #66~14.04.1-Ubuntu SMP Fri May 13 17:27:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

enter image description here

代码

#!/usr/bin/python
# -*- coding: utf-8 -*-

import pexpect
passwd = raw_input('Password: ').strip()
child = pexpect.spawn('su root')
index = child.expect('Password:')
if index == 0:
    child.sendline(passwd)
    child.expect('$')
    child.interact()