Режим киоска в РЕД ОС реализуется с помощью доработанных командной оболочки 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), по умолчанию, а также при
  указании значения 0 минут,  блокировка экрана отключается;
* отображение кнопки блокирования экрана на главной панели (по умолчанию кнопка
  не отображается) указанием ключа -b или --blockbtn;
* включение автоматического скрытия главной панели Рабочего стола (по умолчанию
  она постоянно отображается) ключом -i или --autohide;
* при необходимости запуска разрешённых приложений в «песочнице» для более
  значимых ограничений (проект использует пакет Firejail), необходимо указать
  ключ -f или --firejail. Если требуется задать какую-либо опцию для firejail
  (согласно его официальной документации), то данные ключи можно привести в
  двойных кавычках либо сразу после опции, либо после знака равенства.

Например:

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

или

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

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

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

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

kiosk-mode-off -u sidorov

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

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

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

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

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

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

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