View difference between Paste ID: yL2pvayv and v9k27RSA
SHOW: | | - or go back to the newest paste.
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`
22+
                        for line in `cat $1`
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