File: create-users.pl

package info (click to toggle)
freeradius 1.0.2-4sarge3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 9,792 kB
  • ctags: 6,980
  • sloc: ansic: 52,618; sh: 9,731; php: 5,764; perl: 2,309; makefile: 1,056; sql: 730; python: 159; tcl: 33; sed: 23
file content (61 lines) | stat: -rwxr-xr-x 1,750 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl

# Purpose:  create lots of random users and passes
# for testing your radius server
# Read doc/README.testing for more information

$passfile = "./passwd";
$shadfile = "./shadow";
$radfile = "./radius.test";
$nocrypt = "./passwd.nocrypt";
$users = "./radius.users";

if($ARGV[0] eq "") {
	print "\n\tUsage:  $0  <number of users>\n\n";
	exit(1);
} else {
	$numusers = $ARGV[0];
}
$userlen = 6;
$passlen = 6;

open(PASS, ">$passfile") || die "Can't open $passfile";
open(SHAD, ">$shadfile") || die "Can't open $shadfile";
open(RAD, ">$radfile") || die "Can't open $radfile";
open(NOCRYPT, ">$nocrypt") || die "Can't open $nocrypt";
open(USERS, ">$users") || die "Can't open $users";

for ($num=0; $num<$numusers; $num++) {
	# generate username
	$username = "";
	for($i=0; $i<rand($userlen)+2; $i++) {
		do { ($char = chr((rand 25)+97))} until $char=~/[A-Za-z]/;
		$username .= $char;
	}
	# Make sure they're unique
	if(($userlist{$username}) || (getpwnam($username))) {
		$num--;
		next;
	}
	$userlist{$username} = 1;	
	
	# generate password
	$password = "";
	for($i=0; $i<rand($passlen)+2; $i++) {
		do { ($char = chr((rand 25)+97))} until $char=~/[A-Za-z]/;
		$password .= $char;
	}

	printf PASS "$username:%s:1001:1001:Name:/dev/null:/dev/null\n", crypt($password, $password);
	printf SHAD "$username:%s:1000:0:99999:7:::\n", crypt($password, $password);
	printf RAD  "User-Name=$username, User-Password=$password,NAS-IP-Address=127.0.0.1,NAS-Port-Id=0\n\n";
	print NOCRYPT "$username:$password\n";
	print USERS "$username  Auth-Type:=Local, User-Password==\"$password\"\n\tClass=\"0x$num\"\n\n";
} 
	
close(PASS);
close(SHAD);
close(RAD);
close(NOCRYPT);
close(USERS);
print "\nCreated $numusers random users and passwords\n\n";