#!/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 = ; 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 = ){ 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.";