]> git.treefish.org Git - fex.git/blobdiff - install
Original release 20160104
[fex.git] / install
diff --git a/install b/install
index a34adf1bc53f977ca81870595048c18e8aabb16c..87dc2feffb7fbbf1931025d4e5e369640c5c90b1 100755 (executable)
--- a/install
+++ b/install
@@ -7,6 +7,8 @@ use Socket;
 use IO::Socket::INET;
 use Digest::MD5        'md5_hex';
 
 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";
 $ENV{PATH} .= ':/sbin:/usr/sbin';
 
 $usage = "usage: $0 [-p port] [IP-address]\n";
@@ -121,7 +123,14 @@ print "prerequisites checked, ok\n";
 
 unless (getpwnam('fex')) {
   print "creating user fex\n";
 
 unless (getpwnam('fex')) {
   print "creating user fex\n";
-  system 'useradd -s /bin/bash -c "File EXchange" -m fex';
+  system 'groupadd -g 80 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 $?;
 }
 
   exit $? if $?;
 }
 
@@ -211,6 +220,10 @@ if (-d "$FEXHOME/spool") {
   mkdir "$FEXHOME/spool",0700 or die "cannot mkdir $FEXHOME/spool - $!\n";
   mkdir "$FEXHOME/spool/.error",0700;
 }
   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?
 chownr('fex',"$FEXHOME/spool/.");
 
 # fex-VM?
@@ -314,6 +327,7 @@ if (@locales = glob "locale/*/lib/fup.pl") {
       chownr('fex',"$FEXHOME/locale/$locale");
       $hl = "$FEXHOME/htdocs/locale/$locale";
       symlink "$FEXHOME/locale/$locale/htdocs",$hl unless -l $hl;
       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";
     }
     } else { 
       push @nlocales,"./install $1\n";
     }
@@ -391,12 +405,12 @@ unless (-f $xinetd) {
 
 if (@local_rdomains and not @local_rhosts) {
   print "\nWARNING:\n";
 
 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";
 }
 
   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";
     `grep trusted_users /etc/exim4/exim4.conf 2>/dev/null` !~ /\bfex\b/) {
   print "\nWARNING:\n";
   print "$sendmail is exim\n";