원격 서버에서 ldapmodify 수행

원격 서버에서 ldapmodify 수행

내 ldapmaster의 항목을 수정하기 위해 원격 호스트에서 ldapmodify를 수행하려고 합니다. mkntpwd 바이너리가 필요하고 서버가 구성되지 않았으므로 호스트에 slapd를 이미 설치했으며 ldap 도구용 ldap-utils도 설치했습니다. 쉘에서 명령을 실행하면 제대로 작동하지만 스크립트에서는 작동하지 않습니다. 다음과 같이 스크립트에서 명령을 수행하고 있습니다.

.......
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
.......

불행히도 내 스크립트에서도 작동하지 않았습니다. 내가 말했듯이 두 버전 모두 셸에서 잘 작동합니다. 내가 뭘 잘못하고 있는지 아시나요?

고급 감사합니다

답변1

echo 명령 다음에 나오는 각 줄의 줄 시작 부분에서 공백을 제거하면 이 문제를 해결할 수 있습니다. ldif 파일의 문제는 파일이 비어 있지 않다는 것이었습니다. 파일을 삭제한 후에는 제대로 작동했습니다. 정말 감사합니다

문제를 해결된 것으로 표시할 수 있습니다.

관련 정보