2012-06-20 3 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) 
... 
Смежные вопросы