我正在尝试从远程主机执行 ldapmodify 以修改 ldapmaster 上的条目。我已经在主机上安装了 slapd,因为我需要 mkntpwd 二进制文件,服务器未配置,并且我还安装了 ldap-utils 作为 ldap 工具。当我从 shell 运行该命令时,它工作正常,但不能从我的脚本运行。我正在执行脚本中的命令,如下所示:
.......
echo "dn: ou=xxx,dc=yyy,dc=zzz
changetype: modify
replace: attribute
attribute: ${newValue}" \
| ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 >/dev/null 2>&1
.......
我也用 ldif 文件尝试过:
.......
(
echo "dn: ou=xxx,dc=yyy,dc=zzz"
echo "changetype: modify"
echo "replace: attribute"
echo "attribute: ${newValue}"
) >> file.ldif
ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 -f file.ldif >/dev/null 2>&1
.......
不幸的是,我的脚本既没有也没有工作。正如我所说,两个版本都可以在 shell 中正常工作。你知道我做错了什么吗?
先谢谢了
答案1
我可以通过删除 echo 命令后面每行行开头的空格来解决此问题。对于 ldif 文件,问题是该文件不为空,删除后,它工作正常。多谢
问题可以标记为已解决