如何检查 OpenLDAP 是否启用了覆盖?

如何检查 OpenLDAP 是否启用了覆盖?

有没有办法自动检查覆盖层(例如)是否memberof已使用 openldap 启用?很多教程都解释了如何启用memberof,但我如何知道它是否已启用?如果能提供基于控制台的解决方案,我将不胜感激。

答案1

如果您使用基于 OpenLDAP 目录的配置,而不是基于文件的配置,则可以使用以下命令检查已加载的模块:

slapcat -n 0 | grep olcModuleLoad

当启用 memberof 时,它应该出现在输出中:

# slapcat -n 0 | grep olcModuleLoad
olcModuleLoad: {0}back_mdb
olcModuleLoad: {1}memberof
olcModuleLoad: {2}refint

并且您可以通过以下方式检查覆盖是否已启用:

# slapcat -n 0 | grep olcOverlay
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: memberof
dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: {1}refint

答案2

grep您可以简单地搜索所需的条目,而不必转储整个目录并通过管道传输它。

获取所有已配置覆盖的列表:
ldapsearch -LLL -b 'cn=config' 'objectClass=olcModuleList' 'olcModuleLoad'

示例输出:

dn: cn=module{0},cn=config
olcModuleLoad: {0}memberof.la

dn: cn=module{1},cn=config
olcModuleLoad: {0}ppolicy.la

dn: cn=module{2},cn=config
olcModuleLoad: {0}smbk5pwd.la
要查看每个覆盖的配置条目:
ldapsearch -LLL -b 'cn=config' 'objectClass=olcOverlayConfig' '*'

示例输出:

dn: olcOverlay={0}memberof,olcDatabase={2}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf

dn: olcOverlay={1}ppolicy,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: {1}ppolicy
olcPPolicyDefault: cn=passwordDefaults,ou=policies,dc=example,dc=com
olcPPolicyHashCleartext: FALSE
olcPPolicyUseLockout: FALSE
olcPPolicyForwardUpdates: FALSE

dn: olcOverlay={2}smbk5pwd,olcDatabase={2}mdb,cn=config
objectClass: olcConfig
objectClass: olcSmbK5PwdConfig
objectClass: olcOverlayConfig
olcOverlay: {2}smbk5pwd
olcSmbK5PwdEnable: samba
olcSmbK5PwdMustChange: 0
要查看某个覆盖的配置条目:
ldapsearch -LLL -b 'cn=config' '(&(olcOverlay=smbk5pwd)(objectClass=olcOverlayConfig))' '*'

示例输出:

dn: olcOverlay={2}smbk5pwd,olcDatabase={2}mdb,cn=config
objectClass: olcConfig
objectClass: olcSmbK5PwdConfig
objectClass: olcOverlayConfig
olcOverlay: {2}smbk5pwd
olcSmbK5PwdEnable: samba
olcSmbK5PwdMustChange: 0

-LLL标志提供更简洁的输出。显然,将您需要的任何身份验证信息添加到命令中。

相关内容