Заставить пользователей Linux сменить пароль при следующем входе
Кратко: Принудительная смена пароля в Linux помогает быстро обезопасить учётные записи после инцидента или при нарушении политики. Используйте команды passwd и chage для немедленного истечения срока пароля или установки регулярной смены.
Зачем принуждать к смене пароля
Принудительная смена пароля полезна, когда есть подозрение на компрометацию, при уходе сотрудника или при обновлении политики безопасности. Это снижает риск продолжительного использования скомпрометированного пароля и даёт администратору контроль над жизненным циклом учётных записей.
Важно: принудительная смена работает только для локально управляемых учётных записей (в /etc/shadow) и для пользователей, у которых установлен пароль. Для LDAP/AD-аккаунтов методика отличается.
Быстрая проверка состояния пароля
Покажем наиболее полезные команды и их назначение.
passwd -S username — краткий статус пароля.
passwd -e username — пометить пароль как просроченный (force change).
passwd -x N username — задать максимальный срок жизни пароля (в днях).
passwd -n N username — минимальное время между сменами пароля (в днях).
chage -l username — вывести сведения о «старении» пароля.
chage -d 0 username — установить дату последней смены в 0 (немедленное истечение).
chage -M N username — максимальная длительность пароля в днях.
chage -m N username — минимальная задержка между сменами в днях.
Использование команды passwd
Команда passwd меняет пароль и связанные параметры. Выполняйте от root или через sudo.
Показать статус учётной записи:
sudo passwd -S usernameПояснение полей вывода: первое поле — логин; второе — P (пароль есть и действителен), L (пароль заблокирован), NP (пароля нет). Далее — дата последней смены, минимальный и максимальный возраст пароля, предупреждение и период неактивности (в днях).
Принудительно пометить пароль как просроченный (потребовать смены при следующем входе):
sudo passwd -e usernameПри следующем входе система запросит текущий пароль, затем потребует установить новый.
Изменить максимальный возраст пароля (например, 30 дней):
sudo passwd -x 30 usernameЗадать минимальный интервал между сменами (например, 5 дней):
sudo passwd -n 5 username
Использование команды chage
chage управляет политикой старения паролей и даёт более детальную настройку.
Проверить текущую информацию о старении пароля:
sudo chage -l usernameВывод покажет дату последней смены и установленные лимиты. Пример: пароль был изменён 24 окт. 2022 и настроен как никогда не истекающий.

Сделать пароль немедленно просроченным:
sudo chage -d 0 usernameПосле этого при следующем входе пользователю будет предложено сменить пароль.

Задать максимальную длительность пароля (например, 60 дней):
sudo chage -M 60 usernameЗадать минимальное количество дней между сменами (например, 5 дней):
sudo chage -m 5 usernameМассовое применение: мини-методология
Если нужно принудительно обновить пароли многих локальных пользователей, следуйте простой методике:
- Сформировать список целевых пользователей (например, все реальные люди, исключая системные аккаунты). Пример: grep -E ‘:/home’ /etc/passwd | cut -d: -f1.
- Создать тестовый аккаунт и проверить процедуру на нём.
- Применить изменение в «сухом запуске» (dry run): перечислить команды без выполнения.
- Применить изменения пакетно и уведомить пользователей заранее по e-mail или через helpdesk.
- Проверить и зафиксировать результаты.
Пример простого скрипта для пакетной пометки паролей как просроченных:
#!/bin/bash
for user in $(awk -F: '$3>=1000 && $1!="nobody" {print $1}' /etc/passwd); do
echo "Помечаю $user как просроченного"
sudo chage -d 0 "$user"
doneПеред запуском такого скрипта убедитесь, что учётные записи управляются локально и что пользователи оповещены.
Ролевые чек-листы
Администратор:
- Проверить источник учётных записей (локально / LDAP / AD).
- Сделать резервную копию /etc/shadow и /etc/passwd при необходимости.
- Провести тест на одном аккаунте.
- Уведомить пользователей и поддержать службу помощи.
Служба поддержки / Helpdesk:
- Подготовить инструкции для пользователей о том, как сменить пароль.
- Быть готовыми сбросить пароль для заблокированных пользователей.
Пользователь:
- Использовать сложный пароль или менеджер паролей.
- Следовать инструкциям при первом входе после принудительной смены.
Когда это не сработает (подводные камни)
- Пользователь не имеет локального пароля (NP) — нет смысла применять passwd/chage.
- Аккаунты управляются внешним каталогом (LDAP/AD): изменения должны делаться в источнике истины.
- Аккаунты с заблокированным паролем (L) не требуются к смене, пока не будет разблокировки.
- PAM или политические модули могут препятствовать смене (например, политика сложности пароля).
- Сценарии автоматизированного входа или сервисные учётные записи — принудительная смена может нарушить службы.
Альтернативные подходы
- Настроить системную политику через PAM (pam_pwquality, pam_cracklib) для контроля сложности и истории паролей.
- Использовать централизованную систему управления учётными записями (LDAP/AD) и её политики истечения пароля.
- Применять двухфакторную аутентификацию (2FA) как дополнительный уровень защиты.
Критерии приёмки и тесты
- Тест 1: для тестового пользователя выполнена команда sudo chage -d 0 user; при следующем входе система требует смены пароля — PASS/FAIL.
- Тест 2: для пользователя с LDAP-аккаунтом изменение не применимо и администратор получил уведомление — PASS/FAIL.
- Тест 3: массовая операция не затронула системные учётные записи (uid < 1000) — PASS/FAIL.
Безопасность и жёсткая настройка
- Включите проверку сложности пароля (pam_pwquality) и хранение истории паролей, чтобы предотвратить возврат к старым значениям.
- Ограничьте количество неудачных попыток входа через pam_tally2 или faillock.
- Применяйте шифрование /etc/shadow (по умолчанию защищённо) и контролируйте доступ к файлам паролей.
- Рассмотрите использование менеджеров секретов и одноразовых паролей для сервисных сценариев.
Краткий словарь
- passwd — утилита для управления паролем пользователя.
- chage — утилита для настройки политики старения пароля.
- PAM — Pluggable Authentication Modules, модульная система аутентификации.
Пример уведомления пользователю (шаблон)
Письмо может быть кратким и понятным:
«Уважаемый пользователь, ваша учётная запись будет требовать смену пароля при следующем входе в систему. Пожалуйста, подготовьте новый безопасный пароль и следуйте подсказкам при входе. При возникших проблемах обратитесь в службу поддержки.»
Итог
Используйте passwd и chage для немедленного истечения пароля локальных пользователей и для настройки регулярной смены. Перед массовыми изменениями проверьте источник учётных записей, протестируйте процедуру и заранее уведомьте пользователей. Включите дополнительные меры — политики PAM и 2FA — чтобы повысить общую безопасность.
Важно: всегда тестируйте изменения в контролируемой среде и имейте план отката на случай сбоев.