#!/usr/bin/perl 
#
# Author: Peter Keel <killer@discordia.ch>
# Generates loads of accounts of a certain type.
#

$uid=2175;		  # starting User-ID
$gid=5000;		  # Group-ID of the lot

open(FILE1,"<names.in"); 	# this is where it takes the names from
open (FILE2, ">shadow");  	# the new shadow-file
open (FILE3, ">passwd");  	# the new passwd-file
open (FILE4, ">names.out");	# here it puts usernames and cleartext-pwds.

srand(time ^ $$);

while (<FILE1>) {
    $loginname=$_;
    chop $loginname;
    (@passset, $rnd_passwd, $randum_num);
    ($randum_num);
    @passset = ('a'..'k', 'm'..'n', 'p'..'z', '2'..'9');
    $rnd_passwd = "";
    for ($i = 0; $i < 8; $i++) {
        $randum_num = int(rand($#passset + 1));
        $rnd_passwd .= @passset[$randum_num];
    }
    $passwort=$rnd_passwd;
    $pass = crypt("$passwort","$loginname");
    print FILE2 "$loginname:$pass:100000:0:100000::::\n";
    print FILE3 "$loginname:*:$uid:$gid:Account $uid:/tmp:/bin/nologin\n";
    print FILE4 "$loginname:$passwort\n";
    $uid++;
};

close(FILE1);
close(FILE2);
close(FILE3);
close(FILE4); 
