Tôi có máy chủ dựa trên RHEL 7 và 8.
Máy chủ RHEL 7 sử dụng nslcd để hoạt động với máy chủ LDAP, RHEL 8 sử dụng SSSD.
Đối với RHEL 7, tôi chỉ có thể cung cấp quyền truy cập cho người dùng đối với các máy chủ được phép.
Chức năng này được bao phủ bởi tùy chọn trong nslcd.conf:
pam_authz_search (&(objectClass=posixAccount)(uid=$uid)(|(host=$hostname.\*)(host=\*)))
Tôi sử dụng tùy chọn "máy chủ=$hostname.\* " đối với người dùng thông thường có danh sách máy chủ được phép, "máy chủ =\*" được sử dụng cho quản trị viên có * cho thuộc tính máy chủ ldap.
SSSD có tùy chọn ldap_access_filter và với các bước tiếp theo:
ldap_access_filter = (objectClass=posixAccount)
Tất cả người dùng có thể đăng nhập vào tất cả máy RHEL 8, điều tôi muốn tránh.
Có thể thêm các tùy chọn máy chủ vào ldap_access_filter như tôi có trong nslcd.conf trên các máy chủ cũ không?
Cảm ơn bạn trước.
CẬP NHẬT:
ldap_access_filter = (&(objectClass=posixAccount)(host=\*))
hoạt động cho quản trị viên có * trong thuộc tính máy chủ ldapsearch:
~$ ldapsearch -LLL -Q -Z uid=máy chủ người dùng quản trị
dn: uid=admin-user,ou=People,dc=my,dc=domain,dc=net
chủ nhà: *
Ngoài ra tôi có thể chỉ định trực tiếp tên máy chủ:
ldap_access_filter = (&(objectClass=posixAccount)(host=servername.example.lan))
và nó cũng hoạt động cho người dùng có máy chủ này trong danh sách:
~$ ldapsearch -LLL -Q -Z uid=máy chủ người dùng thử nghiệm
dn: uid=a-testuser,ou=People,dc=my,dc=domain,dc=net
máy chủ: servername.example.lan
Nhưng làm cách nào tôi có thể sử dụng các biến hoặc ký tự đặc biệt như * hoặc \*?