2010-01-13 2 views
6

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

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

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

ответ

6

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

#!/Бен/ш
PASSWD < < EOF
< старый пароль >
< новый пароль >
< новый пароль >
EOF

5

Оказывается, современные версии BusyBox имеют chpasswd (source code). 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 
Смежные вопросы