Гид по технологиям

Как принудительно заставить пользователя сменить пароль в Linux

4 min read Linux Security Обновлено 28 Nov 2025
Принудительная смена пароля в Linux
Принудительная смена пароля в Linux

TL;DR

Принудительная смена пароля в Linux делается просто: используйте chage -d 0 или passwd -e username, чтобы пометить пароль как просроченный. Для массовых операций, автоматизации и обратного отката применяйте скрипты, Ansible или команды usermod/passwd для блокировки и разблокировки. Проверьте результат через chage -l и попытку входа по SSH.

Заставить пользователя сменить пароль в Linux

Безопасность — главная причина принудительной смены пароля: регулярные ротации уменьшают риск компрометации, а экстренные сбросы необходимы после подозрительных инцидентов. В этой статье описаны проверенные команды, сценарии использования, альтернативы и рекомендации по тестированию и откату.

Ключевые команды и понятия

Определение терминов в одну строку:

  • chage — утилита управления «возрастом» пароля в Linux (shadow).
  • passwd — стандартная утилита для установки и управления паролями пользователя.
  • usermod — управление учётной записью (блокировка/разблокировка и т. п.).

Быстрая команда для немедленной принудительной смены

Используйте chage, чтобы пометить пароль как изменённый 0 дней назад, что приведёт к его немедленной истечению:

sudo chage -d 0 username

Проверить состояние аккаунта можно так:

sudo chage -l username

Выведенная информация покажет дату последней смены, минимальный/максимальный срок жизни пароля, предупреждение и т. д.

Альтернатива через passwd

Стандартный способ — использовать passwd с ключом -e, чтобы пометить пароль как истёкший:

sudo passwd -e username

Чтобы задать максимум дней жизни пароля (например, 30 дней) или предупреждение за N дней:

sudo passwd -x 30 username
sudo passwd -w 5 username

Чтобы немедленно заблокировать учётную запись вы можете использовать:

sudo passwd -l username   # блокировка (добавляет '!' в /etc/shadow)
sudo passwd -u username   # разблокировка

Или эквивалентные команды через usermod:

sudo usermod -L username   # блокировка
sudo usermod -U username   # разблокировка

Расширенные параметры chage

Полезные флаги chage:

  • -l — список текущих параметров.
  • -d ДАТА — установить дату последней смены пароля (в формате YYYY-MM-DD или количество дней с 1970-01-01 в некоторых реализациях).
  • -M N — максимальное число дней жизни пароля.
  • -m N — минимальное число дней между сменами.
  • -W N — число дней предупреждения перед истечением.
  • -I N — неактивность после истечения (в днях).
  • -E YYYY-MM-DD — указать дату неактивности учётной записи.

Пример: задать политику 90 дней жизни, предупреждать за 7 дней:

sudo chage -M 90 -W 7 username

Когда использовать chage, а когда passwd

  • chage удобен для оперативного управления сроками и мгновенного принудительного истечения пароля; часто применяется в сценариях аварийного реагирования и массовых операциях.
  • passwd — привычный инструмент для администраторов и интерактивных задач; подходит для регулярной политики паролей.

Массовые операции и автоматизация

Чтобы пометить всех пользователей из списка как требующих смены пароля:

while read -r user; do
  sudo chage -d 0 "$user"
done < users.txt

Ansible-пример, если хочется автоматизировать на уровне конфигурации (использует команду chage через модуль command):

- hosts: all
  become: yes
  tasks:
    - name: Force password expire for a user
      command: chage -d 0 {{ username }}

Эту задачу можно расширить для нескольких пользователей или включить в роль безопасности.

Тестирование, приёмка и контроль успешности

Критерии приёмки:

  • После применения chage -d 0 или passwd -e при попытке входа система запрашивает смену пароля.
  • chage -l показывает ожидаемое состояние (последняя смена = «password must be changed»/дата).
  • SSH-вход завершает сеанс и просит обновить пароль (в тестовой среде подтвердите через ssh в отдельной сессии).

