54 lines
1.9 KiB
Perl
Executable file
54 lines
1.9 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
# SQL STATEMENT:
|
|
# create table MAILUSER (id integer autoincrement primary key,login varchar (20), pwd varchar(50), uid integer autoincrement, gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50));
|
|
# cat import-email.sql | sqlite consiag.db
|
|
|
|
if (@ARGV[0] eq ""){
|
|
print "Usage: ";\
|
|
print "$0 masterpwd_db_file\n";
|
|
exit 5 ;
|
|
}
|
|
|
|
|
|
$defgid = "2000";
|
|
$defshell = "/sbin/nologin";
|
|
|
|
print "\n";
|
|
print "Ready to generate sql file for : @ARGV[0] \n";
|
|
print "\n";
|
|
print "\n";
|
|
|
|
print "Domain name []: ";
|
|
$domain_name = <STDIN>;
|
|
chomp($domain_name);
|
|
if ($domain_name eq "") { die "Domain name is mandatory ! Exiting ... \n";}
|
|
print "Default min uid ? [1001]\n";
|
|
print "Default user group ? [2000]\n";
|
|
print "Default user shell ? [/sbin/nologin]\n";
|
|
print "\n";
|
|
print "Press any key to continue or Ctrl+C to abort: [Return]";
|
|
$key = getc(STDIN);
|
|
print "\n";
|
|
|
|
open (IN, "<@ARGV[0]") or die "Error opening @ARGV[0]" ;
|
|
open (OUT, ">import-email-$domain_name.sql");
|
|
|
|
print OUT "drop table mailuser;\n";
|
|
print OUT "create table mailuser (uid integer autoincrement primary key,login varchar(20), pwd varchar(50), gid varchar(6), email varchar(50), home varchar(30), shell varchar(20), domain varchar(50));\n";
|
|
print OUT "insert into mailuser (uid,login) values (\'1999',\'removeme\');\n";
|
|
|
|
while ($line = <IN>){
|
|
chomp $line;
|
|
($login,$pwd,$uid,$gid,$dummy1,$dummy2,$dummy3,$email,$home,$shell) = split (":",$line);
|
|
if ( ($uid >= "1002" && $uid <= "65533") && substr($line,0,1) == "#" ){
|
|
($part1,$domain) = split ("@",$email);
|
|
print "converting $uid:$login:$email\n";
|
|
print OUT "insert into mailuser (login,pwd,gid,email,home,shell,domain) VALUES ".
|
|
"(\'$login\',\'$pwd\',\'$defgid\',\'$login\@$domain_name\',\'$home\',\'$shell\',\'$domain_name\');\n";
|
|
}
|
|
}
|
|
|
|
print OUT "delete from mailuser where uid = '1999';\n";
|
|
|
|
print "\n";
|
|
print "The file: import-email-$domain_name.sql is ready to be imported or edited.";
|