Điểm:0

How to give web server user read permission to /etc/shadow file?

lá cờ in

I would like to have a local Linux user to be able to be authenticated (login) using the Nginx PAM module. I am using a CentOS 7 server. Specifically the below is what I am trying to do...

The README for the ngx http auth pam module says:

Note that the module runs as the web server user, so the PAM modules used must be able to authenticate the users without being root; that means that if you want to use the pam_unix.so module to authenticate users you need to let the web server user to read the /etc/shadow file if that does not scare you (on Debian like systems you can add the www-data user to the shadow group).

My first question is that in this case is 'nginx' the web server user? My second question is how can I set the permissions for the web server user to read the /etc/shadow file? Can someone please provide me with steps that have worked for them. I have followed along many tutorials that I have found online, but without success. Currently, when accessing the site that I want a local Linux user to be able to log into, I do get an authentication prompt (to enter the username and password) but when entering the credentials of a local Linux user it is without success, and just prompts me to enter it in again.

Thank you, any help is appreciated and I can give more information if needed.

Edit:

I have configured PAM in nginx by first building nginx up from source using the steps here. In my nginx.conf file I have added the following line towards the top to include the PAM module...

load_module /etc/nginx/modules/ngx_http_auth_pam_module.so;

I have also included the two lines below in my location directive in the nginx.conf...

auth_pam "Secure area";
auth_pam_service_name "nginx";

In the directory '/etc/pam.d' for the nginx service file I have the following two lines...

auth required /usr/lib/security/pam_unix.so
account required /usr/lib/security/pam_unix.so

Looking at the README for the ngx http auth pam module I see that I would have to give the web server user read permission to the /etc/shadow file. To do this I first created a new group called 'shadow'. I then assigned the web server user (which I am assuming is nginx) to the 'shadow' group. I then changed the permissions for the /etc/shadow file. The commands that I ran to do this is below...

groupadd shadow
usermod -a -G shadow nginx
chown root:shadow /etc/shadow
chmod g+r /etc/shadow

After doing this I checked the permissions for the /etc/shadow file using the command

ls -l /etc/shadow

and this is what the output was...

----r-----. 1 root shadow 1390 Aug 30 12:51 /etc/shadow

I also set a password for the nginx user. And just to reiterate, upon accessing the site that I want to have authentication, when I enter in the nginx username and password it just prompts me again to enter it.

lá cờ in
Xin chào @Nebek Bạn có thể hoàn thiện thêm câu hỏi này bằng cách cung cấp chi tiết chính xác về cách bạn đã định cấu hình Pam. (ví dụ: các tệp bạn đã thêm/cấu hình trong `/etc/pam.d/nginx*`) vì điều này sẽ cho phép trả lời câu hỏi tại sao quyền truy cập không được cung cấp.
Điểm:0
lá cờ in

Tôi đoán bạn đã cài đặt nginx-module-auth-pam cũng như cấu hình /etc/pam.d/nginx.

Nếu không: hãy cài đặt tệp rpm, vì mọi thứ sẽ được cấu hình cho bạn. Nói cách khác: bạn không cần phải tinh chỉnh thủ công /etc/shadow cài đặt truy cập. trong thực tế bạn không được tinh chỉnh /etc/shadow trong trường hợp bạn đang sử dụng pam. Tệp này chứa mật khẩu (đã băm) cho người dùng của bạn, vì vậy, ngoài ra, bạn không muốn cấp cho bất kỳ quy trình hoặc chương trình nào (ngoại trừ pam) hoặc quyền truy cập của người dùng (ngoại trừ root) vào tệp này vì lý do bảo mật.

Trong trường hợp bạn có đăng ký:

yum -y cài đặt https://extras.getpagespeed.com/release-latest.rpm
yum -y cài đặt nginx-module-auth-pam

Nếu không: lấy hoặc xây dựng từ https://github.com/jfut/nginx-module-auth-pam-rpm

Tại sao không chỉ trả lời câu hỏi của bạn? Như các ví dụ bạn đưa ra là dành cho các hệ thống giống như Debian nhưng cách cấu hình hơi khác đối với các hệ thống giống như Redhat, chẳng hạn như CentOS 7.

Bạn sẽ tìm thấy các ví dụ cấu hình bổ sung cho mô-đun này trong GitHub.

Vui lòng kiểm tra https://nginx-extras.getpagespeed.com/ để biết các ví dụ cấu hình bổ sung.

Nebek avatar
lá cờ in
Xin chào @Lutz Willek, bạn có thể cung cấp cho tôi các bước về cách lấy và xây dựng rpm nginx-module-auth-pam không và nếu có bất kỳ bước nào khác mà tôi cần thực hiện. Cảm ơn!
lá cờ in
Đã được cung cấp trong câu trả lời của tôi. Tải xuống: https://github.com/jfut/nginx-module-auth-pam-rpm/releases và Readme https://github.com/jfut/nginx-module-auth-pam-rpm/blob/master/README .md

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.