有没有办法自动检查覆盖层(例如)是否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
标志提供更简洁的输出。显然,将您需要的任何身份验证信息添加到命令中。