kdb5_ldap_util:尝试将密码的回显传送到命令中总是返回无效凭据

问题描述

我一直在尝试使用 docker-compose 构建中的 OpenLDAP 后端设置自动配置 MIT Kerberos 5,现在我需要在 LDAP 层次结构中创建 Kerberos 容器。我需要对来自 kerberos 的 ldap 服务器使用 kdb_ldap_util 命令。

目前,我可以手动执行此操作。使用命令

kdb5_ldap_util -D cn=admin,dc=denodocompose,dc=org create -subtrees dc=denodocompose,dc=org -r DENodoCOMPOSE.ORG -s -H ldap://ldap.denodocompose.org

这将提示输入 3 个密码和一个 kerberos 容器 dn。

我需要将它作为 shell 脚本的一部分来执行以引导数据库创建,但无论我尝试过哪种组合,我都会不断收到“无效凭据”或类似“无法读取密码”错误的信息当我尝试在没有人工交互的情况下提供密码时尝试绑定到 LDAP 服务器。我正在尝试输入回声以提供密码,并尝试了以下组合来试验这个:

echo changeit | kdb5_ldap_util... //results in 'cannot read' error
echo {'changeit'} //results in invalid credentials on the bind,along with the rest of these
echo -n {'changeit'}
echo -n {"changeit"}
echo -n -e {'changeit\n'}
echo -n -e {"changeit\n"}
echo -e {'changeit\n'}
echo -e {"changeit\n"}

一旦我找出了传递绑定密码的正确语法,我就相当有信心可以为其余提示复制该语法,但是每次在第一个提示时都会失败,因为提供的凭据无效dn,当手动执行命令时,它再次完美运行。任何帮助将不胜感激。

编辑:找到正确的语法:

{ echo -n -e 'changeit\n'; echo -n -e 'changeit\n'; echo -n -e 'changeit\n'; echo -n -e 'cn=krbContainer,dc=org\n';} | kdb5_ldap_util -D cn=admin,dc=org -r DENodoCOMPOSE.ORG -s -H ldap://ldap.denodocompose.org

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)