ldapsearch - 截断结果

ldapsearch - truncating the result

我正在使用 ldapsearch 获取半径机密,但它给出的结果被截断了

我使用的命令是:

./ldapsearch -p 1545 -Z -X -D "cn=Directory Manager" -w passwd -b "o=platform" "(objectClass=*)" | grep -i secret

产生的结果是:

ss-secret=ahksdf6fakh7fajkfhaffjkfjfhafajkfh234578fajf171jkh25/525jhsfasjh8jjk7

LDAP 中的实际值为

ss-secret=ahksdf6fakh7fajkfhaffjkfjfhafajkfh234578fajf171jkh25/525jhsfasjh8jjk7afjfh8/gSqtulkjfa8lfjakl3

我正在使用 OpenDJ LDAP。

像这样使用-T参数

./ldapsearch -p 1545 -T -Z -X -D "cn=Directory Manager" -w passwd -b "o=platform" "(objectClass=*)" | grep -i secret

这将为您提供完整的输出。

尝试"ldapsearch -o ldif-wrap=no ..."。

在手册页中搜索 "wrap"。

我在 debian 上的 ldap-utils 包中使用 OpenLDAP。

对于基于 Debian 的系统,您必须添加“-o ldif-wrap=no”
示例:ldapsearch -xLLL -o ldif-wrap=no -H ldap://hostname:port/
来自 ldapsearch ubuntu 16.04:

的手册页

-T path
Write temporary files to directory specified by path (default: /var/tmp/)

所以它与格式化输出无关

不幸的是,none 这些选项对我有用。我去了可信赖的 sed 和 awk 并解决了这个问题。

ldapsearch options > outfile
## sed to remove the space at the beginning of wrapped lines.
sed -i 's/^ //g' outfile
## Awk to join the lines if 78
awk '{if(length([=10=]) == 78) {printf [=10=]} else {print [=10=]} }' outfile > outfile.nowrap

打算尝试包裹物,但这是我 go-to 多年来的做法:

ldapsearch -xLLL cn=WHATEVER | perl -p00e 's/\n /g'

它很丑,这就是为什么我来到这里寻找更好的方法,但它确实有效。