From 9bfb757e482163d1bbd706249991aa6a626a8f2d Mon Sep 17 00:00:00 2001 From: Frederic Lepied Date: Thu, 30 Sep 2004 02:50:01 +0000 Subject: control CTRL+ALT-DEL in allow_reboot --- share/libmsec.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/share/libmsec.py b/share/libmsec.py index efea84b..830d32c 100644 --- a/share/libmsec.py +++ b/share/libmsec.py @@ -375,6 +375,7 @@ def get_index(val, array): ################################################################################ ALLOW_SHUTDOWN_VALUES = ('All', 'Root', 'None') +CTRALTDEL_REGEXP = '^ca::ctrlaltdel:/sbin/shutdown.*' def allow_reboot(arg): ''' Allow/Forbid reboot by the console user.''' @@ -382,9 +383,11 @@ def allow_reboot(arg): sysctlconf = ConfigFile.get_config_file(SYSCTLCONF) kdmrc = ConfigFile.get_config_file(KDMRC) gdmconf = ConfigFile.get_config_file(GDMCONF) + inittab = ConfigFile.get_config_file(INITTAB) val_shutdownallow = shutdownallow.exists() val_sysctlconf = sysctlconf.exists() and sysctlconf.get_shell_variable('kernel.sysrq') + val_inittab = inittab.exists() and inittab.get_match(CTRALTDEL_REGEXP) num = 0 val = {} for f in [SHUTDOWN, POWEROFF, REBOOT, HALT]: @@ -402,7 +405,7 @@ def allow_reboot(arg): # don't lower security when not changing security level if same_level(): - if val_shutdownallow and val_sysctlconf == '0' and num == 0 and oldval_kdmrc >= val_kdmrc and val_gdmconf == 'false': + if val_shutdownallow and val_sysctlconf == '0' and num == 0 and oldval_kdmrc >= val_kdmrc and val_gdmconf == 'false' and not val_inittab: return if oldval_kdmrc > val_kdmrc: val_kdmrc = oldval_kdmrc @@ -419,6 +422,8 @@ def allow_reboot(arg): sysctlconf.set_shell_variable('kernel.sysrq', 1) if not (same_level() and val_gdmconf == 'false'): gdmconf.exists() and gdmconf.set_shell_variable('SystemMenu', 'true', '\[greeter\]', '^\s*$') + if not (same_level() and not val_inittab): + inittab.replace_line_matching(CTRALTDEL_REGEXP, 'ca::ctrlaltdel:/sbin/shutdown -t3 -r now', 1) else: _interactive and log(_('Forbidding reboot to the console user')) ConfigFile.get_config_file(SHUTDOWNALLOW, SUFFIX).touch() @@ -426,6 +431,7 @@ def allow_reboot(arg): ConfigFile.get_config_file(f).unlink() sysctlconf.set_shell_variable('kernel.sysrq', 0) gdmconf.exists() and gdmconf.set_shell_variable('SystemMenu', 'false', '\[greeter\]', '^\s*$') + inittab.remove_line_matching(CTRALTDEL_REGEXP) kdmrc.exists() and kdmrc.set_shell_variable('AllowShutdown', ALLOW_SHUTDOWN_VALUES[val_kdmrc], 'X-:\*-Core', '^\s*$') -- cgit v1.2.1