
Я хотел бы иметь возможность аутентификации локального пользователя Linux с его учетными данными при доступе к сайту. Я использую ngx_http_auth_pam_module. В файле nginx.conf у меня есть следующая конфигурация для директивы location:
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 при доступе к сайту?
Спасибо, любая помощь будет оценена по достоинству, и я могу предоставить дополнительную информацию, если потребуется.
решение1
TheПРОЧТИ МЕНЯдля этого стороннего модуля nginx говорится:
Обратите внимание, что модуль работает от имени пользователя веб-сервера, поэтому используемые модули PAM должны иметь возможность аутентифицировать пользователей, не будучи пользователем root; это означает, что если вы хотите использовать модуль
pam_unix.so
для аутентификации пользователей, вам нужно разрешить пользователю веб-сервера читать/etc/shadow
файл, если вас это не пугает (в системах типа Debian вы можете добавитьwww-data
пользователя вshadow
группу).
Обратите внимание на последствия для безопасности, связанные с разрешением вашему веб-серверу и/или веб-приложению читать теневой файл.