Доброго времени суток.
1. Предыстория вопроса. Мне уже месяц сношают мозг вопросом блокировки пользователей. Давно реализованы и работают рекомендации из CIS_Redhat_Linux_5_Benchmark_v2.0.0.pdf, в частности
- /etc/login.defs
PASS_MAX_DAYS 80
- регулярно выполняется
#!/bin/bash for user in $(awk -F: '{ if ( $1 >= 500 ) { print $1; } ; }' /etc/passwd) ; do chage -M 80 -I 7 $user done useradd -D -f 7
При этом через 80 дней от любого пользователя требуют смены пароля, а если в течение 7 дней пароль не будет изменён - пользователь не сможет войти в систему.
Аудит это по какой-то причине не устраивает.
Я предполагаю, что непосредстенно блокировки аккаунта после 87 дней не происходит, просто при каждом логине проверяется срок действия пароля и пользователя не пускают в систему.
Написал скрипт, который явно блокирует ( usermod -L $user ) пользователя, если он не логинился больше 87 дней И если пароль не менял больше 87 дней ( чтобы пользователь не блокировался автоматом сразу после создания или разблокировки ), запуск по cron'у ежедневно.
Но теперь менеджер проекта встал в позу и спрашивает, почему нельзя сделать штатными средствами ОСи. Как будто на винде штатными средствами сделали, ага...
Так вот, есть теоретический вопрос:
2) Что такое «блокировка пользователя» в linux? Я всегда считал, что блокировка - это usermod -L $user и, как результат, "!" перед паролем в /etc/shadow
Можно ли считать, что при текущих настройках ( chage -I 7 -M 80 $user ) невозможность зайти через 87 дней после смены пароля - именно блокировка?
Какие модули PAM отвечают
а) за блокировку ( usermod -L $user )?
б) за невозможность логина после истечения времени жизнипароля + inactivity ( chage -M 80 -I 7 $user )?