Mam komputer stacjonarny Ubuntu 10.04 LTS z GNOME.
Jak mogę w pełni wyłączyć funkcje ponownego uruchamiania / zamykania / zawieszania / hibernacji w GNOME, a nawet z rootem? Aby root wydał polecenie „restart” lub „pm-suspend”, nic nie robi, a maszyna kontynuuje pracę. Jak mogę w pełni wyłączyć te podstawowe „funkcje”?
shutdown
ipm-suspend
od/sbin/
a/bin/
Odpowiedzi:
Dostęp użytkowników do tych akcji jest kontrolowany przez polkit. W szczególności odpowiadają one następującym działaniom:
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
Wszystkie te akcje są domyślnie dozwolone dla aktywnych użytkowników lokalnych (chociaż
consolekit
dodatkowo ogranicza pierwsze dwa uprawnienia do działania tylko wtedy, gdy w systemie zalogowany jest pojedynczy użytkownik).Jeśli chcesz wyłączyć te akcje, utwórz plik
/etc/polkit-1/50-local.d/disable-shutdown.pkla
zawierający coś takiego:Powinno to uniemożliwić wykonanie tych działań. Więcej informacji na temat tych plików zasad można znaleźć, uruchamiając
man pklocalauthority
.Jeśli jednak próbujesz ograniczyć
root
, będzie to tylko niewielka niedogodność. Z definicjiroot
jest to konto nieograniczone zgodnie z tradycyjnym systemem uznaniowego systemu kontroli dostępu UNIX. Jeśli nie możesz ufać użytkownikom, do których masz pełnyroot
dostęp, masz większe problemy niż tylko zamykanie systemu.Zauważ, że w późniejszych wersjach Ubuntu ktoś postanowił zerwać kompatybilność. Jak odpowiedziano w Jak wyłączyć zamykanie / restart z lightdm w 14.04? wydaje się, że akcja zmieniła się na „org.freedesktop. login1 .reboot” (i tym podobne).
Na przykład w 14.04 dodając następujące wiersze jako
/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
działa:Dodatkowo zauważ, że ta metoda blokuje wyłącznie polecenia restartu / etc wydane z GUI. Aby zablokować polecenia restartu / etc z linii poleceń, można użyć funkcji Molly-Guard - jak wyjaśniono w Wyłączanie polecenia zamknięcia dla wszystkich użytkowników, a nawet konsekwencji root?
źródło
Zastanów się nad zainstalowaniem 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:
Uwaga: chroni tylko przed komendami wydanymi z wiersza komend, pomijanie / restart / restart / suspend / hibernacja wydane z GUI. Aby zablokować również GUI przy użyciu restartu, można użyć reguł polkit .
źródło
źródło
/bin/systemctl
i usuwają z niego bit wykonywalny. Jest to krytyczny plik wykonywalny, który również kontrolujeservice SERVICE_NAME [stop|start|restart]
. Twój system prawdopodobnie już się nie uruchomi (jeśli w ogóle można go zamknąć)./bin/systemctl
ustawiony jest tylko do odczytu i zapisu-rw-r--r-- 1 root root
Opierając się na odpowiedzi OP, możesz to zrobić
Spowoduje to zmianę nazw dowiązań symbolicznych i zastąpienie ich pustymi plikami. Zapobiegnie to zamykaniu wiersza poleceń, nie wiem, czy polecenia GUI wywołują go, czy robią swoje, więc może być konieczne wykonanie również zaakceptowanej odpowiedzi.
źródło