如何阻止ldapsearch(1)从base64编码userPassword和其他属性? [英] How to stop ldapsearch(1) from base64 encoding userPassword and other attributes?

查看:30
本文介绍了如何阻止ldapsearch(1)从base64编码userPassword和其他属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ldapsearch(1)命令从LDAP服务器检索对象,并将它们打印为LDIF结构,如下所示(不是实际数据):

dn: mail=foo@domain.com,dc=domain,dc=com
objectclass: top
objectclass: person
mail: foo@domain.com
userPassword:: hdfy74dhn79wdhyr74hy7489fhw46789f
如果属性包含非ASCII数据,则它是Base64编码的,由属性名称后的双::表示。此外,名为userPassword的任何属性似乎都将始终编码,即使它是ASCII-CLEAN属性。

我想要做的是告诉ldapsearch不要这样做。我找不到要传递以禁止此行为的选项标志;只能在禁用LDAP_PASSWD_DEBUG的情况下重新编译源。

是否有未记录的选项来阻止此编码?

(暂且不考虑安全问题等,因为这是为了测试目的)

推荐答案

如果不重新编译ldapsearch,似乎无法使用简单的标志执行此操作。

但是,您可以像这样创建shell别名,只要您安装了Perl MIME::Base64模块,它将具有相同的效果。

myldapsearch()
{
ldapsearch $* | perl -MMIME::Base64 -n -00 -e 's/
 +//g;s/(?<=:: )(S+)/decode_base64($1)/eg;print'
}
alias ldapsearch=myldapsearch

这篇关于如何阻止ldapsearch(1)从base64编码userPassword和其他属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