Я хотел бы обновить мой пароль на удаленной коробке Ubuntu 10.4
с помощью ткани .
Я ожидаю, что мой fabfile.py
будет выглядеть примерно так:
def update_password(old_pw, new_pw):
# Connects over ssh with a public key authentication
run("some_passwd_cmd --old %s --new %s" % (old_pw, new_pd))
К сожалению, единственная известная мне команда, позволяющая изменить пароль, - это passwd
, а в Ubuntu 10.4, похоже, нет способа передать новый (или старый) пароль в качестве аргумента passwd
.
Какую команду можно использовать для изменения пароля пользователя в Ubuntu 10.4 с помощью fabric
?
EDIT :
Я посмотрел на usermod -p
, и это может сработать, но это не рекомендуется man-страницей.
РЕДАКТИРОВАТЬ : По какой-то причине usermod -p
не работал ни на ткани.
Также я попробовал (несколько небезопасный) вариант ответа mikej, который решил проблему:
# connecting & running as root.
from fabric.api import *
from fabric.contrib import files
files.append("%s\n%s" % (passwd, passwd), '.pw.tmp')
# .pw.tmp:
# PASSWD
# PASSWD
run("passwd %s < .pw.tmp" % user)
run("rm .pw.tmp")
Это не очень элегантное решение, но оно работает.
Спасибо, что прочитали.
Brian