File: //ibin/eloop.pl
#!/usr/bin/perl
#use strict;
# set array to 1 instead of 0
$[ = 1;
my ($field_sep, @argv, $file, @f);
$field_sep = "#"; # tab
#$field_sep = "\t"; # tab
@argv = @ARGV; # put all command line arg in @argv
$file = pop(@ARGV); # use the last argv as the file
if ($file eq "") {
$file = "email.txt";
}
# -----< Expecting $f[1] to be user id
# -----< Expecting $f[2] to be domain name
# -----< Expecting $f[3] to be password
open(FILE,"$file") or die $!;
while(<FILE>) {
chomp;
@f = split(/$field_sep/);
if (!$f[1]) {
print "ELoop Error-> No Field\n";
exit
}
$crypt = encrypt($f[3]);
user_setup();
}
close(FILE);
sub encrypt {
@range=('0'..'9','a'..'z','A'..'Z');
srand($$|time);
$seed=$range[rand(int($#range)+1)] . $range[rand(int($#range)+1)];
return( crypt($_[0],$seed));
}
sub user_setup{
($dir_result) = system("mkdir -p /home/mail/$f[2]/$f[1]");
($adduser_result) = system("/usr/sbin/adduser $f[1] -c $f[2] -p $crypt -d /home/mail/$f[2]/$f[1] -s /bin/false");
system("echo $f[1]\@$f[2]\t\t$f[1]\>\> /root/popinfo/alias\n");
if ( $adduser_result eq "0" ) {
# print "ELoop -> User Added, no problem - $adduser_result\n";
} else {
print "ELoop Error-> $adduser_result -- System ->\n";
}
#if ( $dir_result eq "0" ) {
# print "Directory Made, no problem - $dir_result\n";
#} else {
# print "Directory Error - $dir_result\n";
#}
# Debug Lines Below
# print "mkdir /home/mail/$f[2]/$f[1]";
# print "adduser $f[1] -c $f[2] -p $crypt -d /home/mail/$f[2]/$f[1] -s /bin/false";
# Info Lines Below
# print "Adding User $f[1]\@$f[2]\n";
# print system("echo $f[1]\@$f[2]\t\t$f[1] >> /root/popinfo/alias\n");
}
#pico /root/popinfo/alias