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 |