Nie pozwól użytkownikom zrestartować się, gdy root jest zalogowany

9

W moim systemie użytkownicy mogą ponownie uruchomić i zamknąć system. Od czasu do czasu muszę aktualizować oprogramowanie (lub robić cokolwiek innego) i nie chcę, aby użytkownicy ponownie uruchamiali / zamykali system, dopóki nie skończę.

Czy istnieje sposób, aby zapobiec ponownemu uruchomieniu / wyłączeniu systemu, gdy root jest zalogowany (lokalnie lub przez SSH)?

Bezcelowy
źródło
Jak kiedykolwiek powstrzymasz ludzi przed użyciem metody brutalnej siły?
Bernhard
@Bernhard prawdopodobnie coś z/etc/acpi/powerbtn.sh
PMint

Odpowiedzi:

11

Wypróbuj Molly Guard:

$ sudo apt-get install molly-guard

Ten pakiet zapobiegnie niezamierzonemu wyłączeniu / ponownemu uruchomieniu / zawieszeniu / hibernacji poprzez interaktywne monitowanie o podanie nazwy hosta systemu.

Jednak konfiguracja funkcji Molly-Guard jest banalna, aby całkowicie wyłączyć zamykanie / ponowne uruchamianie / zawieszanie / hibernację. Wystarczy utworzyć plik wykonywalny na /etc/molly-guard/run.d/99-prevent-all, który ma to w sobie:

#!/bin/sh
exit 1

(Nie wspomniałeś o systemie operacyjnym, dotyczy to Ubuntu).

Historia

Jeśli jesteś ciekawy, nazywa się to ochroną przed molly. Jeśli jesteś ciekawy, zobacz artykuł w Wikipedii na temat Big Red Button .

fragment

Duży czerwony przełącznik często zawiera molly-guard, osłonę, którą należy podnieść, aby uruchomić przełącznik. Oryginalna ochroniarz Molly został sfałszowany przez Plexiglas, aby uniemożliwić młodej córce programisty Molly naciskanie BRS na serwerze IBM 4341, po tym, jak zrobiła to dwa razy w ciągu jednego dnia.

Inne dystrybucje

Możesz wziąć .debpakiet i użyć go aliendo przekonwertowania go na RPM odpowiedni dla Fedory / RHEL / CentOS.

$ sudo yum install alien
$ alien -r molly-guard*.deb
PMint
źródło
1
+1 nigdy nie słyszałem o tym narzędziu, instaluję go na kilku serwerach 8-).
slm
1
Naprawdę fajne narzędzie. Ze względu na konkretne pytanie i kompletność, można określić dla roota .bashrc / .bash_logout, aby włączyć / wyłączyć all-stop. Warunek w skrypcie Molly-Guard sprawdzającym UID! = 0 może być również odpowiedni.
Joshua Miller