The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"linux PAM: Как узнать успешно ли открылась сессия (pam_open_..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"linux PAM: Как узнать успешно ли открылась сессия (pam_open_..."
Сообщение от Nikolay emailИскать по авторуВ закладки on 31-Авг-03, 13:28  (MSK)
Вниманию всем, кто разрабатывал модули pam для linux
Пожалуйста, помогите разобраться со следующей проблемой.
В моем модуле PAM определяются две функции: pam_open_session и pam_close_session. Этот модуль навешивается на программу login.
Моя функция pam_open_session может завершиться успешно или возвратить
PAM_SESSION_ERR.
В любом случае моя pam_close_session вызывается.
Однако, проверить, с успешно ли была открыта сессия - не удается.
Я пробовал устанавливать различные данные в зависимости от результата внутри pam_open_session, с помощью pam_set_data, с помощью переменных среды pam - ничего не получается. Внутри этой функции данные успешно читаются - те что и были установлены, однако при входе в pam_close_session - при вызове pam_get_data - указатель на данные не возвращается. Я пробовал устанавливать переменные среды pam - аналогичная проблема - Установленную мной переменную нельзя прочесть внутри pam_close_session.
Вопрос такой: как при определении функции pam_close_session узнать, успешно ли была открыта сессия, т.е. успешно ли завершилась pam_open_session ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "linux PAM: Как узнать успешно ли открылась сессия (pam_open_..."
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 03-Сен-03, 15:36  (MSK)
pam_open_session возвратит PAM_SUCCESS, если сессия открылась успешно.
А вообще обычно в pam_unix.so и других модулях эта функция имеет вид:

extern pam_sm_open_session(pam_handle_t *pamh, int argc, char *argv[])
{
  return PAM_SUCCESS;
}

так что на самом деле ничего толком там и не открывается :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "linux PAM: Как узнать успешно ли открылась сессия (pam_open_..."
Сообщение от Nikolay emailИскать по авторуВ закладки on 03-Сен-03, 19:17  (MSK)
>pam_open_session возвратит PAM_SUCCESS, если сессия открылась успешно.
>А вообще обычно в pam_unix.so и других модулях эта функция имеет вид:
>
>
>extern pam_sm_open_session(pam_handle_t *pamh, int argc, char *argv[])
>{
>  return PAM_SUCCESS;
>}
>
>так что на самом деле ничего толком там и не открывается :)
>
Я делаю модуль PAM. Когда пользователь логинится, вызываются все стандартные модули, а также мой, в котором определена функция pam_open_session. Вот она-то и может завершиться неуспешно. Если успешно -login'ом запускается оболочка. Когда пользователь выходит из оболочки, открытой login'ом - вызывается функция pam_close_session, также определенная в моем модуле. Однако если моя pam_open_session возвратила PAM_SESSION_ERR, оболочка не открывается, но функция pam_close_session вызывается, а когда отработает - сразу заново выскакивает приглашение на вход: login:. Вот внутри этой функции pam_close_session мне и нужно узнать, чего случилось до того, раньше, т.е. как завершилась pam_open_session.


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру