The OpenNET Project / Index page

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

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

"PAM: авторизация пользователей из таблицы в базе Firebird"  
Сообщение от djandrey (ok) on 21-Окт-07, 16:10 
Итак, дело было в Linux.

Задача: наряду с passwd/shadow создать возможность авторизации пользователей из базы данных Firebird в операционной системе, а в перспективе — в почте, в самбе, на прокси и так далее.

Начав копать информацию по теме, я наткнулся на PAM. Оказалось, нужно написать PAM-модуль. Собственно, все там понятно и красиво, кроме одного.

В ответ на попытку авторизации модуль должен выяснить:
существует ли такой пользователь,
правильно ли указан пароль,
не истек ли срок аккаунта
и так далее.

Казалось бы, всего делов — взять за основу исходник pam_permit (этот модуль пускает всех без разбора) или пример модуля из какой-нибуь статьи (примеров по пальцам сосчитать, но их все же предостаточно), воткнуть его в систему и дорабатывать, тестировать.

Исходя из спецификации PAM-модулей для того, чтобы функция ответила вопрошающему приложению "да", достаточно в ее реализации вернуть PAM_SUCCESS и все.

То есть буквально пишу везде:
{
return PAM_SUCCESS;
}

в /etc/pam.d/ в login или даже system-auth для модуля пишу sufficient в auth и password
(кроме sufficient перепробовано и required и т. д.)

Проблема: не пускает.

Оставлял в конфиге уже одного его. Не пускает.

Чтобы избежать лишних предположений, скажу, что модуль успешно собирается, копируется в папку к другим модулям и ему даются теже права доступа, что и другим. Отладочные сообщения доказывают, что функции, которые должны выполняться из моего модуля таки выполняются точно.

Чего я хочу.

Пример конфигурации PAM, при котором работает хотя бы тот же pam_permit. То есть тупо пускает с любым логином/паролем. Далее разборки с доступом к базе, домашним каталогом, группой, правами, uid-ом и прочим хозяйством более-менее ясны. Уперся я именно в PAM. Чувствуется, что истина где-то рядом, но чего-то не хватает.

или

Задача сама по себе просто обязана возникать из-за растущего применения БД везде, где только можно. И дело тут даже не конкретно в Firebird-е. Наверное кто-то уже натыкался на эти грабли и может поделиться ссылками, кусками кода или конфигов. (ни одна из найденных мной статей (не меньше, чем штук пять, на этом сайте в том числе) решения на проблему не подкинула).

Что я упустил?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PAM: авторизация пользователей из таблицы в базе Firebird"  
Сообщение от pavel_simple (ok) on 21-Окт-07, 18:10 
я думаю что не стоит изобретать велик
http://www.kernel.org/pub/linux/libs/pam/modules.html
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "PAM: авторизация пользователей из таблицы в базе Firebird"  
Сообщение от djandrey (ok) on 20-Янв-08, 03:40 
> я думаю что не стоит изобретать велик
> http://www.kernel.org/pub/linux/libs/pam/modules.html

Спасибо за ссылку. Там много классных великов!
Видимо, в этот раз я насиловал гугл в режиме пониженного зверства и не нашёл.

Кстати, если интересно, временно решено по-другому:
все юзеры из базы + потом при манипуляциях зеркалятся в LDAP.
Для упрощённого доступа к LDAP заюзан самокат
под названием smbldap-tools (http://www.iallanis.info/).

В результате вышло хоть и тормозное (кроме первого зеркалирования не критично)
решение, но успешное (хоть и временное). Всё, о чём писал выше, работает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "PAM: авторизация пользователей из таблицы в базе Firebird"  
Сообщение от андрей (??) on 20-Янв-08, 19:15 
>я думаю что не стоит изобретать велик
>http://www.kernel.org/pub/linux/libs/pam/modules.html

сейчас глянул, писец, неужели ни кто не додумался написать pam-odbc?!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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