#!/usr/bin/perl -w #written by Nick (see http://illx.org for more details) #some definitions my $manager = 'mhejduk'; my $group = 'production'; my $prefix = '/home/production'; #our users, and their full names in a hash my %users = ('emessier','Eric Messier', 'mhejduk','Milan Hejduk', 'proy','Patrick Roy', 'sparker','Scott Parker', 'spodein','Shjon Podein', 'sreinprecht','Steven Reinprecht', 'syelle','Stephane Yelle'); #Creating the group $group print "Creating the group $group:"; sleep 1; print `/usr/sbin/groupadd $group`; #create the group $group print " done\n"; #making directories print "Creating the directory $prefix:"; mkdir($prefix,0777); chmod 0770, "$prefix"; print " done\n"; #making more directories print "Creating the directory $prefix/share:"; mkdir("$prefix/share",0777); chmod 0770, "$prefix/share"; print " done\n"; print "\n"; #adding the users print "Adding the users:\n"; my $count = 500; foreach my $username (sort(keys %users)) { print " Adding user $username:"; print `/usr/sbin/useradd -u $count -g $group -d $prefix/$username -s /bin/bash -c \"$users{$username}\" -m -k /etc/skel $username`; print " done"; print "\t chmod'ing $username\'s home to 700\n"; chmod 0700, "$prefix/$username"; #so the user can log in, and just 'cd share' to get to share print " Adding a symlink in $username\'s home to share\n"; print `/bin/ln -s $prefix/share $prefix/$username/share`; $count++; } print "\n"; #after we have added the users, we need to set their passwords $pass = 'password'; $cpass = crypt($pass, $pass); open(S, '/etc/shadow') or die "can't open /etc/shadow: $!\n"; my @shadow=; close(S); open(OUT, ">/tmp/test$$") or die "can't open /tmp/test$$: $!\n"; foreach my $entry (@shadow) { my @line = split(/:/, $entry); if(exists $users{$line[0]}) { print "Changing password for $line[0]\n"; $line[1] = $cpass; print OUT join(':', @line); } else { print OUT $entry; } } close(OUT); print `/bin/mv /tmp/test$$ /etc/shadow`; chown(0,42, '/etc/shadow') == 1 or die "can't chown /etc/shadow: $!\n"; chmod 0640, "/etc/shadow"; print "\n"; #now, after we have added the users, we can change some ownerships print "Changing ownership of $prefix and $prefix/share\nto $manager:$group\n"; my @files = ($prefix,"$prefix/share"); chown((getpwnam($manager))[2,3], @files) == @files or die "can't chown @files: $!\n";