Команда chpasswd

Команда 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' больше никого нет.
Готово.

Теперь система находится в первозданном виде. Разумеется, с помощью рассматриваемой утилиты вы можете сменить пароль и для своей учетной записи.