Команда chpasswd позволяет задействовать одноименную утилиту, предназначенную для смены паролей одного или нескольких пользователей системы. По сути она выполняет ту же функцию, что и команда passwd, но позволяет изменить пароли сразу нескольких пользователей. Разумеется, для использования данной команды необходимы права суперпользователя.
Базовый синтаксис команды выглядит следующим образом:
# chpasswd [параметры] пароли
Утилита принимает пары имя-пользователя:пароль в интерактивном режиме. Для окончания ввода этих пар следует воспользоваться сочетанием клавиш Ctrl+D. Что касается поддерживаемых параметров, то обычному пользователю могут понадобиться такие из них, как параметр -c, позволяющий указать алгоритм шифрования пароля (поддерживаются алгоритмы DES, MD5, SHA256, SHA512 и отказ от шифрования — NONE) и параметр -e, позволяющий указать на то, что пароли уже зашифрованы и должны быть записаны в файл конфигурации без изменений.
Для начала создадим учетную запись пользователя с помощью команды adduser:
# adduser guest
Добавляется пользователь «guest» ...
Добавляется новая группа «guest» (1001) ...
Добавляется новый пользователь «guest» (1001) в группу «guest» ...
Создаётся домашний каталог «/home/guest» ...
Копирование файлов из «/etc/skel» ...
Новый пароль:
Повторите ввод нового пароля:
passwd: пароль успешно обновлён
Изменение информации о пользователе guest
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
Полное имя []: Guest
Номер комнаты []: 1
Рабочий телефон []: 555
Домашний телефон []: 555
Другое []:
Данная информация корректна? [Y/n] y
Учетная запись пользователя успешно создана; пароль пользователя был зашифрован и добавлен в файл конфигурации /etc/shadow:
cat /etc/shadow | grep guest guest:$y$j9T$DjXGf6ge65ePRs2NbIm9i1$8rWie3ewmfYNSbHIEOIVJv87JgnvjZI9r73HJd3pLbB:19228:0:99999:7:::
Теперь можно попробовать сменить пароль с помощью рассматриваемой утилиты. Для этого достаточно использовать ее без каких-либо параметров и ввести в интерактивном режиме имя пользователя и пароль, разделив их двоеточием. Для окончания ввода и выхода из интерактивного режима следует Использовать сочетание клавиш Ctrl+D.
# chpasswd
guest:linuxfaqisperfect
Снова проверим содержимое файла конфигурации.
# cat /etc/shadow | grep guest guest:$y$j9T$36eh15AbQRPefTvNhOAC70$fLZwJCFwDBv0nxOcmpFe8g5Kf3zVUU2eE6J3hJ4Pkc.:19228:0:99999:7:::
Зашифрованный пароль изменился. Для дополнительно проверки можно воспользоваться утилитой su, позволяющей работать от лица другого пользователя.
$ su guest
Пароль:
guest@celestine:/home/alex$ whoami
guest
Пароль подходит — утилита работает корректно. Для смены паролей нескольких пользователей нужно передать утилите несколько пар имен пользователей и паролей.
Для удаления созданной учетной записи пользователя следует использовать утилиту deluser:
# deluser guest
Удаляется пользователь «guest» ...
Предупреждение: в группе `guest' больше никого нет.
Готово.
Теперь система находится в первозданном виде. Разумеется, с помощью рассматриваемой утилиты вы можете сменить пароль и для своей учетной записи.