Я бы хотел использовать nginx Модуль PAM для аутентификации сайта с существующими пользователями в системе FreeBSD. Я пытался использовать pam_unix.so, но безуспешно. Меня просто не пускают с моей парой usr / psw. :(
nginx conf:
location / {
root html;
auth_pam "Secure Zone";
auth_pam_service_name "nginx";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
Файл nginx в /usr/local/etc/pam.d
реж:
auth required pam_unix.so
account required pam_unix.so
Буду признателен, если кто-нибудь подскажет мне рабочую конфигурацию. :)
Ответьте на очень старый вопрос, но я смог подтвердить, что это работает, поэтому это может помочь. Это позволяет аутентифицировать местоположение nginx по именам учетных записей локального сервера. YMMV.
nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
Создайте /etc/pam.d/nginx
и добавьте строку:
@include common-auth
В вашей конфигурации nginx:
location /secure {
auth_pam "Secure zone";
auth_pam_service_name "nginx";
}
а волшебный соус:
sudo usermod -aG shadow www-data
Проверьте в nginx.conf учетную запись, используемую с user www-data
. Иногда его можно настроить на nobody
.
Перезапустите nginx и бинго!
Благодаря приведенным выше ответам, которые помогли мне завершить это решение
Не уверен, что вы уже пробовали это, но я заметил здесь:
Обратите внимание, что модуль запускается как пользователь веб-сервера, поэтому используемые модули PAM должны иметь возможность аутентифицировать пользователей, не будучи root; это означает, что если вы хотите использовать модуль pam_unix.so для аутентификации пользователей, вам необходимо разрешить пользователю веб-сервера читать файл / etc / shadow, если это вас не пугает (в системах, подобных Debian, вы можете добавить www-data пользователя в теневую группу).
Модуль Nginx HTTP Auth PAM README
Я не могу подтвердить вашу конфигурацию, боюсь, я не использую pam_unix.so.