Назад | Перейти на главную страницу

Не удается заставить работать аутентификацию PHP PAM

Этот вопрос разделен между сферами SO и SF. Это для проекта кодирования, но я считаю, что ошибка, с которой я сталкиваюсь, больше связана с системным администрированием, чем с кодом, поэтому я помещу ее здесь.

Я пытаюсь создать страницу входа в систему PHP, которая аутентифицирует пользователей в их уже существующих системных учетных записях. Я установил модуль аутентификации php5 pam и, следуя документации, настроил его.

Я создал /etc/pam.d/php со следующим содержимым:

# /etc/pam.d/php
#
# note: both an auth and account entry are required

auth    sufficient      /lib/security/pam_pwdb.so shadow nodelay
account sufficient      /lib/security/pam_pwdb.so

Я добавил "pam.servicename =" php ";" в мой файл /etc/php5/apache2/php.ini, а затем перезапустил службу apache.

Каждый раз, когда мой скрипт использует функцию pam_auth, в моем журнале auth.log появляется следующее:

Jan  6 08:56:33 cobalt apache2: PAM unable to dlopen(/lib/security/pam_pwdb.so)
Jan  6 08:56:33 cobalt apache2: PAM [error: /lib/security/pam_pwdb.so: cannot open shared object file: No such file or directory]
Jan  6 08:56:33 cobalt apache2: PAM adding faulty module: /lib/security/pam_pwdb.so

Как я могу это исправить? Для чего-то столь же простого (по крайней мере, я так думал), должен ли я просто написать свои собственные функции для анализа / etc / shadow и / etc / passwd? Я не пытаюсь зарегистрировать пользователя в самой системе, мне просто нужно разрешить пользователю войти в мой скрипт со своим системным пользователем / паролем и проверить, что они принадлежат к соответствующей группе для запуска данного отчета.

Вы должны использовать pam_unix вместо pam_pwdb Какую ОС / дистрибутив вы используете?

Похоже, ваш файл /lib/security/pam_pwdb.so не существует