Linux ldap 身份验证,pam_filter 被忽略

Ale*_*der 5 linux ubuntu ldap pam filter

我已经通过 ldap 设置了 linux 客户端身份验证,它可以工作。我想通过添加或删除帐户的不同 OU 来控制用户对多个服务的访问。例如,如果允许用户登录 linux 机器,则必须包含“linux”。如果允许此用户访问 redmine,则它也必须包含“redmine”。

问题是,/etc/ldap.conf 中的 pam_filter 参数被忽略了。当我设置它

pam_filter ou=linux
Run Code Online (Sandbox Code Playgroud)

LDAP 服务器的搜索字符串不包含此过滤器:

openldap slapd[5374]: conn=1857 op=1 SRCH base="ou=people,dc=rwth-cbmb,dc=de" scope=2 deref=0 filter="(objectClass=posixAccount)"

正如我所说,我一直将它与 redmine(票务跟踪系统)一起使用,我也设置了 ldap 过滤器并且它工作正常。我在服务器上收到以下搜索请求:

openldap slapd[5374]: conn=1863 op=1 SRCH base="ou=people,dc=rwth-cbmb,dc=de" scope=2 deref=0 filter="(&(objectClass=*)(uid=alex) )(ou=redmine))"

我有以下软件包版本:

ldap-auth-客户端 0.5.3

ldap-auth-config 0.5.3

ldap-utils 2.4.28-1.1ubuntu4.2

libldap-2.4-2 2.4.28-1.1ubuntu4.2

libnss-ldap 264-2.2ubuntu2

libpam-ldap 184-8.5ubuntu2

客户端 ubuntu 12.04,服务器 ubuntu 服务器 10.04。

Ale*_*der 1

好的,解决方案是使用

nss_base_passwd ou=people,dc=rwth-cbmb,dc=de??ou=linux
Run Code Online (Sandbox Code Playgroud)

在客户端上的 /etc/ldap.conf 中。根据文档:

句法:

nss_base_XXX 基础?范围?过滤器

我不知道为什么 pam_filter 不起作用,但 nss_* 解决了问题。