Wyłączyć wyłączanie

2 lipca, 2010 (09:24) | centos, linux | By: konrad

Właśnie konfiguruję serwer terminali oparty o CentOSa i GNOME. Wszystko wygląda całkiem nieźle, ale natknąłem się na pewien niewielki problem: jak pozbawić użytkowników korzystających z tego terminala możliwości wyłączania/restartowania całego systemu? Zostawienie tej opcji włączonej może skutkować dość nieprzyjemnymi objawami w postaci nagłych i niespodziewanych restartów całego serwera, a ja nie lubię się denerwować.

Okazuje się, że jest kilka metod, którymi zły użytkownik może się posłużyć i powinniśmy zneutralizować je wszystkie. Ale po kolei:

1) Ikonki „Uruchom ponownie” oraz „Wyłącz” widoczne na ekranie logowania (GDM).

To akurat wyłącza się wyjątkowo prosto:
W sekcji [greeter] pliku /etc/gdm/custom.conf musimy dopisać linijkę
SystemMenu=false i zrestartować X’y. Koniec.

Po takim zabiegu ikony służące do denerwowania administratora znikną z ekranu powitalnego raz na zawsze (albo do ponownego włączenia).

2) Menu systemowe GNOME.

Uruchamiamy gconf-editor (jeżeli nie mamy go w systemie, to trzeba sobie doinstalować: yum install gconf-editor), i w gałęzi /apps/panel/global zaznaczamy opcję „disable_log_out„. Nazwa jest trochę myląca, bo samej możliwości wylogowania z systemu nie wyłącza, ale robi to, co mi potrzebne a ja nie muszę chyba wszystkiego rozumieć :-)

3) Zablokowanie możliwości wywołania „poweroff” lub „reboot” z terminala.

Domyślnie CentOS (zamiast kombinować z flagą SUID) dość intensywnie korzysta z programu consolehelper(*) i właśnie w jego konfiguracji będziemy grzebać. Wszystkie programy, które mogą być uruchamiane przez zwykłych użytkowników z prawami roota zdefiniowane są w dwóch katalogach:
/etc/security/console.apps oraz /etc/pam.d

Aby wyłączyć (brutalnie, ale skutecznie) użytkownikom możliwość denerwowania innych, należy z pierwszego z podanych katalogów (czyli /etc/security/console.apps) usunąć pliki „reboot„, „halt” oraz „poweroff„. Warto jeszcze usunąć dowiązania symboliczne do samego consolehelpera z katalogu /usr/bin (bez usuwania linków użytkownikom, zamiast „nie ma takiego pliku…” wyświetlać się będzie okienko „Nieznany błąd”, co wygląda mało profesjonalnie :-)).

I to chyba wszystko. Po krótkich staraniach nie udało mi się zdalnie wyłączyć systemu nie posiadając uprawnień roota :-)

(*) Trochę więcej o programie consolehelper można poczytać sobie tutaj.

Trackback URL: http://konrad.bechler.pl/2010/07/wylaczyc-wylaczanie/trackback/

«

»

Write a comment





*