Режим киоска в РЕД ОС реализуется с помощью доработанных командной оболочки Bash
и окружения рабочего стола MATE.

Базовый функционал киоска реализован в нескольких пакетах и находится в
выключенном состоянии. Режим киоска с утилитами для его настройки становится
доступным после установки пакета redos-kiosk-utils.

При включённом режиме киоска пользователю становятся недоступными:
1) запуск программ с графическим интерфейсом, кроме явно разрешённых (ярлыки
   таковых приложений находятся на Рабочем столе),
2) выполнение сценариев на любом языке при явном их запуске пользователем,
3) запуск на выполнение файлов с установленным битом SUID,
4) изменение свойств и содержимого главной панели на Рабочем столе,
5) изменение содержимого Рабочего стола (создание/удаление/изменение ярлыков,
   создание/удаление/изменение иных файлов),
6) автоматическое монтирование внешних накопителей,
7) смена виртуальной консоли по сочетанию клавиш Ctrl+Alt+Fn.

Также имеются следующие ограничения в режиме киоска:
1) главная панель Рабочего стола в режиме киоска не имеет кнопки главного меню
   (типа «Пуск») и пиктограмм быстрого запуска приложений. Кнопки выхода из
   сессии, блокировки экрана и выключения/перезагрузки ПК вынесены на главную
   панель слева;
2) Центр управления МАТЕ недоступен, но, даже в случае его ручного запуска,
   приложение блокируется;
3) блокирован запуск Терминала МАТЕ;
4) из консольных утилит блокированы dconf и gsettings с целью исключения
   изменений настроек как МАТЕ, так и графической системы;
5) просмотр справочной системы недоступен как при вызове по клавише F1, так и по
   нажатию кнопки «Помощь»;
6) дополнительное усечение прав и возможностей пользователя путём запуска
   приложений в «песочнице» (Firejail).

В текущей версии для настройки режима киоска имеются как консольные утилиты, так и графический интерфейс (GUI). Обе возможности требуют прав суперпользователя root.

Для включения режима киоска конкретному пользователю применяется команда
kiosk-mode-on с указанием имени этого пользователя (-u или --username) и
перечнем приложений (-a или --appname), которые разрешаются к запуску
пользователем в данном режиме.
Также доступны следующие опции:
* -t | --timelock TIME — время неактивности в сеансе (в минутах) до блокировки экрана. Если не указано или указано 0, блокировка экрана отключается;
* -b | --blockbtn — отобразить кнопку блокировки экрана на панели;
* -i | --autohide — включить автоматическое скрытие главной панели;
* -s | --systrayhide — убрать системную область с главной панели;
* -p | --poweroff — включить возможность выключения компьютера кнопкой питания на системном блоке;
* -L | --withuserlayout — включить возможность пользователю выключать и перезагружать устройство с кнопок на панели без повышенных привилегий;
* -f | --firejail [=<опции firejail>] — запускать все разрешённые приложения в «песочнице». Опционально можно указать дополнительные настройки Firejail;
* -o | --singlemode APP_NAME [URL] — включить режим одного приложения. Для браузеров необходимо указать URL.

Приложения указываются путём перечисления имён desktop-файлов, имеющихся в
каталоге /usr/share/applications без указания суффикса «.desktop». Иные
приложения не допускаются к разрешению в режиме киоска.

Например:

kiosk-mode-on -u sidorov -a libreoffice-writer,thunderbird -t 5

или

kiosk-mode-on -u ivanov -a firefox -f="--net=enp1s3"

По умолчанию на главной панели Рабочего Стола имеются кнопки выключения,
перезагрузки системы и завершения сеанса/смены пользователя, причём для
перезагрузки или выключения системы потребуется ввести пароль администратора
(root).

Режим одного приложения
С помощью ключа -o или --singlemode можно включить режим киоска, в котором запускается только одно указанное приложение во весь экран. В этом режиме другие опции, такие как -t, -b, -i, -s, -p, -L, -f, не допускаются, за исключением -u для указания имени пользователя.

Для браузеров (chromium-browser, opera, yandex-browser, google-chrome, firefox) необходимо указать URL, который будет открыт в режиме киоска. Для других приложений дополнительные аргументы (включая URL) не требуются и не используются.

Примеры:

Включение режима киоска для пользователя ivanov с запуском браузера Chromium и открытием сайта red-soft.ru:

kiosk-mode-on -u ivanov -o chromium-browser red-soft.ru

Включение режима киоска для пользователя petrov с запуском калькулятора MATE:

kiosk-mode-on -u petrov -o mate-calc

В этом режиме рабочий стол и панели настраиваются таким образом, чтобы обеспечить запуск и отображение только одного указанного приложения, скрывая или отключая другие элементы интерфейса.


С целью выключения режима киоска и возврата настроек пользователя к
"докиосковому" состоянию используется команда kiosk-mode-off с указанием имени
этого пользователя (-u или --username). Например:

kiosk-mode-off -u sidorov

Графический интерфейс (GUI)

Начиная с версии 0.18 пакета redos-kiosk-utils, добавлен графический интерфейс для удобства настройки режима киоска.

GUI предоставляет следующие возможности:

* Выбор пользователя - в выпадающем списке можно выбрать пользователя, для которого будет настраиваться режим киоска;
* Настройка времени бездействия - возможность указать время бездействия (в минутах) перед блокировкой экрана;
* Выбор разрешённых приложений - список всех доступных приложений из каталога /usr/share/applications. Можно отметить галочками те приложения, которые будут доступны пользователю в режиме киоска;
* Опции интерфейса:
   1) отображение кнопки блокировки экрана;
   2) автоматическое скрытие главной панели;
   3) скрытие системной области уведомлений;
   4) разрешить выкл. ПК кнопкой питания;
   5) разрешить выкл./перезагрузку ПК без привилегий;
* Использование Firejail - можно указать ключи для запуска разрешённых приложений в «песочнице» Firejail;
* Включение/выключение режима киоска - после настройки параметров можно включить или выключить режим киоска для выбранного пользователя;
* Настройка режима одного приложения.

GUI также ведёт логирование всех действий в файл /var/log/kiosk-mode/gui_kiosk.log.

Для использования графического интерфейса:

1) Открыть "Главное меню" (находится в левом нижнем углу экрана);
2) В открывшемся меню найдите и выберите категорию "Администрирование";
3) В списке доступных инструментов администрирования найдите пункт "Настройка киоска";
4) После запуска программы появится запрос на ввод пароля суперпользователя (root);
5) Настройте параметры режима киоска через интерфейс и примените изменения.

Настройка режима одного приложения в графическом интерфейсе:
  1) В разделе выбора режима выберите "Режим одного приложения";
  2) В списке выберите приложение, которое будет запущено в режиме киоска;
  3) Если выбранное приложение является браузером (например, Chromium, Firefox и т.д.), укажите URL, который будет открыт;
  4) Нажмите кнопку "Включить режим киоска" для применения настроек.
