Киоск: различия между версиями

Материал из ALT Linux Wiki
(lxde example added)
мНет описания правки
Строка 65: Строка 65:
...
...
</applications></source>
</applications></source>
*:Параметры class, name - взяты из результата работы команды  - <tt>obxprop|grep '^_OB_APP'</tt>
*:Параметры class, name - взяты из результата работы команды  - {{cmd|obxprop{{!}}grep '^_OB_APP'}}
*:Файл {{path|/usr/local/bin/webkiosk}} заполняем следующим содержимым:
*:Файл {{path|/usr/local/bin/webkiosk}} заполняем следующим содержимым:
*:<source lang="bash">#!/bin/sh
*:<source lang="bash">#!/bin/sh

Версия от 17:02, 2 декабря 2021

Описание

Режим «киоск» служит для ограничения прав пользователей в системе.

Профиль киоска – файл .desktop (обычно из /usr/share/applications), размещаемый в каталог /etc/kiosk. Задать профиль киоска для пользователя можно в модуль ЦУС «Локальные учетные записи» alterator-users (только GUI).

В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox.

Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:

  1. Создать каталог /etc/kiosk (если он еще не создан):
    # mkdir /etc/kiosk
    
  2. Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:
    # cp /usr/share/applications/firefox.desktop /etc/kiosk/
    
  3. Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:
    # vim /etc/kiosk/firefox.desktop
    [Desktop Entry]
    Exec=firefox http://<адрес_сайта>
    
  4. Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:
    Режим «киоск» для пользователя kiosk
  5. Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле /etc/kiosk/firefox.desktop.

Так можно запускать любое приложение.

Примечание: Приложение в режиме киоска будет запускаться не на полном экране, поэтому используйте параметры запуска приложения в режиме киоска (например, chromium --kiosk) или разверните окно иными способами.

Примеры

Исходя из примечания выше, лучше всего сделать свой 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 #позволит выключать ПК при выходе из терминального сеанса