在使用 LDAP 进行用户身份验证的 debian 8 服务器上(安装了 slapd、libpam-ldapd 和 nslcd),我在 syslog 中多次收到以下消息,每次系统需要在 LDAP 中查找用户信息(如键入 id [username] ,或为文件夹设置权限等)
slap_global_control: unrecognized control: 1.3.6.1.4.1.4203.666.5.16
该控件显然是 deref 控件。我找不到任何关于它的信息,除了它在将 LDAP 数据库存储在多个服务器上时很有用。在我的机器上从来没有这种情况。我从来没有在任何地方有意识地激活那个控制。
这使得系统在某些情况下非常慢,例如当用户导入脚本正在运行并导入大量用户时。
当用户导入运行时,此消息每秒可能出现大约一百次。在终端中仅键入一次“id [用户名]”时,此消息在 syslog 中出现大约 10 次。
进一步调查显示,nslcd 可能与这种行为有关。在调试模式下运行 nslcd 时,可以看到以下选项用于连接 LDAP 服务器:
nslcd: [e8944a] <group=3000> DEBUG: ldap_initialize(ldapi:///localhost)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_rebind_proc()
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_DEREF,0)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_TIMELIMIT,0)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_TIMEOUT,0)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,0)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd: [e8944a] <group=3000> DEBUG: ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd: [e8944a] <group=3000> DEBUG: ldap_simple_bind_s(NULL,NULL) (uri="ldapi:///localhost")
所以它似乎在那里禁用了 DEREF,但是我的 slapd 配置根本没有关于 DEREF 的信息,也许这就是导致问题的原因?
如何避免出现关于无法识别控件的多条消息?