Назад | Перейти на главную страницу

Проверить пароли пользователей linux

У меня есть Linux-сервер, у которого несколько десятков пользователей. У меня также есть пароль в открытом виде для каждого пользователя (я знаю - плохая безопасность).

Я хотел бы знать, верны ли пароли. Поскольку все пользователи являются пользователями ftp и имеют оболочку nologin, я не могу просто написать сценарий, чтобы проверить, работает ли вход в систему.

Как я могу проверить пароли на месте? Вывод скрипта может выглядеть так:

$ check_userpw < user_pw_list.txt
user1 ok
user2 ok
user3 mismatch!
user4 ok

Спасибо

Вы можете написать сценарий для автоматизации входа в систему FTP на каждом из них, используя Perl's Net :: FTP или GNU Expect, или что угодно, но, вероятно, самым простым способом было бы совмещать check_ftp программа в Nagios-Plugins. В случае сбоя входа в систему он вернет ненулевое значение.

Если ваши пользователи аутентифицированы по локальным паролям, хранящимся в / etc / shadow, вы можете сгенерировать хэши и сравнить их самостоятельно.

Для хешей MD5 это поле выглядит так:

$ 1 $ 5q9TrKNO $ YeVQrfsitsGlapGwhAjIl.

(Конечная точка включена. Это хэш для строки "abc".)

$ - это разделители. 1 в первом поле идентифицирует хеш как MD5, а 5q9TrKNO - это соль, случайно сгенерированная при установке пароля, чтобы затруднить словарные атаки.

Ты можешь использовать этот модуль Perl чтобы проверить хэш вашего сохраненного пароля: используйте соль из / etc / shadow и пароль, который у вас есть, затем убедитесь, что результат соответствует последнему разделу.