| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #!/bin/sh
- #----------------------
- # Initialize variables
- #----------------------
- dist="$1"
- uid="$2"
- gid="$3"
- rc=0
- #-------------------------------------
- # Check if the specified group exists
- #-------------------------------------
- group_exists(){
- case $dist in
- osx) rc=`dscl . -read /Groups/$gid >/dev/null 2>&1; echo $?` ;;
- hpux) rc=`grget -n $gid >/dev/null 2>&1; echo $?` ;;
- aix) rc=`lsgroup -a $gid >/dev/null 2>&1; echo $?` ;;
- *) rc=`getent group $gid > /dev/null 2>&1; echo $?` ;;
- esac
- echo $rc
- }
- #------------------------
- # Add the specified user
- #------------------------
- add_user(){
- rc=`id "$uid" > /dev/null 2>&1; echo $?`
- if test $rc -eq 0; then
- echo "User $uid already exists" > /dev/stderr
- echo 0
- return
- fi
- case $dist in
- aix)
- echo useradd -g $gid $uid > /dev/stderr
- rc=`useradd -g $gid $uid; echo $?`
- ;;
- hpux|solaris)
- echo useradd -m -g $gid $uid > /dev/stderr
- rc=`useradd -m -g $gid $uid; echo $?`
- ;;
- osx)
- newid=`dscl . -list /Users UniqueID | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
- newid=`expr 1 + $newid`
- echo dscl . -create /Users/$uid > /dev/stderr
- dscl . -create /Users/$uid
- echo dscl . -create /Users/$uid UniqueID $newid > /dev/stderr
- dscl . -create /Users/$uid UniqueID $newid
- echo dscl . -create /Users/$uid UserShell /usr/bin/false > /dev/stderr
- dscl . -create /Users/$uid UserShell /usr/bin/false
- echo dscl . -create /Users/$uid PrimaryGroupID 20 > /dev/stderr
- dscl . -create /Users/$uid PrimaryGroupID 20
- echo dscl . -append /Groups/$gid GroupMembership $uid > /dev/stderr
- rc=`dscl . -append /Groups/$gid GroupMembership $uid; echo $?`
- ;;
- freebsd)
- echo pw add user $uid -g $gid -s /usr/bin/false > /dev/stderr
- rc=`pw add user $uid -g $gid -s /usr/bin/false; echo $?`
- ;;
- netbsd)
- echo useradd -g $gid $uid > /dev/stderr
- rc=`useradd -g $gid $uid; echo $?`
- ;;
- *)
- echo useradd -r -g $gid $uid > /dev/stderr
- rc=`useradd -r -g $gid $uid; echo $?`
- ;;
- esac
- echo $rc
- }
- #-------------------------
- # Add the specified group
- #-------------------------
- add_group(){
- rc=`group_exists`
- if test $rc -eq 0; then
- echo "Group $gid already exists" > /dev/stderr
- echo 0
- return
- fi
- case $dist in
- aix)
- echo mkgroup $gid > /dev/stderr
- rc=`mkgroup "$gid"; echo $?`
- ;;
- hpux|solaris)
- echo groupadd $gid > /dev/stderr
- rc=`groupadd "$gid"; echo $?`
- ;;
- osx)
- newid=`dscl . -list /Groups gid | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
- newid=`expr 1 + $newid`
- echo dscl . -create /Groups/$gid gid $newid > /dev/stderr
- rc=`dscl . -create /Groups/$gid gid $newid; echo $?`
- ;;
- freebsd)
- echo pw add group $gid > /dev/stderr
- rc=`pw add group $gid; echo $?`
- ;;
- netbsd)
- echo groupadd $gid > /dev/stderr
- rc=`groupadd $gid; echo $?`
- ;;
- *)
- echo groupadd -r $gid > /dev/stderr
- rc=`groupadd -r $gid; echo $?`
- ;;
- esac
- echo $rc
- }
- rc=`add_group`
- if test $rc -ne 0; then
- exit 1;
- fi
- rc=`add_user`
- exit $rc
|