Как изменить пароль пользователя в скрипте с помощью busybox и openssl?

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

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

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

2 ответов


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

#!/ bin / sh
программа passwd


ВФ


оказывается, текущие версии busybox имеют командой chpasswd (исходный код). chpasswd принимает имя пользователя пары с двоеточием: пароль на stdin. Я не знаю, Могу ли я обновить 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