ฉันมีเซิร์ฟเวอร์ที่ใช้ RHEL 7 และ 8
เซิร์ฟเวอร์ RHEL 7 ใช้ nslcd เพื่อทำงานกับเซิร์ฟเวอร์ LDAP, RHEL 8 ใช้ SSSD
สำหรับ RHEL 7 ฉันสามารถให้การเข้าถึงแก่ผู้ใช้เฉพาะโฮสต์ที่อนุญาตเท่านั้น
ฟังก์ชั่นนี้ครอบคลุมโดยตัวเลือกใน nslcd.conf:
pam_authz_search (&(objectClass=posixAccount)(uid=$uid)(|(host=$hostname.\*)(host=\*)))
ฉันใช้ตัวเลือก "โฮสต์=$ชื่อโฮสต์\* " สำหรับผู้ใช้ทั่วไปที่มีรายชื่อเซิร์ฟเวอร์ที่อนุญาต "โฮสต์=\*" ใช้สำหรับผู้ดูแลระบบที่มี * สำหรับแอ็ตทริบิวต์โฮสต์ ldap
SSSD มีตัวเลือก ldap_access_filter และ sttings ถัดไป:
ldap_access_filter = (objectClass=posixAccount)
ผู้ใช้ทุกคนสามารถเข้าสู่ระบบ RHEL 8 ทุกเครื่องได้ ซึ่งเป็นสิ่งที่ฉันต้องการหลีกเลี่ยง
เป็นไปได้หรือไม่ที่จะเพิ่มตัวเลือกโฮสต์ใน ldap_access_filter เหมือนที่ฉันมีใน nslcd.conf บนเซิร์ฟเวอร์เก่า
ขอบคุณล่วงหน้า.
UPD:
ldap_access_filter = (&(objectClass=posixAccount)(โฮสต์=\*))
ใช้งานได้กับผู้ดูแลระบบด้วย * ในแอตทริบิวต์โฮสต์ ldapsearch:
~$ ldapsearch -LLL -Q -Z uid=admin-user host
dn: uid=admin-user,ou=People,dc=my,dc=domain,dc=net
เจ้าภาพ: *
นอกจากนี้ ฉันยังสามารถระบุชื่อเซิร์ฟเวอร์ได้โดยตรง:
ldap_access_filter = (&(objectClass=posixAccount)(host=servername.example.lan))
และยังใช้ได้กับผู้ใช้ที่มีเซิร์ฟเวอร์นี้ในรายการ:
~$ ldapsearch -LLL -Q -Z uid=a-testuser โฮสต์
dn: uid=a-testuser,ou=คน,dc=my,dc=domain,dc=net
โฮสต์: servername.example.lan
แต่ฉันจะใช้ตัวแปรหรืออักขระพิเศษได้อย่างไร * หรือ \*?