Não permita que usuários reinicializem enquanto o root estiver conectado

9

No meu sistema, os usuários podem reiniciar e desligar o sistema. Periodicamente, preciso atualizar o software (ou fazer qualquer outra coisa) e não quero que os usuários reinicializem / desliguem o sistema até que eu termine.

Existe uma maneira de impedir que o sistema reinicie / desligue enquanto o root estiver conectado (localmente ou através de SSH)?

Pointless One
fonte
Como você impedirá as pessoas de usar o método da força bruta?
Bernhard
@Bernhard provavelmente algo com/etc/acpi/powerbtn.sh
PMint

Respostas:

11

Tente guarda Molly:

$ sudo apt-get install molly-guard

Este pacote evitará o desligamento / reinicialização / suspensão / hibernação não intencional, solicitando interativamente que você digite o nome do host do sistema.

No entanto, é trivial configurar o molly-guard para desativar completamente o shutdown / reboot / suspend / hibernate. Basta criar um arquivo executável em /etc/molly-guard/run.d/99-prevent-all que contenha isso:

#!/bin/sh
exit 1

(Você não mencionou o sistema operacional, isto é para o Ubuntu).

História

Se você está curioso, o termo guarda-molly é o que chamamos de capa sobre um botão vermelho. Veja o artigo da wikipedia sobre o Big Red Button, se você estiver curioso.

excerto

Um interruptor vermelho grande geralmente inclui um protetor de molly, uma tampa que deve ser levantada para acionar o interruptor. O guarda molly original foi equipado com júri da Plexiglas para impedir que a filha Molly de um programador pressionasse o BRS em um servidor IBM 4341, depois de fazer isso duas vezes em um dia.

Outras distros

Você pode pegar o .debpacote e usá alien-lo para convertê-lo em um RPM adequado para o Fedora / RHEL / CentOS.

$ sudo yum install alien
$ alien -r molly-guard*.deb
PMint
fonte
1
O +1 nunca ouviu falar desta ferramenta, estará instalando-a em vários seridores 8-).
slm
1
Ferramenta realmente elegante. Para fins de pergunta e completude específicas, você pode especificar .bashrc / .bash_logout da raiz para ativar / desativar a parada completa. Uma condicional na verificação do script molly-guard para UID! = 0 também pode ser apropriada.
Joshua Miller