Score:0

จะให้สิทธิ์ผู้ใช้เว็บเซิร์ฟเวอร์อ่านไฟล์ / etc / shadow ได้อย่างไร

ธง in

ฉันต้องการให้ผู้ใช้ 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 ระบบจะแจ้งให้ฉันป้อนอีกครั้ง

in flag
เฮ้ @Nebek คุณสามารถขัดเกลาคำถามนี้เพิ่มเติมได้โดยให้รายละเอียดที่แน่นอนเกี่ยวกับวิธีที่คุณกำหนดค่า Pam (เช่น ไฟล์ที่คุณเพิ่ม/กำหนดค่าใน `/etc/pam.d/nginx*`) เนื่องจากจะช่วยตอบคำถามว่าทำไมจึงไม่มีการเข้าถึง
Score:0
ธง in

ฉันเดาว่าคุณติดตั้ง nginx-module-auth-pam และกำหนดค่าแล้ว /etc/pam.d/nginx.

ถ้าไม่: ติดตั้งไฟล์ rpm เนื่องจากทุกอย่างจะถูกกำหนดค่าให้คุณ กล่าวอีกนัยหนึ่ง: คุณไม่จำเป็นต้องปรับแต่งด้วยตนเอง / etc / เงา การตั้งค่าการเข้าถึง ในความเป็นจริงคุณ ต้องไม่ บิด / etc / เงา ในกรณีที่คุณใช้แพมเพิส ไฟล์นี้มีรหัสผ่าน (แฮช) สำหรับผู้ใช้ของคุณ ดังนั้น นอกจากนี้ คุณไม่ต้องการให้สิทธิ์กระบวนการหรือโปรแกรมใดๆ (ยกเว้นแพม) หรือผู้ใช้ (ยกเว้นรูท) เข้าถึงไฟล์นี้ด้วยเหตุผลด้านความปลอดภัย

ในกรณีที่คุณสมัครสมาชิก:

ยำ -y ติดตั้ง https://extras.getpagespeed.com/release-latest.rpm
yum -y ติดตั้ง nginx-module-auth-pam

ถ้าไม่: คว้าหรือสร้างจาก https://github.com/jfut/nginx-module-auth-pam-rpm

ทำไมไม่ตอบเฉพาะคำถามของคุณ? ดังตัวอย่างที่คุณยกมาสำหรับระบบที่คล้ายเดเบียน แต่วิธีกำหนดค่าจะแตกต่างกันเล็กน้อยสำหรับระบบที่คล้าย Redhat เช่น CentOS 7

คุณจะพบตัวอย่างการกำหนดค่าเพิ่มเติมสำหรับโมดูลนี้ได้ใน GitHub.

กรุณาตรวจสอบด้วย https://nginx-extras.getpagespeed.com/ สำหรับตัวอย่างการกำหนดค่าเพิ่มเติม

Nebek avatar
in flag
สวัสดี @Lutz Willek คุณช่วยบอกขั้นตอนในการคว้าและสร้าง rpm nginx-module-auth-pam ให้ฉันได้ไหม และถ้ามีขั้นตอนอื่นๆ ที่ฉันต้องทำ ขอบคุณ!
in flag
ให้ไว้แล้วในคำตอบของฉัน ดาวน์โหลด: https://github.com/jfut/nginx-module-auth-pam-rpm/releases และ Readme https://github.com/jfut/nginx-module-auth-pam-rpm/blob/master/README .md

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา