Цель: сделать из компьютера выставочный киоск со всем функционалом обычного сайта, не забыв про кулхацкеров и любителей пожамкать все что можно.
Что получим: киоск с браузером firefox без лишних кнопок и возможности как то попасть в консоль + vnc к нему для удаленной помощи.
  1. Ставим Debian mini, из пакетов в установщике только ssh сервер. В принципе, можно любую ОС ставить, действия не изменятся
  2. Добавляем пользователя, под которым будет запускаться браузер
    /sbin/useradd kiosk
  3. Устанавливаем необходимые пакеты:
    apt install fonts-dejavu-core xorg openbox firefox-esr lightdm hsetroot x11vnc fonts-liberation xfonts-cyrillic xprintidle xdotool iptables-persistent unzip zip
  4. Конфигурирем дефолтный конфиг Xorg
    Xorg -configure && cp /root/xorg.conf.new /etc/X11/xorg.conf
    
  5. Перебилдим шрифты
     fc-cache -f -v
  6. Меняем .profile пользователя kiosk /home/kiosk/.profile на
    if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty1 ]; then startx
    fi
    
  7. Настраиваем lightdm /etc/lightdm/lightdm.conf:
    [LightDM]
    
    [Seat:*]
    autologin-user=kiosk
    autologin-user-timeout=0
    [XDMCPServer]
    
    [VNCServer]
    
  8. Настраиваем автостарт пользователя kiosk /etc/xdg/openbox/autostart:
    x11vnc --display :0 --forever &
    
    xset -dpms
    xset s off
    xset s noblank # Настройка спящих режимов и скринсейверов
    setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle" & # Установка клавиш переключения языка
    hsetroot -fill /usr/share/wallpapers/default.jpg # Установка бекграунд картинки
    /srv/scripts/autoreload & # Скрипт перезагрузки firefox при отсутствии действий в течение 5 минут
    /srv/scripts/run.firefox # Сам запуск firefox'a
    
  9. Создаем нужные скрипты:
    run.firefox:
    while [ 1 ]; do
    firefox -private https://www.220-volt.ru/ 
    done
    
    autoreload:
    while [ 1 ]; do
        idle=`xprintidle`
        if [ $idle -gt 300000 ]; then
                pkill -f firefox
                /srv/scripts/run.firefox
        else
            echo date
        fi
            sleep 60
    done
    
    
  10. Теперь комп в reboot и должен запуститься firefox. Настраиваем плагины и остальные настройки и закрываем firefox.
  11. После настройки отключаем все лишние кнопки и возможные действия:
    Создаем папку /home/kiosk/.mozilla/firefox/профиль/chrome
    В нее кладем файл:
    userChrome.css:
    @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
    #minimize-button, #restore-button, #close-button, #PanelUI-button, #toolbar-menubar, #downloads-button, #bookmarks-menu-button { display: none !important; }
    #zoom-controls > separator, #zoom-controls > #zoom-reset-button { visibility: collapse !important; }
    #urlbar .textbox-contextmenu, #searchbar .textbox-contextmenu, #placesContext, #autohide-context, #toolbar-context-menu, #tabContextMenu, #contentAreaContextMenu { display: none !important; }
    toolbarbutton[label="Modify Header Value: enabled"] { display: none !important; }
    #urlbar { visibility: collapse !important; }
    /*.tabbrowser-tab .tab-close-button {  visibility: collapse !important; }*/
    
  12. И последний шаг, отключаем все возможные комбинации клавиш /etc/xdg/openbox/rc.xml:
    rc.xml

Комментарии ()