Когда нужно быстро провести аудит, кто действительно может зайти на сервер по SSH, поможет вот такой однострочник:
getent passwd | awk -F: '$3 >= 1000 && $7 ~ /bash/ {print $1}' | while read user; do
if [ -f /home/$user/.ssh/authorized_keys ]; then
echo "$user — доступ по ключу"
elif grep -q "^$user:" /etc/shadow && [ "$(awk -F: -v u="$user" '$1 == u {print $2}' /etc/shadow)" != "*" ]; then
echo "$user — может входить с паролем"
fi
done
💡 Что делает скрипт?
- Ищет всех "нормальных" пользователей (UID ≥ 1000 и оболочка bash)
- Проверяет, есть ли у них
authorized_keys — значит, ключи - Если нет — сверяет в
/etc/shadow, заблокирован ли пароль📌 На заметку:
- Подходит для систем с классической схемой пользователей (не LDAP и не sssd)
- UID порог можно подправить под свою среду
- Можно дополнить логированием, например в syslog или файл
А ты проверяешь регулярно, кто может входить на твои сервера? Пиши в комментариях — автоматизировал ли ты аудит SSH-доступа у себя? 👇
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin