rlm@1: #!/bin/bash rlm@1: # Copyright (c) 2000,2004 Matthias S. Benkmann
rlm@1: # You may do everything with this code except misrepresent its origin. rlm@1: # PROVIDED `AS IS' WITH ABSOLUTELY NO WARRANTY OF ANY KIND! rlm@1: rlm@1: # rlm@1: # This is a primitive script to serve as useradd until the real useradd rlm@1: # has been installed. It has little error checking, so don't pass it anything rlm@1: # stupid or it'll mess up your /etc/passwd and/or /etc/group file. rlm@1: # rlm@1: rlm@1: if [ $# -ne 13 -o z$1 != z-c -o z$3 != z-d -o z$5 != z-g -o z$7 != z-G -o z$9 != z-s -o z${11} != z-u ]; then rlm@1: echo 1>&2 USAGE: useradd -c description -d home -g maingroup -G addgroup -s shell -u uid login rlm@1: exit 1 rlm@1: fi rlm@1: rlm@1: #test if user already exists rlm@1: grep "^${13}:.*" /etc/passwd rlm@1: if [ $? -eq 0 ]; then rlm@1: echo 1>&2 $0: User does already exist rlm@1: exit 1 rlm@1: fi rlm@1: rlm@1: g=`grep ^${6}:.\* /etc/group | cut -d : -f 3 -` rlm@1: if [ z${g} = z ]; then rlm@1: echo 1>&2 $0: Group ${6} does not exist! rlm@1: exit 1 rlm@1: fi rlm@1: rlm@1: grep ^${8}:.\* /etc/group >/dev/null || \ rlm@1: { rlm@1: echo 1>&2 $0: Group ${8} does not exist! rlm@1: exit 1 rlm@1: } rlm@1: rlm@1: rlm@1: cp /etc/passwd /tmp/passwd123456 rlm@1: echo "${13}:x:${12}:$g:$2:$4:${10}" \ rlm@1: | sort -t : -k3,3n -m /tmp/passwd123456 - > /etc/passwd rlm@1: rlm@1: rlm@1: cp /etc/group /tmp/group123456 rlm@1: sed -e 's/^\('"${8}"':[^:]*:[0-9]*:..*\)$/\1,'"${13}"'/' \ rlm@1: -e 's/^\('"${8}"':[^:]*:[0-9]*\):$/\1:'"${13}"'/' \ rlm@1: /tmp/group123456 >/etc/group