From 34249adbad14608948a0bf1f881e7d718d9d4da1 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Fri, 16 Mar 2018 12:53:01 -0400 Subject: Bug 1446156 - mkdir template_cache: Permission denied --- Bugzilla/Template.pm | 2 ++ checksetup.pl | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index 7a97f6da2..ae4f9bbad 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -1074,6 +1074,8 @@ our %_templates_to_precompile; sub precompile_templates { my ($output) = @_; + return unless is_webserver_group(); + # Remove the compiled templates. my $cache_dir = bz_locations()->{'template_cache'}; my $datadir = bz_locations()->{'datadir'}; diff --git a/checksetup.pl b/checksetup.pl index 6cea8549d..d3f08e024 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -30,6 +30,7 @@ use Pod::Usage; # Bug 1270550 - Tie::Hash::NamedCapture must be loaded before Safe. use Tie::Hash::NamedCapture; use Safe; +use English qw(-no_match_vars $EUID $EGID); use Bugzilla::Constants; use Bugzilla::Install::Requirements; @@ -155,6 +156,16 @@ unless ($ENV{LOCALCONFIG_ENV}) { } my $lc_hash = Bugzilla->localconfig; +if ( $EUID == 0 && $lc_hash->{webservergroup} && !ON_WINDOWS ) { + # So checksetup was run as root, and we have a webserver group set. + # Let's assume the user wants us to make files that are writable + # by the webserver group. + + $EGID = getgrnam $lc_hash->{webservergroup}; ## no critic (Variables::RequireLocalizedPunctuationVars) + umask 002 + or die "failed to set umask 002: $!"; +} + unless ($switch{'no-database'}) { die "urlbase is not set\n" unless $lc_hash->{urlbase}; die "urlbase must end with slash\n" unless $lc_hash->{urlbase} =~ m{/$}ms; -- cgit v1.2.3-24-g4f1b