version 1.51, 2019/02/19 19:14:54
|
version 1.55, 2019/07/02 19:40:35
|
Line 166 sub get_user_selection {
|
Line 166 sub get_user_selection {
|
sub get_distro { |
sub get_distro { |
my ($distro,$gotprereqs,$updatecmd,$packagecmd,$installnow,$unknown); |
my ($distro,$gotprereqs,$updatecmd,$packagecmd,$installnow,$unknown); |
$packagecmd = '/bin/rpm -q LONCAPA-prerequisites '; |
$packagecmd = '/bin/rpm -q LONCAPA-prerequisites '; |
if (-e '/etc/redhat-release') { |
if (-e '/etc/oracle-release') { |
|
open(IN,'</etc/oracle-release'); |
|
my $versionstring=<IN>; |
|
chomp($versionstring); |
|
close(IN); |
|
if ($versionstring =~ /^Oracle Linux Server release (\d+)/) { |
|
my $version = $1; |
|
$distro = 'oracle'.$1; |
|
$updatecmd = 'yum install LONCAPA-prerequisites'; |
|
$installnow = 'yum -y install LONCAPA-prerequisites'; |
|
} |
|
} elsif (-e '/etc/redhat-release') { |
open(IN,'</etc/redhat-release'); |
open(IN,'</etc/redhat-release'); |
my $versionstring=<IN>; |
my $versionstring=<IN>; |
chomp($versionstring); |
chomp($versionstring); |
Line 196 sub get_distro {
|
Line 207 sub get_distro {
|
$distro = 'rhes'.$1; |
$distro = 'rhes'.$1; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
|
} elsif ($versionstring =~ /Red Hat Enterprise Linux release (\d+)/) { |
|
$distro = 'rhes'.$1; |
|
$updatecmd = 'dnf install LONCAPA-prerequisites'; |
|
$installnow = 'dnf -y install LONCAPA-prerequisites'; |
} elsif ($versionstring =~ /CentOS(?:| Linux) release (\d+)/) { |
} elsif ($versionstring =~ /CentOS(?:| Linux) release (\d+)/) { |
$distro = 'centos'.$1; |
$distro = 'centos'.$1; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
Line 308 sub get_distro {
|
Line 323 sub get_distro {
|
$unknown = 1; |
$unknown = 1; |
} |
} |
} else { |
} else { |
print &mt('Unknown installation: expecting a debian, ubuntu, suse, sles, redhat, fedora or scientific linux system.')."\n"; |
print &mt('Unknown installation: expecting a debian, ubuntu, suse, sles, redhat, fedora, scientific linux, or oracle linux system.')."\n"; |
} |
} |
} |
} |
return ($distro,$packagecmd,$updatecmd,$installnow); |
return ($distro,$packagecmd,$updatecmd,$installnow); |
Line 466 sub check_locale {
|
Line 481 sub check_locale {
|
'sudo update-locale LANG=en_US.UTF-8'; |
'sudo update-locale LANG=en_US.UTF-8'; |
} elsif ($distro =~ /^(suse|sles)/) { |
} elsif ($distro =~ /^(suse|sles)/) { |
$command = 'yast language'; |
$command = 'yast language'; |
} else { |
} elsif (-e '/usr/bin/system-config-language') { |
$command = 'system-config-language'; |
$command = 'system-config-language'; |
|
} elsif (-e '/usr/bin/localectl') { |
|
$command = 'localectl set-locale en_US.UTF-8'; |
|
} else { |
|
$command = 'No standard command found'; |
} |
} |
} |
} |
last; |
last; |
Line 739 sub chkconfig {
|
Line 758 sub chkconfig {
|
$uses_systemctl{'cups'} = 1; |
$uses_systemctl{'cups'} = 1; |
$daemon{'mysql'} = 'mariadb'; |
$daemon{'mysql'} = 'mariadb'; |
} |
} |
|
if ($version >= 8) { |
|
$daemon{'ntp'} = 'chronyd'; |
|
} |
} |
} |
my $nocheck; |
my $nocheck; |
if (! -x $checker_bin) { |
if (! -x $checker_bin) { |
Line 833 sub chkconfig {
|
Line 855 sub chkconfig {
|
|
|
sub uses_firewalld { |
sub uses_firewalld { |
my ($distro) = @_; |
my ($distro) = @_; |
my ($inuse, $checkfirewalld); |
my ($inuse,$checkfirewalld,$zone); |
if ($distro =~ /^(suse|sles)([\d\.]+)$/) { |
if ($distro =~ /^(suse|sles)([\d\.]+)$/) { |
if (($1 eq 'sles') && ($2 >= 15)) { |
if (($1 eq 'sles') && ($2 >= 15)) { |
$checkfirewalld = 1; |
$checkfirewalld = 1; |
Line 863 sub uses_firewalld {
|
Line 885 sub uses_firewalld {
|
} |
} |
if (($loaded eq 'loaded') || ($active eq 'active')) { |
if (($loaded eq 'loaded') || ($active eq 'active')) { |
$inuse = 1; |
$inuse = 1; |
|
my $cmd = 'firewall-cmd --get-default-zone'; |
|
if (open(PIPE,"$cmd |")) { |
|
my $result = <PIPE>; |
|
chomp($result); |
|
close(PIPE); |
|
if ($result =~ /^\w+$/) { |
|
$zone = $result; |
|
} |
|
} |
} |
} |
} |
} |
return $inuse; |
return ($inuse,$zone); |
} |
} |
|
|
sub chkfirewall { |
sub chkfirewall { |
Line 876 sub chkfirewall {
|
Line 907 sub chkfirewall {
|
https => 443, |
https => 443, |
); |
); |
my %activefw; |
my %activefw; |
if (&firewall_is_active()) { |
my ($firewalld,$zone) = &uses_firewalld($distro); |
if (&uses_firewalld($distro)) { |
if ($firewalld) { |
my %current; |
my %current; |
if (open(PIPE,'firewall-cmd --permanent --zone=public --list-services |')) { |
if (open(PIPE,'firewall-cmd --permanent --zone='.$zone.' --list-services |')) { |
my $svc = <PIPE>; |
my $svc = <PIPE>; |
close(PIPE); |
close(PIPE); |
chomp($svc); |
chomp($svc); |
map { $current{$_} = 1; } (split(/\s+/,$svc)); |
map { $current{$_} = 1; } (split(/\s+/,$svc)); |
} |
} |
if ($current{'http'} && $current{'https'}) { |
if ($current{'http'} && $current{'https'}) { |
$configfirewall = 0; |
$configfirewall = 0; |
} |
} |
} else { |
} else { |
|
if (&firewall_is_active()) { |
my $iptables = &get_pathto_iptables(); |
my $iptables = &get_pathto_iptables(); |
if ($iptables eq '') { |
if ($iptables eq '') { |
print &mt('Firewall not checked as path to iptables not determined.')."\n"; |
print &mt('Firewall not checked as path to iptables not determined.')."\n"; |
Line 910 sub chkfirewall {
|
Line 942 sub chkfirewall {
|
print &mt('Firewall not checked as iptables Chains not identified.')."\n"; |
print &mt('Firewall not checked as iptables Chains not identified.')."\n"; |
} |
} |
} |
} |
|
} else { |
|
print &mt('Firewall not enabled.')."\n"; |
} |
} |
} else { |
|
print &mt('Firewall not enabled.')."\n"; |
|
} |
} |
return ($configfirewall,\%activefw); |
return ($configfirewall,\%activefw); |
} |
} |
Line 2023 if ($callsub{'runlevels'}) {
|
Line 2055 if ($callsub{'runlevels'}) {
|
} |
} |
|
|
if ($callsub{'firewall'}) { |
if ($callsub{'firewall'}) { |
if (&uses_firewalld($distro)) { |
my ($firewalld,$zone) = &uses_firewalld($distro); |
|
if ($firewalld) { |
my (%current,%added); |
my (%current,%added); |
if (open(PIPE,'firewall-cmd --permanent --zone=public --list-services |')) { |
if (open(PIPE,"firewall-cmd --permanent --zone=$zone --list-services |")) { |
my $svc = <PIPE>; |
my $svc = <PIPE>; |
close(PIPE); |
close(PIPE); |
chomp($svc); |
chomp($svc); |
Line 2033 if ($callsub{'firewall'}) {
|
Line 2066 if ($callsub{'firewall'}) {
|
} |
} |
foreach my $service ('http','https') { |
foreach my $service ('http','https') { |
unless ($current{$service}) { |
unless ($current{$service}) { |
if (open(PIPE,"firewall-cmd --permanent --zone=public --add-service=$service |")) { |
if (open(PIPE,"firewall-cmd --permanent --zone=$zone --add-service=$service |")) { |
my $result = <PIPE>; |
my $result = <PIPE>; |
if ($result =~ /^success/) { |
if ($result =~ /^success/) { |
$added{$service} = 1; |
$added{$service} = 1; |
Line 2051 if ($callsub{'firewall'}) {
|
Line 2084 if ($callsub{'firewall'}) {
|
} |
} |
unless ($current{'ssh'}) { |
unless ($current{'ssh'}) { |
print &mt('If you would the like to allow access to ssh from outside, use the command[_1].', |
print &mt('If you would the like to allow access to ssh from outside, use the command[_1].', |
'firewall-cmd --permanent --zone=public --add-service=ssh')."\n"; |
"firewall-cmd --permanent --zone=$zone --add-service=ssh")."\n"; |
} |
} |
} elsif ($distro =~ /^(suse|sles)/) { |
} elsif ($distro =~ /^(suse|sles)/) { |
print &mt('Use [_1] to configure the firewall to allow access for [_2].', |
print &mt('Use [_1] to configure the firewall to allow access for [_2].', |
Line 2078 if ($callsub{'firewall'}) {
|
Line 2111 if ($callsub{'firewall'}) {
|
'system-config-firewall-tui -- Customize', |
'system-config-firewall-tui -- Customize', |
'ssh, http')."\n"; |
'ssh, http')."\n"; |
} else { |
} else { |
print &mt('Use [_1] to configure the firewall to allow access for [_2].', |
my $version; |
'setup -- Firewall configuration -> Customize', |
if ($distro =~ /^(redhat|centos)(\d+)$/) { |
'ssh, http, https')."\n"; |
$version = $1; |
|
} |
|
if ($version > 5) { |
|
print &mt('Use [_1] to configure the firewall to allow access for [_2].', |
|
'system-config-firewall-tui -- Customize', |
|
'ssh, http')."\n"; |
|
} else { |
|
print &mt('Use [_1] to configure the firewall to allow access for [_2].', |
|
'setup -- Firewall configuration -> Customize', |
|
'ssh, http, https')."\n"; |
|
} |
} |
} |
} else { |
} else { |
&print_and_log(&mt('Skipping Firewall configuration.')."\n"); |
&print_and_log(&mt('Skipping Firewall configuration.')."\n"); |
Line 2386 sub setup_mysql_permissions {
|
Line 2429 sub setup_mysql_permissions {
|
if ($usesauth) { |
if ($usesauth) { |
@mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www','','','','')"); |
@mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www','','','','')"); |
if ($is_mariadb) { |
if ($is_mariadb) { |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
} else { |
} else { |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED WITH mysql_native_password BY 'localhostkey'"); |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED WITH mysql_native_password BY 'localhostkey'"); |
} |
} |
} elsif ($hasauthcol) { |
} elsif ($hasauthcol) { |
@mysql_commands = ("INSERT user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www',password('localhostkey'),'','','','');"); |
@mysql_commands = ("INSERT user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www',password('localhostkey'),'','','','');"); |