use IO::Socket::INET;
use Digest::MD5 'md5_hex';
+our (@local_rdomains,@local_rhosts);
+
$ENV{PATH} .= ':/sbin:/usr/sbin';
$usage = "usage: $0 [-p port] [IP-address]\n";
die "host $fex is not resolvable - check /etc/resolv.conf\n";
}
+# $fexupdate = '/root/bin/fexupdate';
+# die "found $fexupdate\n" if -x $fexupdate;
+
$opt_p = 80;
if (open $xinetd,$xinetd) {
}
}
close P;
- print "Your IP [$guessed_ip] : ";
- chomp($ip = <STDIN>);
+ unless (-f $xinetd) {
+ print "Your IP [$guessed_ip] : ";
+ chomp($ip = <STDIN>);
+ }
$ip ||= $guessed_ip;
}
unless (getpwnam('fex')) {
print "creating user fex\n";
- system 'useradd -s /bin/bash -c "File EXchange" -m fex';
+ system 'groupadd --system fex 2>/dev/null || groupadd fex';
+ my @g = getgrnam('fex') or die "$0: cannot groupadd fex\n";
+ my $gid = $g[2];
+ if (getpwuid($gid)) {
+ system "useradd -s /bin/bash -c 'File EXchange' -g $gid -m fex"
+ } else {
+ system "useradd -s /bin/bash -c 'File EXchange' -u $gid -g $gid -m fex"
+ }
exit $? if $?;
}
mkdir "$FEXHOME/spool",0700 or die "cannot mkdir $FEXHOME/spool - $!\n";
mkdir "$FEXHOME/spool/.error",0700;
}
+foreach my $dir (qw'.dkeys .ukeys .akeys .skeys .gkeys .xkeys .locks') {
+ mkdir "$FEXHOME/spool/$dir",0700;
+}
+
chownr('fex',"$FEXHOME/spool/.");
+# fex-VM?
+if (open my $setup,'/root/bin/setup') {
+ while (<$setup>) {
+ exit if /#.*X-VM/;
+ }
+ close $setup;
+}
+
system(qw'perl -p -i -e',
's:href="/?FAQ.html":href="/FAQ/FAQ.html":',
"$FEXHOME/lib/fup.pl"
eval $conf;
-die "no \$spooldir in $fph\n" unless $spooldir;
+# die "no \$spooldir in $fph\n" unless $spooldir;
+$spooldir ||= '/home/fex/spool';
die "\$spooldir=$spooldir is not a directory, see $fph\n" unless -d $spooldir;
symlink $spooldir,"$FEXHOME/spool" unless -e "$FEXHOME/spool";
@sds1 = stat "$spooldir/.";
last if $admin =~ /.\@./;
print "admin must be a valid email address!\n";
}
+ $aa = "$spooldir/$admin/@";
while (not $admin_pw) {
print "F*EX admin password: ";
$admin_pw = <STDIN>;
chownr('fex',"$FEXHOME/locale/$locale");
$hl = "$FEXHOME/htdocs/locale/$locale";
symlink "$FEXHOME/locale/$locale/htdocs",$hl unless -l $hl;
+ chownr('fex',"$FEXHOME/htdocs/locale/$locale");
} else {
push @nlocales,"./install $1\n";
}
if ($crontab !~ /fex_cleanup/) {
open $crontab,">fex.cron" or die "cannot create fex.cron - $!\n";
print {$crontab} $crontab,"\n";
+ print {$crontab} " 3 2 * * * exec $FEXHOME/bin/backup\n";
print {$crontab} " 3 3 * * * exec $FEXHOME/bin/fex_cleanup\n";
close $crontab;
- system qw(crontab -u fex fex.cron);
+ system qw'crontab -u fex fex.cron';
}
- chownr('fex:root',"$FEXHOME $FEXHOME/spool/.");
+ chownr('fex:root',$FEXHOME,"$FEXHOME/spool/.","$FEXHOME/htdocs/.");
chmodr('go-r',"$FEXHOME/lib","$FEXHOME/cgi-bin","$FEXHOME/spool/.");
print "\n";
"< $FEXHOME/doc/newfeatures\n";
}
+chmod 0755,"$FEXHOME/htdocs/locale";
+chmod 0755,glob("$FEXHOME/locale/*/htdocs");
+
if (@local_rdomains and not @local_rhosts) {
print "\nWARNING:\n";
- print "In $fph you have @local_rdomains but not @local_rhosts!\n";
+ print "In $fph you have \@local_rdomains but not \@local_rhosts!\n";
print "Selfregistrating of external users will not work!\n";
print "See ${fph}_new/\n";
}
-if (`$sendmail -h 2>&1` =~ /exim/ and
+if (`$sendmail -h 2>&1 </dev/null` =~ /exim/ and
`grep trusted_users /etc/exim4/exim4.conf 2>/dev/null` !~ /\bfex\b/) {
print "\nWARNING:\n";
print "$sendmail is exim\n";