ответ на двойной пароль запрашивает с Матрицей

Я использую эту функцию Матрицы, чтобы попытаться добавить пользователя к серверу Ubuntu. Это не бросает ошибку, но я не могу войти в систему с пользователем, которого я пытаюсь добавить после того, как сценарий закончился. Если я добавляю пользователя вручную, после того, как я буду работать adduser myusername команда, мне предлагают дважды ввести пароль. В этом сценарии с повторной подсказкой (поскольку я называю его) имеют дело с (неэффективно, я верю) путем передачи пароля дважды этой команде эха

 if not sudo("adduser %s | echo -e '%s\n%s\n'" % (new_user,passwd,passwd)).failed:

Можно ли объяснить, как с этим более соответственно имели бы дело в этой функции?

def user_add(new_user, passwd=False):
    """Add new user"""
    with settings(hide('running', 'stdout', 'stderr'), warn_only=True):
        # if is_host_up(env.host):
        if not passwd:
                passwd = generate_passwd()
            if not sudo("adduser %s | echo -e '%s\n%s\n'" % (new_user,passwd,passwd)).failed:
                run('echo "{user} ALL=(ALL:ALL) ALL" >> /etc/sudoers'.format(user=new_user))
                ...other code not included
0
задан 27 July 2014 в 03:28
1 ответ

adduser - это всего лишь фронт-енд Debian/Ubuntu к более обычной команде useradd, которая принимает различные опции в командной строке, в том числе предварительно хэшированный пароль в качестве опции -p. Для этого, вероятно, необходимо вызвать useradd с нужными опциями вместо adduser.

В большинстве других дистрибутивов Linux, adduser просто ссылается на useradd, или отсутствует полностью.

.
1
ответ дан 4 December 2019 в 17:22

Теги

Похожие вопросы