scripting - 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=denodocompose,dc=org\n';} | 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
解决方案
推荐阅读
- ios - 有没有办法让应用程序通知在 iOS 中持久存在?
- php - CodeIgniter 3.1.11 本地主机不工作(HTTP 错误 500)
- docker - Gitlab CI runner 在 docker-compose 构建时失败
- android - Recycler View 元素上的不同滑动方向
- typescript - 为 IOS 反应原生 FaceBook SDK 获取令牌返回错误的签名
- python - 来自python函数的R Markdown中的原始乳胶输出问题
- java - Quarkus 在开发模式下重新加载类,而没有任何改变
- arrays - 旋转数组的新变体,如何使用二分搜索获得旋转后第一个最小元素的索引?
- photoshop-script - 将表格输出添加到 Photoshop 脚本
- excel - 如何使用 VBA 从 3D 面积图中删除空值