Как правильно получить информацию о блокировке текущего сеанса пользователя с помощью 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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