adduser.sh


#!/bin/sh 
####################################################### 
# 
# adduser.sh -- add a user for local admin 
# 
####################################################### 
# VARIABLES 
PROFILE=/usr/bin/amp/profile 
PWFILE=/etc/passwd 
TPWD=/tmp/tpwd.$$ 
USERID="" 
NAME="" 
HOMEDIR="" 
SH="" 
GID="" 
 
# Get the next uid from the passwd file 
nextuid() { 
  LASTUID=`sort -t ":" -n +2 $PWFILE | tail -1 | cut -d":" -f3` 
  NEXTUID=`expr $LASTUID \+ 1` 
} 
 
# Mainline 
 
# Get User login ID  
while [ -z "$USERID" ] 
do  
  clear  
  echo "\nPlease enter the new user information below."      
  echo "USERID: \c" 
  read USERID 
  if grep "^${USERID}:" $PWFILE >/dev/null 
  then 
    echo "\n\"$USERID\" is already in $PWFILE!" 
    sleep 3 
    USERID="" 
  fi 
done 
 
# Get name and info  
while [ -z "$NAME" ] 
do 
   echo "Enter name, address info: \c" 
   read NAME 
done 
 
# Get home directory 
while [ -z "$HOMEDIR" ] 
do 
   echo "Home directory: \c" 
   read HOMEDIR 
done 
 
# Get the startup shell; defaults to /bin/sh 
echo "Enter startup shell [/bin/sh] : \c" 
read SHL 
[ -z "$SHL" ] && SH="/bin/sh" 
 
# Get next uid for default then get uid 
nextuid  
echo "Enter UID [default = $NEXTUID]: \c" 
read UID 
[ -z "$UID" ] && UID=$NEXTUID 
 
# Get group ID 
while [ -z "$GID" ] 
do 
  echo "Enter group id NUMBER: \c" 
  read GID 
done 
 
 
cat << EOF 
 
*** "USERID" is about to be added. *** 
Login name	$USERID 
UID		$UID 
Group ID	$GID 
Description 	$NAME 
Home Directory	$HOMEDIR 
Shell Command	$SH 
 
EOF 
 
echo "Is it OK to continue? [(y/n) y] \c" 
read ANSWER 
case $ANSWER in 
   n*|N*) 
      echo "\nExiting...\c" 
      sleep 1 
      exit 0 
      ;; 
esac 
 
STRING=$USERID:*:$UID:$GID:$NAME:$HOMEDIR:$SH 
if cp $PWFILE $TPWD       
then 
  echo "$STRING" >> $TPWD       
  echo "\nNow set ${USERID}'s default password..."  
  NOPASSWD=true 
  while [ "$NOPASSWD" = "true" ] 
  do 
     if /bin/passwd -f $TPWD $USERID 
     then 
       echo "OK" 
       NOPASSWD=false 
     fi 
  done 
 
  mv $TPWD $PWFILE && chmod 444 $PWFILE 
  if [ -d $HOMEDIR ] 
  then 
    echo "$HOMEDIR already exists." 
  else 
    mkdir -p $HOMEDIR 
    chown $UID $HOMEDIR 
    chgrp $GID $HOMEDIR 
  fi 
  if [ -r $PROFILE ] 
  then 
    cp $PROFILE $HOMEDIR/.profile 
    chown $UID $HOMEDIR/.profile 
    chgrp $GID $HOMEDIR/.profile 
  fi 
fi 
 
sleep 3 
 
 
 

