如何使用ldapsearch获取LDAP服务器的Schema版本?
获取LDAP服务器Schema版本的方法
一、能否通过Root DSE或Schema条目获取?
可以,但不同厂商的LDAP服务器(如OpenLDAP、Active Directory)实现逻辑不同,需要针对服务器类型选择对应查询方式。
二、具体查询命令
1. 先通过Root DSE判断服务器类型
执行以下命令获取Root DSE基础信息,包括服务器厂商、支持的LDAP协议版本,帮你确定后续查询方向:
ldapsearch -x -s base -b "" "(objectClass=*)"
2. 针对不同LDAP服务器的Schema版本查询
OpenLDAP
OpenLDAP的Schema版本存储在cn=schema条目的olcObjectVersion属性中,执行对应命令查询:
# 匿名查询(服务器允许时) ldapsearch -x -b "cn=schema" "(objectClass=*)" olcObjectVersion # 管理员账号查询(匿名无权限时使用) ldapsearch -D "cn=admin,dc=yourdomain,dc=com" -W -b "cn=schema" "(objectClass=*)" olcObjectVersion
Active Directory
AD的Schema版本存储在配置分区的Schema条目中,需使用有权限的账号查询:
ldapsearch -D "cn=Administrator,DC=yourdomain,DC=com" -W -b "cn=schema,cn=configuration,DC=yourdomain,DC=com" "(objectClass=*)" objectVersion
三、解决objectVersion无法访问的问题
如果发现版本属性无法通过ldapsearch获取,通常是两个原因:
- 未显式指定操作属性:部分服务器将版本属性标记为操作属性,默认不会返回,查询时必须在命令末尾明确指定属性名称(如上述命令中的
olcObjectVersion、objectVersion)。 - 权限不足:Schema相关属性通常需要管理员权限才能读取,匿名或普通用户查询会返回空,需使用具有Schema读取权限的账号绑定查询。
内容的提问来源于stack exchange,提问作者Gustavo
相关产品推荐
相关产品推荐

