X-Git-Url: https://git.treefish.org/fex.git/blobdiff_plain/e5c93609849bda051fff54b5d5265af5608c6c69..refs/heads/master:/install diff --git a/install b/install index 6f0bb62..c300815 100755 --- a/install +++ b/install @@ -25,6 +25,9 @@ if (system("host $fex >/dev/null") != 0) { 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) { @@ -123,7 +126,14 @@ print "prerequisites checked, ok\n"; 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 $?; } @@ -153,6 +163,12 @@ if ($FEXHOME !~ /fex/) { exit unless /^y/i; } +# old bug fix +if (-d "$FEXHOME/htdocs/locale") { + chmod 0755,"$FEXHOME/htdocs/locale"; + chmod 0755,grep { -d $_ } glob("$FEXHOME/locale/*/htdocs"); +} + print "Installing:\n"; $pecl = "$FEXHOME/perl/Encode/ConfigLocal.pm"; @@ -165,7 +181,7 @@ unless (-f $pecl) { "1;\n"; close $pecl; print $pecl,"\n"; - chownr('fex:root',"$FEXHOME/perl"); + chownr('fex:0',"$FEXHOME/perl"); } @save = ( @@ -213,6 +229,10 @@ if (-d "$FEXHOME/spool") { 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? @@ -316,6 +336,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/htdocs/locale/$locale"); } else { push @nlocales,"./install $1\n"; } @@ -373,7 +394,7 @@ unless (-f $xinetd) { system qw'crontab -u fex fex.cron'; } - chownr('fex:root',$FEXHOME,"$FEXHOME/spool/."); + chownr('fex:0',$FEXHOME,"$FEXHOME/spool/.","$FEXHOME/htdocs/."); chmodr('go-r',"$FEXHOME/lib","$FEXHOME/cgi-bin","$FEXHOME/spool/."); print "\n";