#!/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 ] [-r ] [-e ] [-D ] [-w ] " 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"