为什么 LDAP 不支持对 shadowExpire 进行不等式搜索?

为什么 LDAP 不支持对 shadowExpire 进行不等式搜索?

当我尝试在 OpenLDAP 2.4.42 服务器上搜索 时(shadowExpire<=18074),没有得到任何结果。但是,搜索(shadowExpire=12671)会得到几个结果。

我的最终目标是定期重新生成 Postfix 映射check_recipient_access拒绝发送至已过期帐户的邮件。


查看服务器的/etc/ldap/schema/nis.schema, 我懂了:

attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
        EQUALITY integerMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

这同意RFC 2307 第 3 部分,其中指定:

( nisSchema.1.10 NAME 'shadowExpire'
  EQUALITY integerMatch
  SYNTAX 'INTEGER' SINGLE-VALUE )

这两种情况都表明shadowExpire仅支持平等搜索。

然而,RFC 2307bis有:

( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
    EQUALITY integerMatch
    ORDERING integerOrderingMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
    SINGLE-VALUE )

… 使得ORDERING integerOrderingMatch不等式搜索能够进行。


我可以破解我的服务器nis.schema来包含ORDERING integerOrderingMatch吗?底层表示仍然是INTEGER,所以应该是无害的,对吧?(尽管OpenLDAP 管理员指南上面写着“您不应该修改所提供文件中定义的任何架构项。)

答案1

您正确分析了缺失的排序匹配规则。

但是,您不应更改 OpenLDAP 附带的架构文件,例如nis.schema。但您可以使用其他架构文件rfc2307bis.schema。一些 Linux 发行版已附带此文件。

nis.schema请注意和的使用rfc2307bis.schema是互相排斥的。

相关内容