. Я хотел бы иметь возможность аутентифицировать локального пользователя Linux с его учетными данными при доступе к сайту. Я использую модуль ngx_http_auth_pam_module. В файле nginx.conf у меня есть следующая конфигурация директивы местоположения:
location / {
proxy_pass http://somewebsite:5000;
root html;
index index.html index.htm;
auth_pam "Secure area";
auth_pam_service_name "nginx";
}
С синтаксисами «auth_pam» и «auth_pam_service_name» в моем файле nginx.conf при доступе к сайту мне предлагается ввести учетные данные. В каталоге /etc/pam.d я создал служебный файл nginx со следующим:
auth required pam_unix.so
account required pam_unix.so
Я запускаю его на сервере CentOS 7. Я понимаю, что мне придется создать локального пользователя и / или группу Linux и, возможно, предоставить доступ к файлу / etc / shadow, но, используя учебные пособия, которые я нашел в Интернете, я все еще не могу войти в систему с локальным пользователем. Не мог бы кто-нибудь дать мне инструкции, как заставить его работать, чтобы я мог войти в систему с локальным пользователем Linux при доступе к сайту?
Спасибо, любая помощь приветствуется, и я могу предоставить дополнительную информацию, если это необходимо .
В README для этого стороннего модуля nginx говорится:
Обратите внимание, что модуль работает от имени пользователя веб-сервера, поэтому Используемые модули PAM должны иметь возможность аутентифицировать пользователей без полномочий root; это означает, что если вы хотите использовать модуль
pam_unix.so
для аутентификации пользователей, вам нужно разрешить пользователю веб-сервера читать файл/etc/shadow
, если это вас не пугает (в системах, подобных Debian, вы можете добавить пользователяwww-data
в группуshadow
).
Обратите внимание на последствия для безопасности, если разрешить вашему веб-серверу и/или веб-приложению читать теневой файл.