| Current File : //sbin/nsdb-update-nci |
#!/bin/ksh
#
# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
#
if [ -f /usr/lib/fs/nfs/fedfs_include.sh ]; then
. /usr/lib/fs/nfs/fedfs_include.sh
else
. ./fedfs_include.sh
fi
LDAPADD='/bin/openldapadd -x'
while [ $# -gt 1 ]; do
case $1 in
-l) shift; nsdb=$1;;
-r) shift; port=$1;;
-e) shift; nce=$1;;
-D) shift; admin=$1;;
-w) shift; pw=$1;;
--help) break;;
*) break;;
esac
shift
done
if [ $# -ne 1 ]; then
echo "Usage: nsdb-update-nci [-l <NSDB> ] [-r <PORT>] [-e <NCE>] [-D <BINDDN>] [-w <PW>] <ROOT>"
exit
fi
root=$1; shift
if [ -z "$nce" ]; then
nce2=""
else
nce2=" $nce"
fi
rm -f /tmp/ldap_pw$$
touch /tmp/ldap_pw$$
chmod 600 /tmp/ldap_pw$$
echo $pw\\c >> /tmp/ldap_pw$$
# Install NCE prefix entry
o=`echo $root | sed -e 's/dc=//' -e 's/,.*//'`
rm -f /tmp/ldap_nce$$
touch /tmp/ldap_nce$$
echo "dn: $root" >> /tmp/ldap_nce$$
echo "changetype: add" >> /tmp/ldap_nce$$
echo "objectClass: top" >> /tmp/ldap_nce$$
echo "objectclass: organization" >> /tmp/ldap_nce$$
echo "objectclass: dcObject" >> /tmp/ldap_nce$$
echo "objectClass: fedfsNsdbContainerInfo" >> /tmp/ldap_nce$$
echo "o: $o" >> /tmp/ldap_nce$$
echo "dc: $o" >> /tmp/ldap_nce$$
if [ -z "$nce" ]; then
echo "fedfsNceDN: $root" >> /tmp/ldap_nce$$
else
echo "fedfsNceDN: $nce,$root" >> /tmp/ldap_nce$$
fi
$LDAPADD -h $nsdb -p $port -D "$admin,$root" -y /tmp/ldap_pw$$ < /tmp/ldap_nce$$
if [ $? != 0 ]; then
rm /tmp/ldap_nce$$
rm /tmp/ldap_pw$$
exit 1
fi
echo "NCE entry created"
rm /tmp/ldap_nce$$
if [ -z "$nce" ]; then
rm /tmp/ldap_pw$$
exit 0;
fi
comp=`echo $nce | sed -e 's/=.*//'`
val=`echo $nce | sed -e 's/.*=//'`
if [ "$comp" == "ou" ]; then
longcomp=organizationalUnit
fi
if [ "$comp" == "dc" ]; then
longcomp=dcObject
fi
# Install NCE directory, if not at root
rm -f /tmp/ldap_dir$$
touch /tmp/ldap_dir$$
echo "dn: $nce,$root" >> /tmp/ldap_dir$$
echo "changetype: add" >> /tmp/ldap_dir$$
echo "objectclass: $longcomp" >> /tmp/ldap_dir$$
echo "$comp: $val" >> /tmp/ldap_dir$$
ldapadd -h $nsdb -p $port -D "$admin,$root" -y /tmp/ldap_pw$$ < /tmp/ldap_dir$$
if [ $? != 0 ]; then
rm /tmp/ldap_dir$$
rm /tmp/ldap_pw$$
exit 1
fi
rm /tmp/ldap_dir$$
rm /tmp/ldap_pw$$
echo "NCE dir $nce created"