在我公司的 ldap 中,我们有两个属性,一个叫做cryptodata
,另一个叫做cryptodata;binary
当我执行 ldapsearch 命令并在cryptodata
命令结尾处放置 以便仅按此属性进行过滤时,它会同时显示cryptodata
和cryptodata;binary
属性。我希望它仅返回cryptodata
而不是cryptodata;binary
。我该怎么做?这两个属性都有很多行,因此 grep 使用起来很麻烦。
我使用的返回两个字段的命令示例:
ldapsearch -h 0.0.0.0 -p 389 -D "cn=sysname,ou=whatever,o=ca,c=country" -b "CN=SOMEONE,OU=AUTHORITHY,OU=COMPANY,OU=TYPE,O=CA,C=COUNTRY" -w "password" dn cryptodata
请注意,两个字段并不相同。所以我不能只按cryptodata;binary
这也是一个大型公司的 ldap,所以我无法管理 ldap 字段结构。
答案1
在 LDAP 中,您可以向用分号分隔的属性名称添加所谓的描述。这些描述的解释可能因描述而异。
因此加密数据和加密数据;二进制并不是不同的属性!
实际上;binary
只是一种传输类型,用于改变通过网络传输属性时使用的编码。目前它的用途非常有限(请参阅RFC 4522),主要用于请求PKI证书属性时使用。
如果您的 LDAP 服务器确实返回不同的属性值加密数据和加密数据;二进制您必须检查哪一个对您的客户端具有正确的编码并在客户端进行处理。不要编写简单的 shell 脚本。最好使用 Python/Perl/Ruby 之类的脚本语言以及合适的 LDAP 模块。