Как я могу установить пароль пользователя в Linux из скрипта python?

Я пытаюсь автоматизировать настройку доступа по SFTP. Этот сценарий выполняется от имени пользователя с разрешениями sudo и без пароля.

Я могу создать пользователя следующим образом:

>>> import subprocess
>>> process = subprocess.Popen(['sudo', 'useradd', 'test'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> process.communicate()
('', '')

Затем мне нужно установить пароль пользователя, но я не могу понять, как это сделать. Вот что я пробовал.

>>> process = subprocess.Popen(['sudo', 'chpasswd'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> process.communicate('test:password')

В моей программе на python это не действует, в интерактивном интерпретаторе он блокируется после первой строки.

Как лучше всего это сделать?

Я запускаю python 2.6 в Ubuntu lucid.

6
задан Jake 14 January 2011 в 06:12
поделиться