summaryrefslogtreecommitdiffstats
path: root/perl-install/security/msec.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/security/msec.pm')
-rw-r--r--perl-install/security/msec.pm34
1 files changed, 16 insertions, 18 deletions
diff --git a/perl-install/security/msec.pm b/perl-install/security/msec.pm
index 791ad8ef0..4258653ef 100644
--- a/perl-install/security/msec.pm
+++ b/perl-install/security/msec.pm
@@ -1,7 +1,6 @@
package security::msec;
use strict;
-use MDK::Common::File;
use MDK::Common;
@@ -49,7 +48,7 @@ sub load_values {
chop $val;
$val =~ s/[()]//g;
chop $opt if $separator eq '\('; # $opt =~ s/ //g if $separator eq '\(';
- if_($val, $opt => $val);
+ if_(defined($val), $opt => $val);
} cat_($msec->{$category}{values_file});
}
@@ -60,7 +59,7 @@ sub load_values {
sub get_function_value {
my ($msec, $function) = @_;
- $msec->{functions}{value}{$function} || "default";
+ exists $msec->{functions}{value}{$function} ? $msec->{functions}{value}{$function} : "default";
}
sub get_check_value {
@@ -83,7 +82,7 @@ sub raw_checks_list {
sub list_checks {
my ($msec) = @_;
- grep { !member($_, qw(MAIL_WARN MAIL_USER)) } $msec->raw_checks_list;
+ difference2([ $msec->raw_checks_list ], [ qw(MAIL_WARN MAIL_USER) ]);
}
sub list_functions {
@@ -98,7 +97,7 @@ sub list_functions {
enable_dns_spoofing_protection enable_ip_spoofing_protection
enable_log_strange_packets enable_promisc_check no_password_aging_for)],
'system' => [qw(allow_autologin allow_issues allow_reboot allow_remote_root_login
- allow_root_login allow_user_list allow_x_connections allow_xserver_to_listen
+ allow_root_login allow_user_list allow_xauth_from_root allow_x_connections allow_xserver_to_listen
authorize_services enable_at_crontab enable_console_log
enable_msec_cron enable_pam_wheel_for_su enable_password enable_security_check
enable_sulogin password_aging password_history password_length set_root_umask
@@ -133,6 +132,7 @@ sub set_check {
sub apply_functions {
my ($msec) = @_;
my @list = sort($msec->list_functions('system'), $msec->list_functions('network'));
+ touch($msec->{functions}{values_file}) if !-e $msec->{functions}{values_file};
substInFile {
foreach my $function (@list) { s/^$function.*\n// }
if (eof) {
@@ -147,28 +147,26 @@ sub apply_functions {
sub apply_checks {
my ($msec) = @_;
my @list = sort $msec->raw_checks_list;
- substInFile {
- foreach my $check (@list) { s/^$check.*\n// }
- if (eof) {
- print "\n", join("\n", map {
- my $value = $msec->get_check_value($_);
- if_($value ne 'default', $_ . '=' . $value);
- } @list), "\n";
- }
- } $msec->{checks}{values_file};
+ setVarsInSh($msec->{checks}{values_file},
+ {
+ map {
+ my $value = $msec->get_check_value($_);
+ if_($value ne 'default', $_ => $value);
+ } @list
+ }
+ );
}
sub reload {
my ($msec) = @_;
- my $num_level = 0;
require security::level;
- $num_level ||= security::level::get();
- $msec->{functions}{defaults_file} = "$::prefix/usr/share/msec/level.".$num_level;
+ my $num_level = security::level::get();
+ $msec->{functions}{defaults_file} = "$::prefix/usr/share/msec/level.$num_level";
$msec->{functions}{default} = { $msec->load_defaults('functions') };
}
sub new {
- my $type = shift;
+ my ($type) = @_;
my $msec = bless {}, $type;
$msec->{functions}{values_file} = "$::prefix/etc/security/msec/level.local";