微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。