[HOWTO] Kiosk mode w Ubuntu

Awatar użytkownika
queyas
Piegowaty Guziec
Piegowaty Guziec
Posty: 23
Rejestracja: 17 sie 2007, 23:33
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

[HOWTO] Kiosk mode w Ubuntu

Post autor: queyas »

Kiosk mode czyli komputer przeznaczony do używania przez osoby trzecie. Przygotujemy użytkownika z mocno ograniczonymi prawami, tak żeby bez obaw postawić komputer np. w świetlicy, kafejce internetowej, zostawić znajomym itp.
Poradnik jest oparty o Ubuntu 8.04 z Gnome, ale bez większych przeróbek zadziała w każdej innej dystrybucji. Zakładam, Czytelniku, że wiesz jak instaluje się pakiety i uruchamia programy w Ubuntu.

Tworzymy użytkownika
Uruchamiamy System->Administracja->Użytkownicy i grupy, klikamy Dodaj użytkownika, wpisujemy nazwę, wybieramy profil Unprivileged i wpisujemy hasło (min. 6 znaków). Przechodzimy do karty Uprawnienia użytkownika i zaznaczamy (tymczasowo, na końcu poradnika to usuniemy) Administruje systemem:
Obrazek Obrazek
Wylogowujemy się i logujemy na nowo utworzone konto.

Modyfikacje zewnętrzne
Wchodzimy w System->Preferencje i zmieniamy motyw graficzny, ikony, czcionki, wygaszacz ekranu itp.
Jeśli planujemy korzystanie z Compiza, możemy też zastąpić Metacity Emeraldem i dodać do sesji (emerald --replace). Konfigurację Compiza najlepiej przeprowadzić instalując wcześniej pakiet compizconfig-settings-manager (uruchamia się go komendą ccsm).
Ustawiamy panele, aplety itd.

Zabezpieczenia
Uruchamiamy Firefoksa i ustawiamy czyszczenie prywatnych danych przy wyłączaniu przeglądarki, automatyczne akceptowanie ciasteczek, włączamy JavaScript (bezpieczniej byłoby część rzeczy poblokować, ale komputer ma z założenia działać bez naszego nadzoru, więc musimy pozwolić na działanie wszystkiego, żeby użytkownicy nie przychodzili z pretensjami), instalujemy rozszerzenia (np. AdBlock Plus) i koniecznie dodatek R-kiosk. Pamiętaj, żeby zainstalować go na samym końcu, bo blokuje on dostęp do menu, menu kontekstowego itp. Możesz pozwolić użytkownikom na wyświetlenie paska adresu dopisując user_pref("rkiosk.navbar", true); w pliku prefs.js.
Przygotowałem też gotowy profil (uwaga - ponad 7 MB), który możesz pobrać i podmienić go na dysku lub zainstalować uruchamiając Firefoksa z parametrem -profilemanager

Instalujemy pakiet gconf-editor i uruchamiamy taką samą komendą.
Zaznaczamy klucze:
  • /apps/panel/global/locked_down ? blokuje zmiany w panelach
  • /desktop/gnome/lockdown/disable_command_line ? blokuje możliwość uruchamiania terminala
  • /desktop/gnome/lockdown/disable_lock_screen ? wyłącza możliwość zablokowania ekranu
  • /desktop/gnome/lockdown/disable_save_to_disk ? blokuje możliwość zapisu na dysk ? opcjonalnie
  • /desktop/gnome/lockdown/disable_user_switching ? wyłącza możliwość przełączania użytkowników
Odznaczamy:
  • /apps/nautilus/desktop/volumes_visible ? na pulpicie nie będą widoczne napędy
  • /apps/gnome-session/options/logout_prompt ? nie będzie wyboru Wyloguj/Wyłącz komputer itp. Użytkownik zawsze zostanie wylogowany
Kluczom:
  • /apps/metacity/global_keybindings/panel_main_menu
  • /apps/metacity/global_keybindings/panel_run_dialog
  • /apps/metacity/global_keybindings/run_command_terminal
nadajemy wartość disabled ? dzięki temu użytkownik będzie miał zablokowaną możliwość uruchamiania menu skrótem klawiszowym, uruchamiania programów z wiersza poleceń i uruchamiania terminala.

