Guest User

BUGA: the Bulk User and Group Adder

a guest
May 3rd, 2012
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. # Arguments check, should only be one argument,
  4. # and that argument needs to be a valid file in the current
  5. # directory.
  6.  
  7. argcount=$#
  8.  
  9. if [ $argcount -ne 1 ]
  10. then
  11.         echo "This script requires root or sudo access, and requires one argument."
  12.         echo "That argument must be a valid file in the current directory in the format:"
  13.         echo -e "\ngroupname:comma,separated,list,of,members\n\nONE GROUP PER LINE."
  14. else
  15.         if [ -f $1 ]
  16.         then
  17.                 # root access check
  18.                 if [ `whoami` != "root" ]
  19.                 then
  20.                         echo -e "You should run this script as root (sudo will also work)."
  21.                 else
  22.                         for line in `cat bugalist`
  23.                         do
  24.                                 echo "==========="
  25.                                 echo -e "Processing Line:\n$line"
  26.                                 echo "==========="
  27.                                 group=`echo $line | awk -F: '{ print $1}'`
  28.                                 members=`echo $line | awk -F: '{ print $2}'`
  29.                                 if grep -q ^$group: /etc/group
  30.                                 then
  31.                                         echo -e "\tGroup '$group' already exists."
  32.                                 else
  33.                                         echo -e "\tCreating group '$group' ..."
  34.                                         groupadd $group
  35.                                 fi
  36.                                 echo -e "\t\tMembers: $members"
  37.                                 for member in `echo $members | sed 's/,/ /g'`
  38.                                 do
  39.                                         if grep -q ^$member: /etc/passwd
  40.                                         then
  41.                                                 echo -e "\t\t\tUser '$member' already exists."
  42.                                         else
  43.                                                 echo -e "\t\t\tCreating user '$member' ..."
  44.                                                 useradd $member
  45.                                                 # create random 8 character password
  46.                                                 password=`</dev/urandom tr -dc A-Za-z0-9 | head -c 8`
  47.                                                 echo "$member:$password" | chpasswd
  48.                                                 echo -e "\t\t\tPassword for user '$member' set to: $password"
  49.                                         fi
  50.                                         if `groups $member | grep -q $group`
  51.                                         then
  52.                                                 echo -e "\t\t\tUser '$member' is already a member of '$group'."
  53.                                         else
  54.                                                 echo -e "\t\t\tAdding user '$member' to group '$group' ..."
  55.                                                 usermod -aG $group $member
  56.                                         fi
  57.                                         syscheck=`id $member`; echo -e "\t\t\t$syscheck"; echo ""
  58.                                 done
  59.                         done
  60.                 fi
  61.         else
  62.                 echo "$1 does not exist."
  63.         fi
  64. fi
Advertisement
Add Comment
Please, Sign In to add comment