ไดเรกทอรีบ้านและ pam.d โดยใช้ LDAP


10

แบ็คกราวน์:
ฉันไม่คุ้นเคยกับ ins และ outs of pam และ LDAP authentication ในด้านการกำหนดค่า ฉันใช้ระบบที่ใช้ pam แต่ฉันได้ทำงานกับแอปพลิเคชันเท่านั้นไม่ใช่ระบบเอง

คำถาม:
การใช้แพมเพื่อควบคุมการพิสูจน์ตัวตนผ่าน LDAP สิ่งนี้หมายความว่าจะไม่สร้างไดเรกทอรีภายในบ้านบนระบบหรือไม่

ถ้าไม่ฉันจะสร้างผู้ใช้บนเซิร์ฟเวอร์หรือส่งผู้ใช้ไปยังระบบจากแหล่ง LDAP หรือไม่?


1
คำถามนี้อาจเกี่ยวข้องกับ: unix.stackexchange.com/q/106391/34796
drs

คำตอบ:


13

นี่คือสิ่งที่pam_mkhomedirถูกสร้างขึ้นมาเพื่อ โมดูลสามารถสร้างไดเรกทอรีบ้านของผู้ใช้เมื่อเข้าสู่ระบบถ้าไดเรกทอรีที่ไม่ได้อยู่
pam_mkhomedir

วิธีการติดตั้งขึ้นอยู่กับการกระจายของคุณ /etc/pam.dแต่คุณจะต้องใส่ไว้ในหนึ่งหรือมากกว่าหนึ่งไฟล์ใน
ตัวอย่างเช่นในระบบของฉันฉันมี/etc/pam.d/system-loginซึ่งรวมอยู่ในบริการอื่น ๆ ทั้งหมดที่ดำเนินการเข้าสู่ระบบ (ssh, gdm, ฯลฯ )
ฉันจะใส่pam_mkhomedir.soในsessionกองเช่น:

session     optional    pam_loginuid.so
session     required    pam_env.so 
session     optional    pam_lastlog.so 
session     include     system-auth
session     optional    pam_mkhomedir.so # <<< right here
session     optional    pam_ck_connector.so nox11
session     optional    pam_gnome_keyring.so auto_start
session     optional    pam_motd.so motd=/etc/motd

ที่คุณวางมันขึ้นอยู่กับสิ่งอื่นใดในกอง แต่คุณควรใส่ก่อนสิ่งอื่นใดซึ่งอาจต้องใช้ไดเรกทอรีภายในบ้าน

ดูman 8 pam_mkhomedirตัวเลือกที่รองรับ


น่ากลัว ขอบคุณสำหรับคำตอบ. ขณะนี้ผู้ใช้ของเราไม่ได้ลงชื่อเข้าใช้ระบบพวกเขาลงชื่อเข้าใช้เว็บแอปพลิเคชันที่โฮสต์ในระบบ มีทริกเกอร์ที่สามารถสร้างโฮมไดเร็กตอรี่ของตนเองเมื่อมีการล็อกอินครั้งแรกของเว็บแอพหรือไม่?
นิโคลัสแอนเดอร์สัน

1
หากเว็บแอปพลิเคชันใช้ pam stack มันจะใช้งานได้ (แม้ว่าคุณอาจต้องใส่ไว้ในauthstack แทนที่จะเป็นsession) หากแอพไม่ได้ใช้สแต็คแพมคุณจะต้องสร้างบางสิ่งในแอปพลิเคชันเอง
Patrick

ดูเหมือนว่าจะมีให้เฉพาะโมดูลเซสชั่นฉันลองแล้วอันที่จริง pam_mkhomedir ไม่ทำงานกับโมดูลรับรองความถูกต้อง ฉันมีปัญหาเช่นเดียวกับ Nicholas Anderson ฉันมีเว็บแอปพลิเคชัน มีวิธีการแก้ไขปัญหานี้ในโมดูลรับรองความถูกต้องหรือไม่
Fabiano Tarlao

6

ใน Ubuntu 14.04 system-loginไม่มีอยู่ แต่มีไฟล์อื่นที่ชื่อว่าเป็นcommon-sessionปัจจุบัน

ฉันไปที่นั่นแล้วใส่:

root@GW:~# vim /etc/pam.d/common-session

#
session optional        pam_systemd.so skel=/etc/skel/ umask=0077

สิ่งนี้จะสร้างโฮมไดเรกทอรีหากไม่มีอยู่แล้วตั้งค่าสิทธิ์เป็น 700


umask ที่แนะนำโดยhelp.ubuntu.com/community/LDAPClientAuthenticationumask=0022คือ ฉันเชื่อว่าคุณลบความสามารถทั้งหมดรวมถึงreadซึ่งอาจป้องกันไม่ให้กลไกการตรวจสอบ / ความน่าเชื่อถือที่สำคัญบางอย่างทำงานในระบบที่มีผู้ใช้หลายคนหรือกรณีอื่น ๆ
dragon788

0

ฉันขอแนะนำให้ใช้oddjob-mkhomedir :

สำหรับ Centos 7 สิ่งนี้ใช้ได้:

yum install oddjob-mkhomedir

ผนวกสิ่งนี้กับ/etc/pam.d/system-authและ/etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

และในที่สุดก็:

systemctl enable oddjob; systemctl start oddjob

สิ่งนี้ถูกโพสต์ครั้งแรกที่นี่: https://www.centos.org/forums/viewtopic.php?t=48631

หมายเหตุ: หากคุณเพิ่งติดตั้ง/homeพาร์ติชันของคุณอย่าลืมที่จะทำrestorecon /home

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.