Perl help while ($httpd_file =~

I could use a hand with this script. I need to add an if to be sure I dont overwrite an existing home2 user. Here is what I have so far.


!/usr/bin/perl

my $httpd_conf = '/etc/httpd/conf/httpd.conf';
my $home_dir = 'home2';

my $httpd_file = '';
open(HTTPD, "<$httpd_conf");
{
local $/ = undef;
$httpd_file = <HTTPD>;
}
close(HTTPD);


while ($httpd_file =~ m/\n\s*<VirtualHost(.+?)<\/VirtualHost>\s*\n/sig) {
my $data = $1;

my $document_root = $1 if $data =~ /^DocumentRoot (\/$home_dir.*)$/m;
if ($document_root) {
my $user = $1 if $data =~ /^User (.*)$/m;
print("$user - $document_root\n");
system("mkdir /$home_dir/$user");
system("chmod 711 /$home_dir/$user");
system("chown $user /$home_dir/$user");
system("chgrp $user /$home_dir/$user");

system("touch /$home_dir/$user/.contactemail");
system("chmod 644 /$home_dir/$user/.contactemail");
system("chown $user /$home_dir/$user/.contactemail");
system("chgrp $user /$home_dir/$user/.contactemail");

system("mkdir /$home_dir/$user/mail");
system("chmod 755 /$home_dir/$user/mail");
system("chown $user /$home_dir/$user/mail");
system("chgrp mail /$home_dir/$user/mail");

system("mkdir /$home_dir/$user/public_ftp");
system("chmod 755 /$home_dir/$user/public_ftp");
system("chown $user /$home_dir/$user/public_ftp");
system("chgrp $user /$home_dir/$user/public_ftp");

 

 

 

 

Top