Как правильно получить информацию о блокировке текущего сеанса пользователя с помощью PAMLinux

Anonymous
Как правильно получить информацию о блокировке текущего сеанса пользователя с помощью PAM

Сообщение Anonymous »

У меня есть приложение C, которое использует pam для повторной аутентификации пользователя в системе с настроенной защитой от сбоев. Представьте себе что-то, что внешне будет похоже на вход в систему.
Однако оно выполняет только базовую аутентификацию и имеет ограничения потоков, например маршрутизацию аутентификации, выполняемую в отдельном потоке. Он ужасно написан, поэтому средства межпоточного взаимодействия выглядят подозрительно, и мне бы не хотелось его трогать.
Итак, я нахожусь в потоке, где выполняю базовую аутентификацию, я вызываю pam_start(), их pam_authenticate() и проверяю его статус возврата.
Тем не менее, pam_authenticate(), очевидно, только вернет PAM_MAXTRIES в тот момент, когда моя попытка блокирует пользователя, а не в любой другой момент. Если пользователь будет заблокирован где-то еще, я даже не узнаю об этом.
Насколько я понял, модуль pam_faillock добавит записи в файл /run/faillock, но формат файла, похоже, не будет стабильным, и, похоже, у него нет никакого API для обработки этих файлов.
Тем не менее, как лучше всего получить статус блокировки и время, оставшееся для разблокировки аккаунт?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -using-pam

Вернуться в «Linux»