Как предоставить пользователю настраиваемый код ошибки/причину блокировки с помощью настраиваемого модуля pam ssh?

Я написал модуль pam_module, который делает несколько вещей, и стал огромным, чтобы публиковать здесь какой-либо код. В основном он работает аналогично pam_abl, но с несколькими дополнительными функциями, такими как блокировка по городу/стране, а также проверка по черному списку DNS.

Теперь я хочу указать пользователю причину, по которой его вход в систему не удался. Что-то вроде: не удалось войти, потому что ваша страна заблокирована.

Надеюсь, вы уловили идею. Хотя я провел некоторое исследование, я еще не нашел возможности сделать это в pam_auth. Я надеюсь, что кто-то может дать мне подсказку и / или вести меня в правильном направлении. Заранее спасибо.

Изменить: для всех, у кого есть похожая проблема: pam_info — это то, что вы ищете.


person Wirsiing    schedule 25.12.2015    source источник
comment
Страницы программирования на этом сайте часто помогают решить конкретную проблему, но редко предлагают решение. Как правило, вы должны показать, что вы пробовали. Не публикуйте все это, просто компилируемый фрагмент. Затем опишите, что не сработало с этим методом. Вы получите лучший ответ.   -  person ryyker    schedule 25.12.2015
comment
источник pam_motd или других должен дать вам некоторое представление о том, как отпишитесь пользователю.   -  person Jakuje    schedule 25.12.2015
comment
pam_motd был хорошей подсказкой! pam_info 3 должен быть полезен - если он работает в auth. Проверим это и примем ваш ответ, если вы хотите опубликовать его. И это делает   -  person Wirsiing    schedule 25.12.2015
comment
@ryyker Спасибо за совет. Дело в том, что должна быть (и есть) функция pam для связи с пользователем. Я просто не мог найти его. Вот почему я спросил здесь, и у Джакудже действительно был идеальный ответ, который привел меня в правильном направлении, и теперь он работает.   -  person Wirsiing    schedule 25.12.2015
comment
Я рад, что @Jakuje смог помочь! Я заметил, что вы отредактировали свой пост с решением. Другой вариант — вставить эту строку в свой собственный ответ ниже, а затем отметить ее как принятую (полая галочка слева от вашего ответа). Таким образом, пост считается завершенным для других пользователей этого сайта.   -  person ryyker    schedule 26.12.2015


Ответы (1)


Исходный код pam_motd(8) должен дать вам некоторое представление о том, как ответить пользователю.

На самом деле есть функция pam_info(3), которая делает именно то, что вы хотите.

person Jakuje    schedule 26.12.2015