Киоск
Описание
Режим «киоск» служит для ограничения прав пользователей в системе.
Профиль киоска – файл .desktop (обычно из /usr/share/applications), размещаемый в каталог /etc/kiosk. Задать профиль киоска для пользователя можно в модуль ЦУС «Локальные учетные записи» alterator-users (только GUI).
В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox.
Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:
- Создать каталог /etc/kiosk (если он еще не создан):
# mkdir /etc/kiosk
- Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:
# cp /usr/share/applications/firefox.desktop /etc/kiosk/
- Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:
# vim /etc/kiosk/firefox.desktop [Desktop Entry] Exec=firefox http://<адрес_сайта>
- Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:
- Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле /etc/kiosk/firefox.desktop.
Так можно запускать любое приложение.
Примеры
Исходя из примечания выше, лучше всего сделать свой desktop-файл и скрипт, содержащий требуемое ПО, который будет запускаться. Ниже представлены примеры. marco --replace & в обоих случаях запускает менеджер окон, который позволит программе развернуться на весь экран.
WEB-киоск
Файл /etc/kiosk/webkiosk.desktop:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/bin/webkiosk
Name=WEB-kiosk
Icon=start
Файл /usr/local/bin/webkiosk (его необходимо сделать исполняемым: chmod +x /usr/local/bin/webkiosk):
- Конфигурация для Mate:
#!/bin/bash marco --replace & chromium --kiosk --incognito https://ya.ru
- Конфигурация для KDE для запуска браузера на полный экран при любом разрешении:
- Предварительно устанавливаем jq:
# apt-get update && apt-get install jq
- Затем файл /usr/local/bin/webkiosk заполняем следующим содержимым:
#!/bin/bash kwin_x11 --replace & PREFERENCES=~/.config/chromium/Default/Preferences RESOLUTION=$(xdpyinfo | grep -Po "(?<=dimensions:)\s*([0-9]{1,}x[0-9]{1,})" | sed "s: ::g") WIDTH=$(echo $RESOLUTION | cut -d'x' -f1) HEIGHT=$(echo $RESOLUTION | cut -d'x' -f2) printf -v WINDOW_PLACEMENT '.browser.window_placement |= {bottom: %s, right: %s, top: 0, left: 0, maximized: true}' $WIDTH $$ jq "$WINDOW_PLACEMENT" $PREFERENCES > tmp.json && mv tmp.json $PREFERENCES chromium-gost --window-size=$WIDTH,$HEIGHT --start-maximized --no-default-browser-check --kiosk https://basealt.ru
- Конфигурация для LXDE с использованием браузера palemoon/newmoon
- Palemoon/newmoon не имеет режима kiosk, будем его эмулировать сами. В пользовательском конфиге ~/.config/openbox/lxde-rc.xml делаем правило, для браузера palemoon/newmoon работать в режиме fullscreen. Для этого в секции applications, добавляем правило application
<applications> ... <application class="Pale moon" name="Navigator"> <fullscreen>yes</fullscreen> </application> ... </applications>
- Параметры class, name - взяты из результата работы команды - obxprop|grep '^_OB_APP'
- Файл /usr/local/bin/webkiosk заполняем следующим содержимым:
#!/bin/sh openbox-lxde & while /usr/bin/palemoon; do true; done
- Это даст повторное открытие браузера, если он по какой-то причине будет закрыт
RDP-киоск
Файл /etc/kiosk/rdpkiosk.desktop:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/bin/rdpkiosk
Name=RDP-kiosk
Icon=start
Файл /usr/local/bin/rdpkiosk:
#!/bin/bash
marco --replace &
xfreerdp /v:192.168.0.250 /t:'TS' /f +clipboard /drives /bpp:32 /gdi:sw /cert-ignore +auto-reconnect -sec-nla
/sbin/poweroff #позволит выключать ПК при выходе из терминального сеанса