[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: bash script for adding computers



It reads from standart input. Try:
ldapadd -x -D $binddn -w $pw4binddn << EOF
#stuff you want to do here
EOF

-Aaron
--- Jim C <jcllings@tsunamicomm.net> wrote:
> OK, I've gotten this far on the bash script I was
> writing to add a
> machine.  It searches the base for uidNumbers, it
> sorts the numbers from
> largest to smallest, takes the first one and adds
> one to it.  No sweat
> right?
> 
> Here is the kicker,how do you get the data to
> ldapadd without creating
> an ldif file?  I've tried an assortment of
> redirection techniques and 
> I've also tried the bash "here" document.  In
> theory, this should be 
> possible but I am having a really tough time
> figureing out the syntax.
> 
> #!/bin/bash
> 
> binddn="cn=root,dc=microverse,dc=net"
> pw4binddn="passwordgoeshere"
> ldaphost="ldap://localhost";
> base="ou=Computers,dc=microverse,dc=net"
> minimumUID=500
> groupnum=421
> 
> store=`ldapsearch -LLL -D $binddn -H $ldaphost
> -b$base -x "(cn=*)"
> uidNumber | \
>                                                  
> grep uidNumber | \
>                                                  
> sed -e 's/^uidNumber:
> //' | sort -nr | head -n 1`
> 
> #It is best not to start at 0 or 1 as these could be
> privledged.
> 
> if [ "$store" = "" ]
>           then
>           store=$minimumUID
> else
>           store=`expr $store + 1`
> fi
> 
> #ldapadd -x -D $binddn -w $pw4binddn
> line1="dn:
> uid=$1,ou=Computers,dc=microverse,dc=net\n";
> line2="objectClass: top\n"
> line3="objectClass: account\n"
> line4="objectClass: posixAccount\n"
> line5="uidNumber: $store\n"
> line6="uid: $1\n"
> line7="cn: $1\n"
> line8="gidNumber: $groupnum\n"
> line9="homeDirectory: /dev/null\n"
> line10="loginShell: /bin/false\n"
> line11="gecos: Machine Account\n"
> line12="description: Machine Account\n"
> 
> cat $line1 $line2 $line3 $line4 $line5 $line6 $line7
> $line8 $line9
> $line10 $line11 $line12 > ldapadd -x -D $binddn -w
> $pw4binddn
> 
> echo -e
>
$line1$line2$line3$line4$line5$line6$line7$line8$line9$line10$line11$line12
> 
> 
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com