Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Arguments check, should only be one argument,
- # and that argument needs to be a valid file in the current
- # directory.
- argcount=$#
- if [ $argcount -ne 1 ]
- then
- echo "This script requires root or sudo access, and requires one argument."
- echo "That argument must be a valid file in the current directory in the format:"
- echo -e "\ngroupname:comma,separated,list,of,members\n\nONE GROUP PER LINE."
- else
- if [ -f $1 ]
- then
- # root access check
- if [ `whoami` != "root" ]
- then
- echo -e "You should run this script as root (sudo will also work)."
- else
- for line in `cat $1`
- do
- echo "==========="
- echo -e "Processing Line:\n$line"
- echo "==========="
- group=`echo $line | awk -F: '{ print $1}'`
- members=`echo $line | awk -F: '{ print $2}'`
- if grep -q ^$group: /etc/group
- then
- echo -e "\tGroup '$group' already exists."
- else
- echo -e "\tCreating group '$group' ..."
- groupadd $group
- fi
- echo -e "\t\tMembers: $members"
- for member in `echo $members | sed 's/,/ /g'`
- do
- if grep -q ^$member: /etc/passwd
- then
- echo -e "\t\t\tUser '$member' already exists."
- else
- echo -e "\t\t\tCreating user '$member' ..."
- useradd $member
- # create random 8 character password
- password=`</dev/urandom tr -dc A-Za-z0-9 | head -c 8`
- echo "$member:$password" | chpasswd
- echo -e "\t\t\tPassword for user '$member' set to: $password"
- fi
- if `groups $member | grep -q $group`
- then
- echo -e "\t\t\tUser '$member' is already a member of '$group'."
- else
- echo -e "\t\t\tAdding user '$member' to group '$group' ..."
- usermod -aG $group $member
- fi
- syscheck=`id $member`; echo -e "\t\t\t$syscheck"; echo ""
- done
- done
- fi
- else
- echo "$1 does not exist."
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment