Команда chage в Linux: управление сроком действия паролей

Обзор

Безопасность любой Linux-системы начинается с контроля учетных записей. Утилита chage (сокращение от change age) позволяет гибко регламентировать жизненный цикл учетных записей: задавать периодичность обновления паролей, выставлять предупреждения и автоматически блокировать неактивных пользователей. В этом практическом руководстве мы разберем реальные сценарии работы с утилитой — от базового аудита текущих ограничений до принудительной смены учетных данных при первичном входе.

1. Создание тестового профиля и аудит текущих параметров (chage -l)

Чтобы экспериментировать без риска повредить рабочие профили системы, подготовим изолированную учетную запись testuser с домашней директорией:

Проверка существования и создание тестового пользователя testuser

Зададим созданному профилю стартовый пароль через утилиту пакетного обновления chpasswd:

Назначение первичного пароля учетной записи с помощью chpasswd

Команда chage отвечает за манипуляцию параметрами устаревания паролей (password aging) и блокировки учетных записей. Ключ -l выводит полный отчет по текущим лимитам пользователя testuser.
⚙️ [Основные параметры утилиты]

-l : вывод подробной информации о сроках действия пароля и статусе аккаунта.
-m : минимальное количество дней между последовательными сменами пароля.
-M : предельный срок действия пароля в днях.
-W : число дней до окончания действия пароля, когда система начинает выводить предупреждения.
-I : льготный период (в днях) после истечения пароля до полной деактивации профиля.
-E : точная дата истечения срока жизни самой учетной записи (в формате YYYY-MM-DD).
-d : дата последнего изменения пароля (или смещение в днях с 1 января 1970 года).

Просмотр текущих настроек устаревания пароля с помощью chage -l

2. Конфигурирование интервалов смены пароля и предупреждений (-m, -M, -W)

Для соответствия корпоративным политикам безопасности настроим для testuser жесткие рамки: запрет повторной смены ранее чем через 7 дней (-m 7), обязательную ротацию каждые 90 дней (-M 90) и заблаговременное уведомление пользователя за 14 дней до истечения срока (-W 14). Подобный подход не позволяет пользователям сразу же возвращать старый пароль и обеспечивает плановое обновление секретов:

Настройка параметров минимального, максимального срока и предупреждения

Убедимся, что новые параметры применились корректно, повторно запросив профиль командой с ключом -l:
В выводе консоли отчетливо видно, что минимальный интервал смены (7), максимальный период валидности (90) и период заблаговременных оповещений (14) успешно зафиксированы операционной системой вместе с пересчитанной датой плановой экспирации.

Проверка обновленных политик срока действия пароля через chage -l

3. Ограничение срока жизни аккаунта и грейс-период блокировки (-E, -I)

При создании временных или подрядных доступов критично автоматически отзывать права. Установим дату окончательного закрытия доступа для testuser на 31 декабря 2026 года (-E 2026-12-31), а также выделим льготный период в 7 дней (-I 7), по истечении которого заблокируется доступ, если пароль так и не был обновлен вовремя:

Установка даты экспирации учетной записи и льготного периода деактивации

Выполним валидацию конфигурации через флаг -l:
Строки отчета Account expires : Dec 31, 2026 и Password inactive : Jan 21, 2027 подтверждают, что системные таймеры выставлены в строгом соответствии с нашими требованиями.

Проверка даты блокировки аккаунта и неактивного статуса пароля

4. Принудительная смена пароля при первом входе и очистка окружения (-d 0)

Если администратор выдает временный доступ, крайне небезопасно оставлять первичный пароль постоянным. Сбросим метку последней смены пароля в нулевое значение (-d 0) — в результате операционная система потребует немедленно задать новый секрет в момент следующей авторизации:

Сброс даты изменения пароля для требования его обновления при входе

Проконтролируем эффект с помощью опции -l:
Поля Last password change и Password expires теперь содержат системный маркер password must be changed, что однозначно гарантирует принудительную ротацию учетных данных при подключении пользователя.

Контроль статуса обязательной смены пароля в выводе chage -l

Завершив практические тесты, удалим подопытную учетную запись вместе с пользовательскими файлами и домашним каталогом с помощью флага -r:

Удаление тестового профиля и домашнего каталога командой userdel -r

Мы подробно рассмотрели ключевые сценарии администрирования парольных политик в Linux при помощи chage. Грамотная настройка параметров устаревания и автоматическая блокировка неактуальных учетных записей — надежный фундамент серверной безопасности и соответствия стандартам защиты данных.