2012-06-20 52 views

回答

1

解決方案1:

什麼我寫在這裏是從安全角度來看,不好的黑客。 它提供在命令行上的密碼,因此它不應該被用於任何其中除了玩具工作:

with hide('running', 'stdout', 'stderr'): 
    run('echo -e "%s\n%s\n" | sudo passwd %s' % (passwd, passwd, user)) 

PS:該解決方案使用較舊的格式化技術。這不應該減損你使用新的。

解決方案2:

預計的passwd從標準輸入,你可以改用Pexpect的/期望專門做這項工作,並比上述更好的方法,但不是沒有它的缺陷。

樣品Pexpect的程序:

child = pexpect.spawn('some command that expects password') 
child.expect('Enter password:') 
child.sendline('somepassword') 
child.expect('Enter password:') --- passwd may ask twice 
child.sendline('somepassword') 
child.expect(pexpect.EOF, timeout=None) 
...