Protege las máquinas de apagados/reinicios accidentales. El paquete instala un sript de shell que mueve los comandos reales: shutdown, reboot, halt, poweroff, coldreboot, pm-hibernate, pm-suspend al directorio /lib/molly-guard/. Primero, ejecuta un conjunto de scripts, que deben finalizar correctamente, antes de que molly-guard invoque el comando real. Uno de los scripts comprueba si hay sesiones SSH existentes. Si alguno de los cuatro comandos se ejecuta interactivamente a través de una sesión SSH, el script de shell le solicita que introduzca el nombre del host que desea apagar. Esto debería evitar apagados y reinicios accidentales. Incluye los binarios coldreboot, halt, pm-hibernate, pm-suspend, pm-suspend-hybrid, poweroff, reboot y shutdown. Puede omitir molly-guard ejecutando esos binarios directamente.
$ ls -l /sbin/{halt,reboot,shutdown,poweroff}
1.-
Cuando se intenta reiniciar un servidor remoto vía SSH:
# reboot
W: molly-guard: SSH session detected!
Please type in hostname of the machine to reboot:
Si se introduce mal el nombre:
Please type in hostname of the machine to reboot: otrohost
Good thing I asked; I won't reboot plsdontreboot ...
W: aborting reboot due to 30-query-hostname exiting with code 1.
Pero si lo haces correctamente:
Please type in hostname of the machine to reboot: plsdontreboot
Broadcast message from root@plsdontreboot:
The system is going down for reboot NOW!
También permite cancelar un apagado sin comprobaciones:
# shutdown -c
I: executing shutdown "-c" regardless of check results.
2.-
Forzar la protección en todo tipo de sesión:
# nano /etc/molly-guard/rc
Descomentar la linea:
ALWAYS_QUERY_HOSTNAME=true
Y pedirá confirmación incluso desde consolas locales.