C Sample Scripts for Updating Default Attributes for Provisioning
This appendix provides sample scripts for editing the default attribute mappings for provisioning.
Sample scripts for the procedure described in Updating the Scripts for Provisioning After Editing Schema Attributes are as follows:
C.1 Original Sample Script
This is the original CreateNativeUser.txt script.
if [ ! -z "$__UID__" ] ;then
__NAME__=$__UID__;
else
__NAME__=$__NAME__;
fi;
if id $__NAME__ > /dev/null 2>&1 ;then
echo "User already exists";
else
globalVar="true";
if [ ! -z $SECONDARYGROUP ] ;then
command="$command -G $SECONDARYGROUP";
fi;
homedir="";
if [ ! -z $HOME_DIR ] ;then
homedir=$HOME_DIR;
else
if [ ! -z $defaultHomeBaseDir ] ;then
homedir=$defaultHomeBaseDir;
fi;
fi;
if [ ! -z $homedir ] ;then
checkHomeBaseDir=$(test -d $homedir && echo "true" || echo "false");
if [ $checkHomeBaseDir == "true" ]; then
command="$command -d $homedir/$__NAME__";
else
globalVar="false";
echo "useradd: cannot create directory $homedir/$__NAME__";
fi;
fi;
if [ ! -z $EXP_DATE ] ;then
command="$command -e $EXP_DATE";
fi;
if [ ! -z $INACTIVE ] ;then
command="$command -f $INACTIVE";
fi;
if [ ! -z $PGROUP ] ;then
grp=$PGROUP;
else
if [ ! -z $defaultPriGroup ] ;then
grp=$defaultPriGroup;
fi;
fi;
if [ ! -z $grp ] ;then
getent group $grp;
if [ $? -ne 0 ] ;then
echo "PGROUP=$grp";
echo "Invalid primary group :- $grp";
globalVar="false";
else
command="$command -g $grp";
fi;
fi;
if [ ! -z $CREATE_HOME_DIR ] && [ $CREATE_HOME_DIR == "true" ] ;then
command="$command -m";
if [ ! -z $SKEL_DIR ] ;then
command="$command -k $SKEL_DIR";
fi;
fi;
if [ ! -z $CREATE_USER_GROUP ] && [ $CREATE_USER_GROUP == "false" ] ;then
command="$command -n";
fi;
if [ ! -z $USER_SHELL ] ;then
command="$command -s $USER_SHELL";
else
if [ ! -z $defaultShell ] ;then
command="$command -s $defaultShell";
fi;
fi;
if [ ! -z $USID ] && [ $USID -gt 0 ] ;then
command="$command -u $USID";
if [ ! -z $UNIQUE_USID ] && [ $UNIQUE_USID == "false" ] ;then
command="$command -o";
fi;
fi;
if [ $globalVar == "true" ] ;then
echo "useradd $command $__NAME__";
useradd $command $__NAME__;
if [ $? -eq 0 ]; then echo "SUCCESS";
if [ ! -z "$COMMENTS" ] ; then echo "usermod -c \""$COMMENTS"\" $__NAME__";
usermod -c "$COMMENTS" $__NAME__;
fi;
fi;
fi;
fi;
unset bar COMMENTS HOME_DIR PGROUP grp EXP_DATE SKEL_DIR UNIQUE_USID __NAME__ __UID__ CREATE_HOME_DIR;
unset USER_SHELL USID CREATE_USER_GROUP INACTIVE SECONDARYGROUP command globalVar name;
unset defaultHomeBaseDir homedir checkHomeBaseDir grp defaultPriGroup;
C.2 Updated Sample Script
This is the CreateNativeUser.txt script that has been updated to include the newly added __GID__ attribute. The updated lines are represented in bold font.
if [ ! -z "$__UID__" ] ;then
__NAME__=$__UID__;
else
__NAME__=$__NAME__;
fi;
if id $__NAME__ > /dev/null 2>&1 ;then
echo "User already exists";
else
globalVar="true";
if [ ! -z $SECONDARYGROUP ] ;then
command="$command -G $SECONDARYGROUP";
fi;
homedir="";
if [ ! -z $HOME_DIR ] ;then
homedir=$HOME_DIR;
else
if [ ! -z $defaultHomeBaseDir ] ;then
homedir=$defaultHomeBaseDir;
fi;
fi;
if [ ! -z $homedir ] ;then
checkHomeBaseDir=$(test -d $homedir && echo "true" || echo "false");
if [ $checkHomeBaseDir == "true" ]; then
command="$command -d $homedir/$__NAME__";
else
globalVar="false";
echo "useradd: cannot create directory $homedir/$__NAME__";
fi;
fi;
if [ ! -z $EXP_DATE ] ;then
command="$command -e $EXP_DATE";
fi;
if [ ! -z $INACTIVE ] ;then
command="$command -f $INACTIVE";
fi;
if [ ! -z $PGROUP ] ;then
grp=$PGROUP;
else
if [ ! -z $defaultPriGroup ] ;then
grp=$defaultPriGroup;
fi;
fi;
if [ ! -z $grp ] ;then
getent group $grp;
if [ $? -ne 0 ] ;then
echo "PGROUP=$grp";
echo "Invalid primary group :- $grp";
globalVar="false";
else
command="$command -g $grp";
fi;
fi;
if [ ! -z $CREATE_HOME_DIR ] && [ $CREATE_HOME_DIR == "true" ] ;then
command="$command -m";
if [ ! -z $SKEL_DIR ] ;then
command="$command -k $SKEL_DIR";
fi;
fi;
if [ ! -z $CREATE_USER_GROUP ] && [ $CREATE_USER_GROUP == "false" ] ;then
command="$command -n";
fi;
if [ ! -z $USER_SHELL ] ;then
command="$command -s $USER_SHELL";
else
if [ ! -z $defaultShell ] ;then
command="$command -s $defaultShell";
fi;
fi;
if [ ! -z $USID ] && [ $USID -gt 0 ] ;then
command="$command -u $USID";
if [ ! -z $UNIQUE_USID ] && [ $UNIQUE_USID == "false" ] ;then
command="$command -o";
fi;
fi;
if [ ! -z $__GID__ ] ;then
command="$command -g $__GID__";
fi;
if [ $globalVar == "true" ] ;then
echo "useradd $command $__NAME__";
useradd $command $__NAME__;
if [ $? -eq 0 ]; then echo "SUCCESS";
if [ ! -z "$COMMENTS" ] ; then echo "usermod -c \""$COMMENTS"\" $__NAME__";
usermod -c "$COMMENTS" $__NAME__;
fi;
fi;
fi;
fi;
unset bar COMMENTS HOME_DIR PGROUP grp EXP_DATE SKEL_DIR UNIQUE_USID __NAME__ __UID__ CREATE_HOME_DIR;
unset USER_SHELL USID CREATE_USER_GROUP INACTIVE SECONDARYGROUP command globalVar name;
unset defaultHomeBaseDir homedir checkHomeBaseDir grp defaultPriGroup __GID__;