我想通过Python在终端中使用su
命令切换用户:
import os
os.system("su user")
执行此代码后,系统会要求输入密码(显然)。
另外,当然我不能添加这样的另一行:
import os
os.system("su user")
os.system("password")
如果有可能,我更喜欢使用Python 2.7的答案。
答案 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
#!/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()