package security::security; use diagnostics use strict; use common; use security::msec; use log; sub config_libsafe { my ($prefix, $libsafe) = @_; my %t = getVarsFromSh("$prefix/etc/sysconfig/system"); if (@_ > 1) { $t{LIBSAFE} = bool2yesno($libsafe); setVarsInSh("$prefix/etc/sysconfig/system", \%t); } text2bool($t{LIBSAFE}); } sub main { my ($in, $security, $libsafe, $sec_user) = @_; if (security::msec::choose_security_level($in, \$security, \$libsafe, \$sec_user)) { log::l("[draksec] Setting libsafe activation variable to $libsafe"); config_libsafe('', $libsafe); log::l("[draksec] Setting security administrator contact to $sec_user"); security::msec::config_security_user('', $sec_user); my $w = $in->wait_message('', _("Setting security level")); $in->suspend; $ENV{LILO_PASSWORD} = ''; # make it non interactive log::l("[draksec] Setting security level to $security"); system "/usr/sbin/msec", $security; $in->resume; } } 1;