On Thursday 15 January 2009 03:46:00 Adam Williams wrote:
Philip Guenther wrote:
That input looks okay to me and similar looking input works with ldapmodify in my testing. My guess is that there's something invisible in the file that's breaking the parse. For example, trailing whitespace on the "-" lines is invalid and will result in errors like the above. I suggest you look at the output of cat -vet profilepaths.ldif
and make sure the '$' that that command puts at the end of each line is where you expect it to be and that there's no otherwise hidden control characters.
Philip Guenther
thanks, cat'ing it looks ok to me, each line ends in ^M$ with no whitespace.
While LDIF may allow ^M, in general it is probably a good idea to not consider the presence of DOS line endings as "ok" (e.g., you will have problems with executing scripts by abusing the "hashbang" to invoke the interpreter etc.).
[root@roark ldap]# cat -vet profilepaths.ldif dn: uid=panderson,ou=People,dc=mdah,dc=state,dc=ms,dc=us^M$ changetype: modify^M$ replace: sambaProfilePath^M$ sambaProfilePath: \preshs\profiles\panderson^M$ -^M$ replace: sambaHomePath^M$ sambaHomePath: \preshs\panderson^M$ -^M$ replace: sambaLogonScript^M$ sambaLogonScript: scripts\panderson.bat^M$ -^M$ replace: sambaHomeDrive^M$ sambaHomeDrive: R:^M$ [root@roark ldap]# ldapmodify -D "cn=Manager,dc=mdah,dc=state,dc=ms,dc=us" -w xxxxxxxxxx -x -v -f profilepaths.ldif ldap_initialize( <DEFAULT> ) ldapmodify: invalid format (line 5) entry: "uid=panderson,ou=People,dc=mdah,dc=state,dc=ms,dc=us"
In the meantime, while ldapmodify does not comply (as Philip pointed out), convert the file to unix format with dos2unix or similar.
Regards, Buchan