Как изменить пароль пользователя в сценарии с busybox и openssl? - PullRequest
6 голосов
/ 13 января 2010

Мне нужно синхронизировать учетную запись пользователя и пароль с внешним источником в системе с установленными busybox и openssl . Когда внешний источник сообщает моей системе обновить учетные данные, как мне изменить пароль пользователя в сценарии? У меня будет пароль в виде простого текста.

Это должно быть автоматизировано, и из того, что я могу сказать, busybox passwd является интерактивным, и я не особенно хочу писать сценарий ожидаемого типа для passwd, если это вообще возможно. Похоже, что openssl может генерировать хэши паролей ( openssl passwd -1 -salt "abcdefgh" {пароль} ), но мне придется напрямую изменять / etc / shadow?

Busybox имеет эти команды доступны.

Ответы [ 2 ]

6 голосов
/ 13 января 2010

Оказывается, текущие версии busybox имеют chpasswd ( исходный код ).chpasswd принимает разделенную двоеточиями пару имя пользователя: пароль на стандартный ввод.Я не знаю, могу ли я обновить busybox в моей системе, но я оставлю этот ответ на случай, если кто-то еще заглянет.

Из документации busybox:

chpasswd
chpasswd [--md5|--encrypted]

Read user:password from stdin and update /etc/passwd

Options:

        -e,--encrypted  Supplied passwords are in encrypted form
        -m,--md5        Use MD5 encryption instead of DES
6 голосов
/ 13 января 2010

Вы можете написать такой небольшой скрипт, чтобы обновить пароль. Поместите следующий текст в файл и выполните его. Это изменит ваш пароль.

#! / Bin / ш
passwd
<старый пароль>
<новый пароль>
<новый пароль>
EOF

...