Тестовые шаги:

  1. Выполнить команду для тестового пользователя.
  2. Попытаться войти по SSH под этим пользователем (новая сессия).
  3. Убедиться, что отображается запрос на смену пароля и сетевые сервисы не ломаются.

Откат и разблокировка

Если нужно быстро отменить принудительную смену или разблокировать аккаунт:

# Разблокировать учётную запись
sudo passwd -u username
# Вернуть максимальную продолжительность жизни пароля (например, 90 дней)
sudo chage -M 90 username

Если вы заранее не сохранили старые параметры, восстановить их придётся вручную на основе политики организации.

Когда эти методы не работают или ограничены

  • Если в системе настроен внешний источник аутентификации (LDAP, AD, OAuth), chage/passwd могут не применяться — изменения нужно делать в соответствующем каталоге.
  • Если PAM и настройки sshd запрещают интерактивную смену пароля при входе (например, PasswordAuthentication отключён), пользователю может потребоваться другой путь (внутренний портал смены пароля или подключение консоли).

Важно: всегда проверяйте, где хранятся пароли и какие механизмы аутентификации используются в вашей инфраструктуре.

Роль-based checklist для администраторов

Для системного админа:

  • Проверить источник учётных записей (локально / LDAP / AD).
  • Выполнить chage -l перед изменением и сохранить параметры.
  • Применить chage -d 0 или passwd -e и проверить chage -l.
  • Провести тестовый вход.
  • Сообщить пользователю о необходимости смены пароля и дать инструкции по сложному паролю.

Для владельца системы безопасности:

  • Убедиться, что политика паролей документирована и согласована.
  • Проверить журналы аудита после применения изменений.

Практические рекомендации по безопасности

  • Сочетайте ротацию паролей с политиками качества пароля (pam_pwquality) и многофакторной аутентификацией (MFA), где это возможно.
  • Планируйте массовые принудительные смены в окно обслуживания, чтобы снизить рабочую нагрузку службы поддержки.
  • Локальные принудительные сбросы полезны, но для централизованных сред используйте управление через LDAP/AD и соответствующие политики.

Шпаргалка команд (cheat sheet)

# Немедленно пометить пароль как просроченный
sudo chage -d 0 username
# Проверить параметры
sudo chage -l username
# Немедленно истечь через passwd
sudo passwd -e username
# Установить максимальный срок жизни пароля
sudo passwd -x 30 username   # или: sudo chage -M 30 username
# Заблокировать/разблокировать учётную запись
sudo passwd -l username
sudo passwd -u username
# Альтернатива через usermod
sudo usermod -L username
sudo usermod -U username

1-строчный глоссарий

  • chage — управление сроками паролей; passwd — установка/истечение/блокировка паролей; usermod — управление свойствами учётной записи; PAM — Pluggable Authentication Modules.

Итог

Используйте chage -d 0 или passwd -e для немедленной принудительной смены пароля. Для регулярных политик задавайте сроки через passwd или chage. Автоматизируйте массовые действия скриптами или системами управления конфигурацией и всегда тестируйте и документируйте изменения.

Принудительная истёкшая пароль через chage

Установка срока действия пароля через passwd

Important: перед массовыми изменениями сделайте резервную копию текущих настроек и протестируйте процедуру на тестовых аккаунтах.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как улучшить графику в Elden Ring
Игры

Как улучшить графику в Elden Ring

Удаление пароля Windows 10 для локальной учётной записи
Windows

Удаление пароля Windows 10 для локальной учётной записи

HANDLE_ERROR_ON_CRITICAL_THREAD — как исправить BSOD
Windows

HANDLE_ERROR_ON_CRITICAL_THREAD — как исправить BSOD

Устранение утечки памяти LockAppHost.exe в Windows 10
Windows 10

Устранение утечки памяти LockAppHost.exe в Windows 10

Ошибка AppHangB1: способы исправления
Windows

Ошибка AppHangB1: способы исправления

Жесты головы на AirPods в iOS 18
Гаджеты

Жесты головы на AirPods в iOS 18