ฉันต้องการให้ผู้ใช้ Linux ในเครื่องสามารถตรวจสอบสิทธิ์ (เข้าสู่ระบบ) โดยใช้โมดูล Nginx PAM ฉันใช้เซิร์ฟเวอร์ CentOS 7 โดยเฉพาะด้านล่างคือสิ่งที่ฉันพยายามทำ ...
เดอะ อ่าน สำหรับโมดูล ngx http auth pam พูดว่า:
โปรดทราบว่าโมดูลทำงานในฐานะผู้ใช้เว็บเซิร์ฟเวอร์ ดังนั้นโมดูล PAM ที่ใช้ต้องสามารถตรวจสอบผู้ใช้ได้โดยไม่ต้องรูท นั่นหมายความว่าหากคุณต้องการใช้โมดูล pam_unix.so เพื่อรับรองผู้ใช้ คุณต้องให้ผู้ใช้เว็บเซิร์ฟเวอร์อ่านไฟล์ /etc/shadow หากนั่นไม่ได้ทำให้คุณตกใจ (บนระบบ Debian เช่น คุณสามารถเพิ่ม www-data ผู้ใช้ไปยังกลุ่มเงา)
คำถามแรกของฉันคือในกรณีนี้คือ 'nginx' ผู้ใช้เว็บเซิร์ฟเวอร์หรือไม่ คำถามที่สองของฉันคือ ฉันจะตั้งค่าการอนุญาตสำหรับผู้ใช้เว็บเซิร์ฟเวอร์เพื่ออ่านไฟล์ /etc/shadow ได้อย่างไร ใครช่วยกรุณาให้ขั้นตอนที่ใช้ได้ผลกับฉัน ฉันได้ทำตามแบบฝึกหัดมากมายที่ฉันพบทางออนไลน์ แต่ไม่ประสบความสำเร็จ ขณะนี้ เมื่อเข้าถึงไซต์ที่ฉันต้องการให้ผู้ใช้ Linux ภายในเครื่องสามารถเข้าสู่ระบบได้ ฉันจะได้รับการแจ้งเตือนให้ตรวจสอบสิทธิ์ (เพื่อป้อนชื่อผู้ใช้และรหัสผ่าน) แต่เมื่อป้อนข้อมูลประจำตัวของผู้ใช้ Linux ภายในเครื่อง กลับไม่สำเร็จ และ เพียงแจ้งให้ฉันป้อนอีกครั้ง
ขอบคุณ ความช่วยเหลือใด ๆ ที่ชื่นชมและฉันสามารถให้ข้อมูลเพิ่มเติมได้หากจำเป็น
แก้ไข:
ฉันได้กำหนดค่า PAM ใน nginx โดยสร้าง nginx จากแหล่งที่มาก่อนโดยใช้ขั้นตอน ที่นี่. ในไฟล์ nginx.conf ของฉัน ฉันได้เพิ่มบรรทัดต่อไปนี้ที่ด้านบนเพื่อรวมโมดูล PAM...
load_module /etc/nginx/modules/ngx_http_auth_pam_module.so;
ฉันได้รวมสองบรรทัดด้านล่างไว้ในคำสั่งตำแหน่งของฉันใน nginx.conf...
auth_pam "พื้นที่ปลอดภัย";
auth_pam_service_name "nginx";
ในไดเร็กทอรี '/etc/pam.d' สำหรับไฟล์บริการ nginx ฉันมีสองบรรทัดต่อไปนี้...
จำเป็นต้องมีการตรวจสอบสิทธิ์ /usr/lib/security/pam_unix.so
ต้องใช้บัญชี /usr/lib/security/pam_unix.so
มองไปที่ อ่าน สำหรับโมดูล ngx http auth pam ฉันเห็นว่าฉันจะต้องให้สิทธิ์ผู้ใช้เว็บเซิร์ฟเวอร์ในการอ่านไฟล์ /etc/shadow ในการดำเนินการนี้ ฉันสร้างกลุ่มใหม่ชื่อ 'เงา' ขึ้นมาก่อน ฉันกำหนดผู้ใช้เว็บเซิร์ฟเวอร์ (ซึ่งฉันคิดว่าเป็น nginx) ให้กับกลุ่ม 'shadow' ฉันเปลี่ยนสิทธิ์สำหรับไฟล์ /etc/shadow คำสั่งที่ฉันเรียกใช้เพื่อทำสิ่งนี้อยู่ด้านล่าง ...
กลุ่มเพิ่มเงา
usermod -a -G เงา nginx
chown รูท: เงา / etc / shadow
chmod g+r /etc/shadow
หลังจากทำสิ่งนี้ ฉันตรวจสอบสิทธิ์สำหรับไฟล์ /etc/shadow โดยใช้คำสั่ง
ls -l /etc/shadow
และนี่คือผลลัพธ์ที่ได้...
----ร-----. 1 เงารูท 1390 30 ส.ค. 12:51 /etc/shadow
ฉันตั้งรหัสผ่านสำหรับผู้ใช้ nginx ด้วย และขอย้ำอีกครั้ง เมื่อเข้าถึงไซต์ที่ฉันต้องการตรวจสอบสิทธิ์ เมื่อฉันป้อนชื่อผู้ใช้และรหัสผ่าน nginx ระบบจะแจ้งให้ฉันป้อนอีกครั้ง