Shell script frustration

martin at orbweavers.co.uk martin at orbweavers.co.uk
Thu Jul 28 09:10:40 GMT 2005


> At 11:14 PM +0100 7/27/05, martin at orbweavers.co.uk wrote:
>>
>>echo ldapdelete -W -D $binddn \"cn=$1, $group_base\"
>>ldapdelete -W -D $binddn \"cn=$1, $group_base\"
>
>
>>when run ('./rmgroup users') it outputs -
>>
>>ldapdelete -W -D "cn=Manager,dc=orbweavers,dc=co,dc=uk" "cn=users,
>>ou=groups,dc=orbweavers,dc=co,dc=uk"
>>Enter LDAP Password:
>>ldap_bind: Invalid DN syntax (34)
>>         additional info: invalid DN
>>
>>However, if I copy and paste the echod statement (the first line
>>of the output) straight to the shell, it run fine.
>
> What I do in this cases is create a script called "list_args.sh":
>
> #!/bin/sh
> printf "\nlist_args.sh at `date +%H:%M:%S` with \$# = $#\n"
> # Process all parameters.
> N=0
> while test $# != 0 ; do
>      N=$(($N+1))
>      printf "    \$$N = [%3d] '$1'\n" ${#1}
>      shift
> done
>
> Then in your script, replace the ldapdelete command with
> list_args.sh.  That way you'll see *exactly* what ldapdelete
> is seeing for parameters, and that might help.

I tried that one, with an echo $* - though I assume the printf prints it
out 'more precise'?  I've come up with a work around - in my slapd.conf I
have quotes around the rootdn, if I take them off it works fine (I did try
it without the quotes around the variable, but that didn't work either,
much confusion)

I'd love to know what was causing the problem, but enough time is spend on
it. I will update the script to strip off quotes when found, which should
sort it out.

I now have the LDAP tools I discussed earlier written. Very rough and
ready, but they do the job I want, so they are 'complete' in that respect!

We have:
      adduser - adds a user, and a group if it does not already exist
      rmuser  - removes a user
      rmgroup - removes a group
      users   - prints a list of users found, or details if a username is
passed
      groups - prints a list of groups found, or details if a groupname is
passed
      passwd - change a user password

They are certainly not ready for an end user, but if anyone wants to make
use of them or polish them up a bit, let me know and I will send them to
you. I will put them up on my site at some point over the week.

Cheers,
Martin




More information about the freebsd-questions mailing list