|
|
|
PAM: авторизация пользователей из таблицы в базе Firebird
|
|||
|---|---|---|---|
|
#18+
Итак, дело было в 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-е. Наверное кто-то уже натыкался на эти грабли и может поделиться ссылками, кусками кода или конфигов. (ни одна из найденных мной статей (не меньше, чем штук пять) решения на проблему не подкинула). Что я упустил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2007, 15:47:43 |
|
||
|
PAM: авторизация пользователей из таблицы в базе Firebird
|
|||
|---|---|---|---|
|
#18+
$ cd /etc/pam.d $ sudo mv login login.backup $ sudo sh -c "echo auth required pam_permit.so > login" только аккуратней, с этого момента на машину можно будет зайти зная только имя пользователя. А вообще в тестовых целях лучше запустить, например, pure-ftpd или любой другой сервис, который умеет лазить за аутентификаций в пам со своим именем сервиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 12:17:40 |
|
||
|
PAM: авторизация пользователей из таблицы в базе Firebird
|
|||
|---|---|---|---|
|
#18+
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pam/index.html хоть не Линукс, но хорошо написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:18:15 |
|
||
|
PAM: авторизация пользователей из таблицы в базе Firebird
|
|||
|---|---|---|---|
|
#18+
Не время было дальше биться с PAM, так что найдено другое решение. Может быть, кому-то будет интересно. Тормозное, временное, но всё-таки рабочее. Вместо PAM-модуля доступа к БД было решено хранить и зеркалить юзеров в LDAP. В качестве интерфейса к LDAP юзается пакет консольных утилит smbldap-tools (http://www.iallanis.info/). Вместо предполагавшегося PAM-модуля выступает традиционный pam_ldap. Спасибо за ответы, почитаю, попробую. Переделывать всё равно надо когда-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2008, 03:24:40 |
|
||
|
|

start [/forum/topic.php?fid=25&tid=1487243]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
14ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 251ms |

| 0 / 0 |