Wchodzimy w System->Administracja->Ekran logowania. W karcie Lokalny odznaczamy Wyświetlanie menu czynności:
Obrazek
W karcie Zabezpieczenia możemy włączyć automatyczne logowanie, jeżeli z komputera będzie korzystało głównie konto gościa (np. kafejka internetowa).
Możesz też, Czytelniku, włączyć logowanie bez znajomości hasła (tylko nazwa użytkownika):
Uruchom edytor tekstu z prawami administratora (np. sudo gedit), wpisz tam nazwę konta gościa i zapisz plik jako /etc/gdm/nopassusers.txt (w starszych wersjach Ubuntu może to być /etc/X11/gdm/nopassusers.txt). Otwórz plik /etc/pam.d/gdm (np. sudo gedit /etc/pam.d/gdm) i pod linią auth required pam_env.so dopisz: auth sufficient pam_listfile.so item=user sense=allow file=/etc/gdm/nopassusers.txt onerr=fail

Zabezpieczamy GRUBa (domyślnie recovery mode dostępny jest bez hasła i loguje nas od razu na konto roota):
W konsoli wpisujemy grub i w ten sposób dostajemy się do linii poleceń GRUBa. Wpisujemy md5crypt, podajemy hasło, a w zamian dostajemy je w postaci zaszyfrowanej. Kopiujemy do schowka (Shift+Ctrl+C) i wpisujemy quit:
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub> md5crypt

Password: ***********
Encrypted: $1$Nc.nh$B5hrFkvKNG2foTpVmDSyy/

grub> quit
Otwieramy plik menu.lst: sudo gedit /boot/grub/menu.lst (może być inny edytor, taki który lubisz, Czytelniku) i znajdujemy sekcję dotyczącą hasła:
## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
## password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret
W przedostatniej linii usuwamy krzyżyki i zmieniamy sumę md5 na naszą skopiowaną do schowka:
# e.g. password topsecret
password --md5 $1$Nc.nh$B5hrFkvKNG2foTpVmDSyy/
# password topsecret
Znajdujemy linię # lockalternative=false i zmieniamy na: # lockalternative=true. W ten sposób zablokowane zostaną wszystkie wpisy alternatywne (recovery mode i edycja poleceń) z wpisów automatycznych w GRUBie (sekcja AUTOMAGIC KERNELS LIST). Zmieniamy też linię # savedefault=false na # savedefault=true.
Jeżeli, Czytelniku, korzystasz z wpisów statycznych musisz je zablokować w poniższy sposób:
Znajdź wpis dotyczący recovery mode. Powienien wyglądać podobnie do tego:
title Ubuntu 8.04.1, kernel 2.6.24-21-generic (recovery mode)
root (hd0,5)
kernel /boot/vmlinuz-2.6.24-21-generic root=UUID=62cc4625-c852-4598-b58e-a3cb212a1027 ro single
initrd /boot/initrd.img-2.6.24-21-generic
Zabezpieczamy go, dopisując lock i zapisujemy plik:
title Ubuntu 8.04.1, kernel 2.6.24-21-generic (recovery mode)
lock
root (hd0,5)
kernel /boot/vmlinuz-2.6.24-21-generic root=UUID=62cc4625-c852-4598-b58e-a3cb212a1027 ro single
initrd /boot/initrd.img-2.6.24-21-generic
W ten sposób zabezpieczamy wszystkie wpisy dotyczące recovery mode.
Po zapisaniu pliku do konsoli wpisujemy komendę: sudo update-grub. Dzięki temu próba uruchomienia recovery mode lub edycji poleceń danej pozycji w GRUBie zakończy się prośbą o podanie hasła.
Dla pewności wydajemy też polecenie sudo chmod 600 /boot/grub/menu.lst

Klikamy prawym przyciskiem na menu i wybieramy Modyfikuj menu. Zaznaczamy pozycje, które mają być dostępne dla gościa, najlepiej odznaczając wszystko w sekcji System.
Blokujemy możliwość modyfikacji menu: otwieramy folder /home/użytkownik/.config/menus, nadajemy plikom: applications.menu i settings.menu atrybut Tylko do odczytu (Właściwości->Uprawnienia) i zmieniamy właściciela na roota.

Wylogowujemy się z konta, logujemy się na swojego normalnego użytkownika i wyłączamy Administruje systemem dla nowego konta.

Dobrze by było jeszcze zmienić kolejność bootowania w BIOSie, tak żeby dysk był pierwszy, a samego BIOSa zastawić jakimś hasłem.

I to chyba wszystko. Gdyby czegoś brakowało, coś można poprawić, lepiej zabezpieczyć ? proszę o komentarz.
Dziekuję mario_7 za zwrócenie uwagi na GRUBa.
ODPOWIEDZ

Wróć do „Instalacja i konfiguracja systemu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 16 gości