从远程服务器执行 ldapmodify

从远程服务器执行 ldapmodify

我正在尝试从远程主机执行 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 文件,问题是该文件不为空,删除后,它工作正常。多谢

问题可以标记为已解决

相关内容