Важно понимать: мы не проверяем сами пароли и не подбираем их. Мы только выявляем пользователей, у кого высокий риск слабого пароля, анализируя политики и метаданные.
▪️ Что можно проверить
Возраст пароля, если пароль не меняли 500+ дней - тревожный знак;
Минимальный и максимальный срок действия (политики
PASS_MAX_DAYS);Пользователи с never expires, часто признак устаревших или слабозащищенных аккаунтов;
Аккаунты с неограниченным логином (
chage -l).🛠 Скрипт
#!/usr/bin/env bash
echo "user,last_change,max_days,warning,expires"
for user in $(cut -d: -f1 /etc/shadow); do
info=$(chage -l "$user" 2>/dev/null)
last_change=$(echo "$info" | grep "Last password change" | cut -d: -f2 | xargs)
max_days=$(echo "$info" | grep "Maximum" | awk '{print $4}')
warning=$(echo "$info" | grep "Warning" | awk '{print $4}')
expires=$(echo "$info" | grep "Password expires" | cut -d: -f2 | xargs)
echo "$user,$last_change,$max_days,$warning,$expires"
done
▪️ Чтение результатов
max_days = 99999 - это значит, что политика отсутствует, пароль вечныйexpires = never означает, что аккаунт может быть заброшенным или небезопаснымlast_change слишком старый - стоит пройтись по пользователям и потребовать сменыBashTex 📱 #bash