diff options
Diffstat (limited to 'release/scripts/adduser.sh')
| -rwxr-xr-x | release/scripts/adduser.sh | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/release/scripts/adduser.sh b/release/scripts/adduser.sh deleted file mode 100755 index 3e7d92cace1c..000000000000 --- a/release/scripts/adduser.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/stand/sh -# -# Written: November 6th, 1994 -# Copyright (C) 1994 by Michael Reifenberger -# -# Permission to copy or use this software for any purpose is granted -# provided that this message stay intact, and at this location (e.g. no -# putting your name on top after doing something trivial like reindenting -# it, just to make it look like you wrote it!). - -######################## -# First set some globals -startuid=1000; -startgid=1000; -gname=guest -uname=guest -shell="/bin/csh" -needgentry="NO" - -. /stand/scripts/miscfuncs.sh - -######################### -# Some Functions we need. -# -########################### -# Show the User all options -usage() { -message " -adduser -h Prints help -adduser -i For interactively adding users - -Command line options: -adduser [-u UserName][-g GroupName][-s Shell]" - exit 1 -} -########################## -# Get the next free UserID -getuid() { -local xx=$startuid; -uid=$startuid; -for i in `cut -f 3 -d : /etc/master.passwd | cut -c 2- | sort -n`; do - if [ $i -lt $xx ]; then - elif [ $i -eq $xx ]; then xx=`expr $xx + 1` - else uid=$xx; return 0 - fi -done -} -####################################################### -# Get the next free GroupID or the GroupID of GroupName -getgid() { -local xx=$startgid; -gid=$startgid; -needgentry="YES" -if grep -q \^$gname: /etc/group; then - gid=`grep \^$gname: /etc/group | cut -f 3 -d:` - needgentry="NO" -else - for i in `cut -f 3 -d : /etc/group | cut -c 2- | sort -n`; do - if [ $i -lt $xx ]; then - elif [ $i -eq $xx ]; then xx=`expr $xx + 1` - else gid=$xx; return 0 - fi - done -fi -} -########################################## -# Ask the User interactively what he wants -interact() { -dialog --title "Add New User Name" --clear \ ---inputbox "Please specify a login name for the user:\n\ -Hit [return] for a default of <$uname>" -1 -1 2> /tmp/i.$$ -ret=$? -case $ret in - 0) - if [ x`cat /tmp/i.$$` != x ]; then - uname=`cat /tmp/i.$$`; fi;; - 1|255) - exit 1;; -esac -if grep -q \^$uname: /etc/master.passwd; then - error "Username $uname already exists." - exit 1 -fi -dialog --title "Group Name" --clear \ ---inputbox "Which group should $uname belong to?\n\ -Hit [return] for default of <$gname>" -1 -1 2> /tmp/i.$$ -ret=$? -case $ret in - 0) - if [ x`cat /tmp/i.$$` != x ]; then - gname=`cat /tmp/i.$$`; fi;; - 1|255) - exit 1;; -esac -dialog --title "Login Shell" --clear \ ---inputbox "Please specify which login shell\n<$uname> should use\n\ -Hit [return] for default of <$shell>" -1 -1 2> /tmp/i.$$ -ret=$? -case $ret in - 0) - if [ x`cat /tmp/i.$$` != x ]; then - shell=`cat /tmp/i.$$`; fi;; - 1|255) - exit 1;; -esac -############## -# Remove junk -rm -f /tmp/i.$$ -} - -######### -# START # -######### - -################################### -# Parse the commandline for options -set -- `getopt hiu:g:s: $*` -if [ $? != 0 ]; then - usage -fi -for i; do - case "$i" - in - -h) - usage; shift;; - -i) - interact; shift; iflag=yes; break;; - -u) - uname=$2; shift; shift;; - -g) - gname=$2; shift; shift;; - -s) - shell=$2; shift; shift;; - --) - shift; break;; -# *) -# usage; shift;; - esac -done -##################### -# This is no Edituser -if grep -q \^$uname: /etc/master.passwd; then - error "This user already exists in the master password file.\n -Use 'chpass' to edit an existing user rather than adduser.." - exit 1; -fi - -############### -# Get Free ID's -getuid; -getgid; -################### -# Only if necessary -if [ $needgentry = "YES" ]; then - echo "$gname:*:$gid:$uname" >> /etc/group -fi -################ -# Make /home BTW -mkdir -p -m755 /home/$uname -if [ ! -d /home/$uname ]; then - error "Could not create /home/$uname" - exit 1 -else - for xx in /usr/share/skel/*; do - cp $xx /home/$uname/.`basename $xx | cut -f 2 -d .` - done -fi -##################### -# Make the User happy -if [ ! -x $shell ]; then - message "There is no <$shell> shell, using /bin/sh instead.\n - If you wish, you can change this choice later with 'chpass'" - shell="/bin/csh" -elif ! grep -q $shell /etc/shells; then - echo $shell >> /etc/shells - echo "<$shell> added to /etc/shells" -fi -echo "$uname:*:$uid:$gid::0:0:User &:/home/$uname:$shell" >> /etc/master.passwd -pwd_mkdb /etc/master.passwd -chown -R $uname.$gname /home/$uname -chmod -R 644 /home/$uname -chmod 755 /home/$uname -passwd $uname |
