我正在使用openldap,nslcd和nss-pam-ldapd。 我想限制用户login到LDAP客户端。 我已经在centos6.5中configuration了这个没有任何问题使用groupdn。 但是在7中,没有pam_ldap.conf文件。 我尝试通过在nslcd.conf中添加以下行来执行此操作: filter passwd(memberOf = cn = groupname,ou = groups,dc = example,dc = com)
但即使他是该组织的成员也不会让任何人login。 我怎么解决这个问题?
我安装sssd并configuration如下nut仍然每个人都可以login,即使他不是提到的组的成员。 当我尝试login时,没有日志写入sssd.log和/ var / log / messages。 我可以使用“nslcd -d”来检查nslcd日志。 sssd.conf:
[SSSD]
config_file_version = 2
服务= nss,pam
domains = example.com
debug_level = 10
[NSS]
[PAM]
[域/ example.com]
ad_server = app.example.com
ad_domain = example.com
sssd-ldap = app.example.com
ldap_access_order = filter,过期
ldap_access_filter =(memberOf = cn = groupname,ou = groups,dc = app,dc = example,dc = com)
ldap_schema = rfc2307bis
ldap_group_member = uniqueMember
ldap_search_base = dc = app,dc = example,dc = com
id_provider = ldap
auth_provider = ldap
access_provider = ldap
ldap_uri = ldap://app.example.com/
先谢谢了
您应该使用SSSD并将其configuration为使用LDAP,而不是直接使用PAM。
然后,您可以在SSSD域configuration中使用以下内容:
access_provider = simple simple_allow_groups = groupname
这是限制用户的一种非常基本的方式,但是您也可以使用access_provider=ldap ,然后使用更高级的LDAP查询来控制访问。
见man sssd和man sssd-ldap 。