Введение и назначение утилиты
В практике системного администрирования Linux регулярная смена учетных данных для десятков или сотен пользователей вручную через passwd отнимает слишком много времени. Утилита chpasswd решает эту задачу, позволяя обновлять секретные фразы в пакетном режиме через стандартный ввод (stdin) либо напрямую из заранее подготовленных списков. Такой подход исключает необходимость интерактивного подтверждения и идеально подходит для сценариев автоматизации и bash-скриптов. В данном руководстве на примере Ubuntu мы разберем весь цикл работы с инструментом: от базового конвейера для одной учетной записи до тонкой настройки криптографических хэшей и массового импорта.
Принцип работы chpasswd и обновление учетных данных одного пользователя
Для демонстрации возможностей команды подготовим изолированный тестовый профиль с помощью директивы sudo useradd -m -s /bin/bash testuser1.

В основе логики chpasswd лежит считывание строк строго определенного формата — имя_пользователя:пароль. Передавая связку учетных данных через конвейер (|), администратор может мгновенно перезаписать пароль в системе без диалоговых окон.
⚙️ [Ключевые флаги утилиты]
-c : явно указывает используемый метод хеширования паролей (DES, MD5, SHA256, SHA512 и др.).-e : информирует систему о том, что переданный пароль уже представляет собой готовый зашифрованный хэш.-m : принудительно включает алгоритм MD5 (устаревший вариант, используется при совместимости).-s : задает число раундов (итераций) при вычислении хэшей семейства SHA.-R : определяет путь к альтернативному корневому каталогу chroot для выполнения операции.

Убедимся в успешном применении изменений, обратившись к файлу /etc/shadow.
Запрос подтверждает: парольная фраза для testuser1 была корректно обработана системным генератором хэшей и записана в защищенное хранилище.

Пакетное обновление паролей списком из файла
Перейдем к групповой обработке. Сначала сгенерируем еще пару тестовых профилей в системе, исполнив команду sudo useradd -m -s /bin/bash testuser2 && sudo useradd -m -s /bin/bash testuser3.

Сформируем текстовый файл user_passwords.txt, куда внесем пары логинов и новых паролей, разделенные двоеточием, по одной связке на строку.

Теперь передадим этот файл на обработку chpasswd, применив стандартное перенаправление потока ввода (<).
Утилита последовательно считает все записи и применит изменения сразу ко всем перечисленным пользователям за один шаг без единого запроса к терминалу.

Для контроля результата отфильтруем записи в /etc/shadow по целевым именам с помощью регулярного выражения в sudo grep -E '^(testuser2|testuser3):' /etc/shadow | cut -d: -f1.
Обе учетные записи успешно обновлены, что доказывает надежность пакетного развертывания.

Выбор алгоритма хеширования (-c) и параметры криптозащиты
По умолчанию система опирается на стандартные параметры PAM, однако опция -c SHA512 позволяет жестко зафиксировать алгоритм SHA512 при установке нового пароля для testuser1.
Такой подход гарантирует соблюдение строгих корпоративных стандартов криптографической стойкости.

Проверим структуру сохраненной записи в конфигурации /etc/shadow.
Спецификатор $6$ в начале строки хэша наглядно подтверждает применение функции SHA512.

Очистка тестового окружения и удаление учетных записей
Завершив практическую часть, удалим созданные временные профили вместе с их домашними каталогами, выполнив sudo userdel -r testuser1 && sudo userdel -r testuser2 && sudo userdel -r testuser3.

В целях безопасности удаляем временный файл со списком паролей командой rm -f user_passwords.txt, исключая утечку незашифрованных данных.

Мы подробно рассмотрели эксплуатацию chpasswd для неинтерактивного и пакетного управления парольной защитой в среде Linux. Этот инструмент является незаменимым элементом серверной автоматизации, первичной инициализации окружений и массового администрирования пользовательских баз.