Конфигурационные и исполняемые файлы, службы STAL

Общие сведения о конфигурационных файлах, исполняемых файлах и службах STAL

Для настройки и функционирования STAL используются конфигурационные и исполняемые файлы, перечисленные в таблице (см. таблицу Список конфигурационных и исполняемых файлов STAL).

Перечень и описание служб STAL приведено в таблице (см. таблицу Список и описание служб, процессов и утилит STAL).

В большинстве случаев STAL не требует изменения конфигурационных файлов после установки.

Параметры внутри конфигурационных JSON-файлах имеют следующую структуру:

{
    "параметр": "значение",
    "параметр": [ "значение 1", ..., "значение N" ],
    "параметр": [ "значение 1", "%{значение 2}", ..., "значение N" ],
    "параметр": [ "аргумент:%\{значение}" ]
}

Поля формата %{параметр} используются для подстановки служебных значений.

Целочисленные значения не заключаются в кавычки.

Таблица 1. Список конфигурационных и исполняемых файлов STAL
Файл Описание

Исполняемые файлы STAL

/opt/termidesk/stal/scripts/clear-logs.sh

Скрипт для очистки всех журналов системы systemd а также утилиты dmesg

/opt/termidesk/stal/scripts/stal-create-report.sh

Скрипт для сбора всех журналов работы STAL (см. подраздел Сбор журналов STAL для передачи в техническую поддержку)

/opt/termidesk/stal/scripts/stal-mk-keytab.sh

Скрипт для формирования keytab-файла для Kerberos-аутентификации (см. подраздел Kerberos-аутентификация в STAL)

/opt/termidesk/stal/stal-kiosk

Исполняемый файл процесса stal-kiosk

/opt/termidesk/stal/stal-migration

Исполняемый файл службы stal-migration

/opt/termidesk/stal/stal-service

Исполняемый файл службы stal-service

/opt/termidesk/stal/stal-session

Исполняемый файл процесса stal-session

/opt/termidesk/stal/stal-session-manager

Исполняемый файл службы stal-session-manager

/opt/termidesk/stal/stal-shadow-server

Исполняемый файл процесса stal-shadow-server

/opt/termidesk/stal/stal-vprint

Исполняемый файл процесса stal-vprint

/opt/termidesk/stal/stal-waitx

Исполняемый файл процесса stal-waitx

/opt/termidesk/stal/xsession.sh

Скрипт для предварительной настройки и запуска графической оболочки, оконного менеджера. Запускается лидером сеанса stal-session после запуска процесса Xorg

Конфигурационные файлы STAL

/etc/stal/stal-applications.json

Конфигурационный файл настройки списка разрешенных программ

/etc/stal/stal-config.json

Конфигурационный файл настройки основных служб STAL

/etc/stal/stal-constrains.json

Конфигурационный файл настройки ограничения используемых ресурсов пользователя

/etc/stal/stal-kiosk.json

Конфигурационный файл настройки определения свойств окон приложений, запускаемых в режиме доставки приложений (киоск)

Конфигурационные файлы системы systemd

/usr/lib/systemd/system/termidesk-stal.service

Конфигурационный файл настройки запуска службы stal-service. Запуск службы выполняется автоматически после установки пакета и при перезапуске системы

/usr/lib/systemd/system/termidesk-stal-sesman.service

Конфигурационный файл настройки запуска службы stal-session-manager. Запуск службы выполняется автоматически после установки пакета и при перезапуске системы

Конфигурационные файлы системы PAM

/etc/pam.d/stal-auth

Конфигурационный файл настройки PAM при создании сеанса с обязательным требованием аутентификации пользователя перед созданием сеанса

STAL интегрирован с инструментом мониторинга событий и журналирования auditd ОС Astra Linux Special Edition, а также с системой PAM. Применение настроенных параметров мониторинга событий осуществляется модулем pam_parsec_aud. По умолчанию регистрация событий включена в PAM-сценариях /etc/pam.d/stal-auth, /etc/pam.d/stal-trust.

/etc/pam.d/stal-trust

Конфигурационный файл настройки PAM при создании сеанса для пользователя, который не может пройти аутентификацию перед созданием сеанса, например для схемы аутентификации с использованием Kerberos, OIDC или смарт-карт

Конфигурационные файлы системы D-BUS

/usr/share/dbus-1/system.d/ru.uveon.stal.conf

Конфигурационный файл для регистрации интерфейса ru.uveon.stal на системной шине D-BUS. Доступ к интерфейсу для управления возможен только для пользователей или процессов, включенных в группу stal-dbus. Интерфейс ru.uveon.stal предоставляет минимальный набор методов и сигналов необходимый для обеспечения управления функциями STAL

Изменять файл запрещено!

/usr/share/dbus-1/system.d/ru.uveon.stal.SessionManager.conf

Конфигурационный файл регистрации интерфейса ru.uveon.stal.SessionManager на системной шине D-BUS. Доступ к интерфейсу для управления возможен только для системной учетной записи stal-proxy

Изменять файл запрещено!

Конфигурационные файлы утилиты logrotate

/etc/logrotate.d/stal

Конфигурационный файл настройки ротации журналов STAL

Конфигурационные файлы сервера Xorg

/etc/X11/stal-xorg.conf

Файл конфигурации драйвера для видео подсистемы сервера Xorg.

WARNING: Изменять файл не рекомендуется.

/etc/X11/Xresources/x11-stal

Файл конфигурации графического сервера Xorg

Конфигурационные файлы службы ведения журналов syslog-ng

/etc/syslog-ng/conf.d/stal-kiosk.conf

Конфигурационный файл настройки перенаправления журналирования для процесса stal-kiosk

Конфигурационные файлы из каталога /etc/syslog-ng/conf.d/ используются службой systemd-ng для перенаправления сообщений, зарегистрированных службой systemd-journald, в тот или иной каталог.

/etc/syslog-ng/conf.d/stal-service.conf

Конфигурационный файл настройки журналирования для службы stal-service

/etc/syslog-ng/conf.d/stal-session.conf

Конфигурационный файл настройки журналирования для процесса stal-session

/etc/syslog-ng/conf.d/stal-session-manager.conf

Конфигурационный файл настройки журналирования для службы stal-session-manager

/etc/syslog-ng/conf.d/stal-shadow-server.conf

Конфигурационный файл настройки журналирования для процесса stal-shadow-server

/etc/syslog-ng/conf.d/stal-vprint.conf

Конфигурационный файл настройки журналирования для процесса stal-vprint

/etc/syslog-ng/conf.d/stal-waitx.conf

Конфигурационный файл настройки журналирования для процесса stal-waitx

Таблица 2. Список и описание служб, процессов и утилит STAL
Служба Описание

stal-service

Служба, являющаяся адаптером для всех взаимодействий с внешним окружением (компонентом «Сессионный агент», подключающимися к сеансу RDP-клиентами). Служба работает с уровнем привилегии системной учетной записи stal-proxy.

Функции службы:

  • изоляция менеджера сеансов stal-session-manager от внешних воздействий;

  • обслуживание подключений в процессе с низким уровнем привилегий;

  • обработка RDP-подключений через диспетчер входящих подключений, реализованный непосредственно в stal-service;

  • взаимодействие с компонентом «Сессионный агент». Обеспечивается регистрацией на системной шине D-BUS интерфейса ru.uveon.stal.

Последовательность обработки RDP-подключения:

  • диспетчер входящих подключений идентифицирует входящий запрос на подключение (на уровне обработки пакета CR-PDU);

  • при успешном определении цели подключения служба stal-service обращается с запросом к менеджеру сеансов stal-session-manager для организации канала транспорта;

  • в случае успешной проверки и доступности необходимого сеанса диспетчер входящих подключений передает дескриптор (сокет) входящего подключения в процесс транспорта stal-shadow-server;

  • stal-shadow-server запускается в контексте процесса лидера необходимого сеанса и далее работает с привилегией учетной записи пользователя, для которого организован сеанс

stal-session

Процесс, организующий работу сеанса пользователя и являющийся лидером сеанса. Порождается службой stal-session-manager. Процесс регистрирует все события в системном журнале с идентификатором stal-session.

Функции процесса:

  • создание группы процессов, необходимых для функционирования графического окружения сеанса пользователя: запуск сервера X11, оконного менеджера и процесса транспорта stal-shadow-server, а также запрос к системе PAM для аутентификации пользователя и открытия или закрытия сеанса;

  • отслеживание состояния порожденных процессов;

  • взаимодействие с менеджером сеансов stal-session-manager для полного контроля над текущим состоянием сеанса и возможности оперативного изменения его настроек;

  • запуск транспорта для входящего RDP-подключения по запросу службы stal-service через stal-session-manager

stal-session-manager

Служба, управляющая сеансами пользователей, является менеджером сеансов и работает с высоким уровнем привилегий для обеспечения возможности создания и управления лидерами сеансов stal-session.

Функции службы:

  • управление сеансами пользователей: создание, удаление, подключение протокола и т.д. Обеспечивается регистрацией на системной шине D-BUS интерфейса ru.uveon.stal.SessionManager;

  • ограничение ресурсов для процессов лидеров сеансов;

  • ограничение ресурсов пользовательских сеансов, заданных в файле stal-constrains.json

stal-shadow-server

Процесс, реализующий доставку графического окружения пользователя, перенаправление каталогов, буфера обмена, аудио, видео, микрофона, принтера, смарт-карт, считывателей и др. Процесс использует реализацию протокола RDP в виде доработанных библиотек FreeRDP, поставляемых вместе с остальными компонентами STAL. Библиотеки FreeRDP, поставляемые в составе дистрибутива ОС, не используются.

Выполняется в контексте процесса с уровнем привилегии пользователя.

Функции процесса:

  • перенаправление ресурсов и доставка графического окружения;

  • загрузка необходимых плагинов (/opt/termidesk/stal/plugins/) в зависимости от настроек и политик

stal-kiosk

Процесс для работы с окнами приложений в режиме киоска

stal-migration

Процесс для работы с миграциями конфигураций при обновлении со STAL версии 3.0.X

stal-vprint

Процесс для подсистемы печати

stal-waitx

Процесс для проверки корректности запуска и работы графического сервера Xorg

Лидер сеанса (session leader) - это процесс, идентификатор сеанса (SID) которого равен его собственному идентификатору (PID). Отвечает за создание сеанса и группировку связанных процессов.

Файл stal-config.json

Файл /etc/stal/stal-config.json определяет параметры работы основных служб STAL, обеспечивающих запуск и останов графических сессий пользователя и реализующих основной функционал компонента.

Пример файла /etc/stal/stal-config.json:

{
    "logger": {
        "type": "systemd",
        "level": "debug"
    },

    "runtime": {
        "dir": "/run/stal",
        "env": []
    },

    "xserver": {
        "path": "/usr/bin/Xorg",
        "args": [ "-config", "stal-xorg.conf", "-nolisten", "tcp" ],
        "sock": "/tmp/.X11-unix/X%{display}"
    },

    "xsession": {
        "path": "/usr/bin/fly-wm",
        "args": []
    },

    "applications": {
        "systems": true,
        "config": "/etc/stal/stal-applications.json",
        "ignores": [
            "1cestart.desktop"
        ]
    },

    "pam": {
        "auth": "stal-auth",
        "noauth": "stal-trust"
    },

    "limits": {
        "users": 200,
        "sessions": 1000,
        "clipboard": 0
    },

    "groups": {
        "allow": [],
        "xauth": "stal-xauth",
        "sdbus": "stal-dbus"
    },

    "timeouts": {
        "start": 15,
        "seamless": 60,
        "notconnected": 60,
        "inactivity": 0,
        "duration": 0,
        "disconnect": 0,
        "autoconnect": 10
    },

    "transport": {

        "logger": {
            "type": "default",
            "level": "info"
        },

        "kerberos": {
            "realm": "UVEON",
            "keytab": "/etc/krb5.keytab"
        },

        "tcp": {

            "listener": {
                "port": 3389,
                "host": "0.0.0.0",
                "backlog": 5
            },

            "keepalive": {
                "enable": true,
                "delay": 5,
                "retries": 3,
                "interval": 2
            }
        },

        "rdp": {
            "shm": true,
            "fps": 5,
            "codecs": [
                "+gfx-progressive",
                "-gfx-rfx",
                "-gfx-planar",
                "-gfx-avc420",
                "-gfx-avc444"
            ]
        },

        "redirects": {
            "drive": true,
            "print": true,
            "smartcard": true,
            "audio": false,
            "microphone": false,
            "videocam": false,
            "vitamin": false,
            "clipboard:server": true,
            "clipboard:client": true,
            "clipboard:file": true
        },

        "printers": [
            {
                "name": "Brother HL-1200 series",
                "ppd": "brother-HL1200-cups-en.ppd"
            },
            {
                "name": "Brother HL-1500 series",
                "ppd": "brother-HL1500-cups-en.ppd"
            }
        ]
    },

    "policies": {
        "connection": "PrevReplace",
        "notification": false
    },

    "options": {
        "session:disconnected:freeze": false,
        "desktop:scaling": false,
        "device:scaling": false
    }
}

Список доступных параметров конфигурационного файла /etc/stal/stal-config.json приведен в таблице (см. таблицу Описание параметров файла конфигурации stal-config.json).

Для упрощения записи параметров дочерних узлов дерева конфигурации в таблице используется синтаксис с разделителем ::. Таким образом, например, запись logger::type соответствует фрагменту конфигурации:

{
    ...
    "logger": {
        "type": "systemd",
   },
    ...
}
Таблица 3. Описание параметров файла конфигурации stal-config.json
Параметр Значение по умолчанию Назначение

logger::type

systemd

Тип системы для журналирования сообщений

Менять значение по умолчанию не рекомендуется.

logger::level

debug

Уровень отладочных сообщений для служб termidesk-stal, termidesk-stal-sesman, а также процессов лидеров сеансов stal-session.

Возможные значения: debug, info, none

runtime::dir

/run/stal

Рабочий каталог сервиса STAL

runtime::env

Не задано

Пользовательские переменные окружения, которые будут доступны в сеансе. Допустимо применять шаблон %{uid}, в который подставляется реальный UID пользователя.

Возможные переменные:

  • RDPSND_BUFFER_THRESHOLD - настройка механизма адаптации размера отправляемых аудиоблоков. Позволяет принудительно отключить адаптивный режим и зафиксировать размер блоков (по умолчанию STAL настраивает размер буфера для аудиоданных длительностью 200 мс). Диапазон значений (в процентах): от 20 до 100. Пример задания значения: RDPSND_BUFFER_THRESHOLD=70;

  • XDG_RUNTIME_STAL_REDIRECT_DIR - настройка корня для перенаправляемых каталогов. Если определена переменная окружения XDG_RUNTIME_STAL_REDIRECT_DIR (важен сам факт ее определения, например, XDG_RUNTIME_STAL_REDIRECT_DIR=1), то корнем для всех перенаправляемых каталогов становится ${XDG_RUNTIME_DIR}/stal

xserver::path

/usr/lib/xorg/Xorg

Путь запуска X11-сервера

xserver::args

"-config", "stal-xorg.conf", "-nolisten", "tcp"

Список аргументов для X11-сервера

Менять значение по умолчанию не рекомендуется.

xserver::sock

/tmp/.X11-unix/X%{display}

Шаблон формата для размещения сокета X11-сервера

xsession::path

/usr/bin/fly-wm

Путь для запуска оконного менеджера сеанса. Значение зависит от целевого дистрибутива. Значение по умолчанию приведено для ОС Astra Linux Special Edition

xsession::args

Не задано

Список аргументов для запуска оконного менеджера сеанса. Значение зависит от целевого дистрибутива. Значение по умолчанию приведено для ОС Astra Linux Special Edition

applications::system

true

Флаг для управления функцией выдачи списка опубликованных приложений.

Значение true применяется для выдачи списка всех приложений, описанных в desktop-файлах каталога /usr/share/applications

applications::config

/etc/stal/stal-applications.json

Путь к файлу с конфигурацией опубликованных приложений, не описанных в desktop-файлах каталога /usr/share/applications или для определения полного списка приложений при применении параметра applications::system со значением false

applications::ignores

1cestart.desktop

Список имен приложений, игнорируемых для публикации. В значении параметра должен указываться desktop-файл программы: <имя программы>.desktop

pam::auth

stal-auth

Путь к файлу с описанием правил системы PAM, используемых при создании сеанса с обязательным требованием аутентификации пользователя перед этим

pam::noauth

stal-trust

Путь к файлу с описанием правил системы PAM, используемых при создании сеанса пользователя, который не может пройти аутентификацию перед этим. Например, для схемы аутентификации с использованием Kerberos, OIDC или смарт-карт

limits::users

200

Максимальное количество сеансов в режиме доставки приложений для одного пользователя

limits::sessions

1000

Общее максимальное количество всех сеансов

limits::clipboard

0

Размер буфера обмена в байтах. Значение 0 - буфер обмена не ограничен

timeouts::start

15

Время ожидания (в секундах) запуска сеанса. По истечении указанного времени произойдет отказ создания сеанса

timeouts::seamless

60

Время жизни (в секундах) сеанса приложения после отключения транспорта. В течение этого времени:

  • можно повторно подключиться сеансу;

  • приложение сохраняет свое состояние

groups::allow

Не задано

Список групп пользователей, которым разрешена аутентификация на сервере STAL. Если список не задан, то аутентификация разрешена всем пользователям

groups::xauth

stal-xauth

groups::sdbus

stal-dbus

timeouts::notconnected

60

Время ожидания (в секундах) первого подключения к сеансу после его создания. По истечении указанного времени сеанс завершится

timeouts::inactivity

0

Время жизни (в секундах) сеанса при бездействии. Значение 0 - время не ограничено

timeouts::duration

0

Время (в секундах) продолжительности работы сеанса. Значение 0 - время не ограничено

timeouts::disconnect

0

Время жизни (в секундах) сеанса доставки рабочего стола после отключения транспорта. Значение 0 - время не ограничено

timeouts::autoconnect

10

Время ожидания (в секундах) подключения транспорта. Применяется для совместимости с клиентами подключений, не идентифицировавшими запрос соединения в пакете CR-PDU с применением серверного идентификатора (cookie) для созданного сеанса

policies::connection

PrevReplace

Политика для нового подключения транспорта к сеансу с активным подключением.

Возможные значения:

  • NextDeny - если сеанс занят, то следующее соединение в него отменяется;

  • PrevReplace - если сеанс занят, то предыдущее соединение в него отменяется

policies::notification

false

Включение или отключение политики для информирования пользователя в его сеансе через механизм всплывающих сообщений

options::session:disconnected:freeze

false

Системный параметр, менять значение не рекомендуется

options::desktop:scaling

false

Включение или отключение поддержки масштабирования экрана в сеансе доставки рабочего стола

options::device:scaling

false

Системный параметр, менять значение не рекомендуется

Конфигурация секции transport

logger::level

info

Уровень отладочных сообщений для процесса stal-shadow-server.

Возможные значения: debug, info

logger::type

default

Тип системы для журналирования сообщений

Менять значение по умолчанию не рекомендуется.

kerberos::realm

UVEON

Область домена аутентификации Kerberos

kerberos::keytab

/etc/krb5.keytab

Путь к файлу ключей Kerberos для STAL. Для файла должно быть выдано разрешение на чтение для группы stal-proxy

tcp::listener::port

3389

TCP-порт для подключения транспорта RDP

tcp::listener::host

0.0.0.0

IP-адрес (IPv4) интерфейса для сокета пролушивания входящих подключений. Значение 0.0.0.0 - сокет привязывается ко всем интерфейсам узла

tcp::listener::backlog

5

Размер очереди (на уровне ядра ОС) для сокета пролушивания входящих подключений. При переполнении очереди соединение сбрасывается.

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

keepalive::enable

true

Включение или отключение использования механизма keepalive

keepalive::delay

5

Время простоя (в секундах) соединения, по истечении которого начнется передача проверочных TCP-пакетов (keepalive probes)

keepalive::retries

3

Максимальное количество проверочных TCP-пакетов, отправляемыx перед сбросом соединения

keepalive::interval

2

Время (в секундах) между отправками отдельных проверочных TCP-пакетов

rdp::shm

true

Включение или отключение поддержки расширения MIT-SHM для X11-сервера

rdp::fps

5

Максимальное количество кадров в секунду (FPS) для захвата, кодирования и доставки изображения рабочего стола или приложения. Реальное значение FPS в процессе работы зависит от пропускной способности канала и адаптируется в диапазоне значений от 1 до максимального:

  • если значение параметра меньше 10, то адаптация возможна до значения, на половину большее указанного (<значение> + 0.5 * <значение>);

  • если значение параметра больше или равно 10, то адаптация возможна только до указанного значения.

Параметр непосредственно связан с ресурсами узла и его текущей загруженности.

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

Возможные значения: от 5 до 25

rdp::codecs

"+gfx-progressive", "-gfx-rfx", "-gfx-planar", "-gfx-avc420", "-gfx-avc444"

Список кодеков для декодирования изображения. Используется для процесса stal-shadow-server (транспорта RDP)

WARNING: Менять значения по умолчанию не рекомендуется. Изменение должно согласовываться с возможностями клиента подключений, системным окружением и самого STAL.

redirects::drive

true

Включение или отключение политики перенаправления каталогов

redirects::print

true

Включение или отключение политики перенаправления принтеров

redirects::smartcard

true

Включение или отключение политики перенаправления смарт-карт

redirects::audio

false

Включение или отключение политики перенаправления аудио-вывода

redirects::microphone

false

Включение или отключение политики перенаправления микрофона

redirects::videocam

false

Включение или отключение политики перенаправления веб-камеры

redirects::vitamin

false

Включение или отключение политики перенаправления считывателя TouchMemory производства ООО «Фирма ИнфоКрипт»

redirects::clipboard:server

true

Включение или отключение политики разрешения перенаправления буфера обмена на сервер

redirects::clipboard:client

true

Включение или отключение политики разрешения перенаправления буфера обмена на клиент подключений

redirects::clipboard:file

true

Включение или отключение политики разрешения перенаправления файлов через буфер обмена на сервер

printers::name

Brother HL-1200 series, Brother HL-1500 series

Имя драйвера принтера, используемого пользователем

printers::ppd

brother-HL1200-cups-en.ppd, brother-HL1500-cups-en.ppd

Имя файла драйвера принтера, используемого пользователем

Файл stal-kiosk.json

Файл /etc/stal/stal-kiosk.json предназначен для определения свойств окон приложений (см. рисунок Влияние stal-kiosk на поведение окна), запускаемых в режиме доставки приложений (киоск).

image
Рисунок 1. Влияние stal-kiosk на поведение окна

Пример файла /etc/stal/stal-kiosk.json:

[
    {
        "wm:window:type": "dialog",
        "wm:class": "1cv8*",
        "wm:window:role": "GtkFileChooserDialog",
        "frame": false,
        "fullscreen": true
    },
    {
        "wm:window:type": "dialog",
        "wm:class": "1cv8*",
        "frame": false,
        "fullscreen": false
    },
    {
        "wm:class": "xterm",
        "frame": false,
        "fullscreen": true
    },
    {
        "wm:window:type": "normal",
        "wm:class": "*",
        "frame": false,
        "fullscreen": true
    },
    {
        "wm:window:type": "dialog",
        "wm:class": "*",
        "frame": true,
        "fullscreen": false
    }
]

Поведение окон, описанное в файле конфигурации /etc/stal/stal-kiosk.json, реализуется по тегам системной утилиты xprop. Список доступных параметров приведен в таблице (см. таблицу Описание параметров файла конфигурации stal_kiosk).

Для получения значения тега для определенного окна нужно:

  • запустить окно нужного приложения;

  • запустить утилиту xprop из интерфейса командной строки:

xprop
  • выбрать левой кнопкой мыши открытое окно, теги которого необходимо получить;

  • информация по тегам утилиты xprop, назначенных для этого окна, отобразится в интерфейсе командной строки, пример:

WM_NAME(COMPOUND_TEXT) = "Домашняя - Менеджер файлов"
_NET_WM_NAME(UTF8_STRING) = "Домашняя - Менеджер файлов"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x3200008
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                window id # of group leader: 0x3200008
WM_CLIENT_MACHINE(STRING) = "cl-00000"
_NET_WM_PID(CARDINAL) = 1721
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 52429217
WM_CLASS(STRING) = "fly-fm-service", "fly-fm-service"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified size: 1333 by 913
                program specified minimum size: 182 by 219
                window gravity: Static
Таблица 4. Описание параметров файла конфигурации stal_kiosk
Параметр Назначение

wm:window:type

Соответствует тегу _NET_WM_WINDOW_TYPE утилиты xprop.

Допустимые значения: «dialog», «utility», «splash», «menu», «popup_menu», «tooltip», «notification», «normal»

wm:class

Соответствует тегу WM_CLASS утилиты xprop

wm:window:role

Соответствует тегу WM_WINDOW_ROLE утилиты xprop

frame

Определяет реализуемое действие: использовать (true) или запретить (false) дополнительное оформление окна

fullscreen

Определяет реализуемое действие: использовать (true) или запретить (false) полноэкранный режим для окна

Главное окно приложения всегда запускается в полноэкранном режиме!

Файл stal-constrains.json

Конфигурационный файл /etc/stal/stal-constrains.json предназначен для определения ограничений на используемые ресурсы сессий пользователя: памяти, процессора, количества процессов и задач, сети.

Для просмотра информации о конфигурационном файле используется команда:

man stal-constrains

Конфигурационный файл содержит секции:

  • "default": задает ограничения по умолчанию;

  • "groups": задает ограничения пользователя, если он состоит в указанной группе;

  • "users": задает ограничения пользователя.

Пример конфигурационного файла после установки STAL:

{
    "default": {
        "cpu:weight": 0,
        "cpu:quota": 0,
        "memory:high": "",
        "memory:max": "",
        "tasks:max": 0,
        "network:deny": "",
        "network:allow": ""
    },
    "groups": [
        {
            "name": "test-admins",
            "limits": {
                "cpu:weight": 0,
                "cpu:quota": 0,
                "memory:high": "",
                "memory:max": "",
                "tasks:max": 1024
            }
        },
        {
            "name": "test-users",
            "limits": {
                "cpu:weight": 0,
                "cpu:quota": 20,
                "memory:high": "2G",
                "memory:max": "3G",
                "tasks:max": 256
            }
        }
    ],
    "users": [
        {
            "name": "vasyan",
            "limits": {
                "cpu:weight": 0,
                "cpu:quota": 3,
                "memory:high": "1G",
                "memory:max": "2G",
                "tasks:max": 128,
                "network:deny": "any",
                "network:allow": "localhost"
            }
        }
    ]
}

Список доступных параметров конфигурационного файла приведен в таблице (см. таблицу Описание параметров конфигурационного файла stal-constrains.json).

Для упрощения записи параметров дочерних узлов дерева конфигурации в таблице используется синтаксис с разделителем ::. Таким образом, например, запись limits::cpu:weight соответствует фрагменту конфигурации:

{
    ...
    "limits": {
        "cpu:weight": 0,
   },
    ...
}

Подробную информацию по используемым значениям параметров системы управления службами systemd можно получить по ссылке: https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html.

Таблица 5. Описание параметров конфигурационного файла stal-constrains.json
Параметр Назначение

Секция "default"

cpu:weight

Соответствует параметру «CPUWeight» в системе управления службами systemd.

Значение по умолчанию: 100.

Разрешенные значения: от 1 до 10000.

Значение 0: функциональность не используется

cpu:quota

Соответствует параметру «CPUQuota» в системе управления службами systemd.

Значение указывается в процентах на одно ядро процессора.

Значение 0: функциональность не используется

memory:high

Ограничение использования памяти выполняемыми процессами. Соответствует параметру «MemoryHigh» в системе управления службами systemd.

Значение задается в байтах. Также могут быть использованы суффиксы:

  • K - килобайт, например: 1K;

  • M - мегабайт, например: 1M;

  • G - гигабайт, например: 1G;

  • T - терабайт, например: 1T.

Значение не задано: параметр и функциональность не используются

memory:max

Абсолютное ограничение использования памяти выполняемыми процессами. Соответствует параметру «MemoryMax» в системе управления службами systemd.

Значения задаются аналогично параметру memory:high.

Значение не задано: функциональность не используется

tasks:max

Максимальное количество задач, которые можно создать для сессии. Соответствует параметру «TasksMax» в системе управления службами systemd.

Значение 0: функциональность не используется

network:deny

Соответствует параметру «IPAddressDeny» в системе управления службами systemd.

В качестве значений можно указывать:

  • разделенный пробелами список IP-адресов, каждый из которых может иметь значение маски после символа «/», например: 192.0.2.1/24;

  • символическое имя any: любой узел;

  • символическое имя localhost: локальный узел;

  • символическое имя link-local: все локальные IP-адреса;

  • символическое имя multicast: все IP-адреса многоадресной рассылки.

Значение не задано: функциональность не используется

network:allow

Соответствует параметру «IPAddressAllow» в системе управления службами systemd. Значения задаются аналогично параметру network:deny.

Значение не задано: функциональность не используется

Секции "groups" и "users"

name

Имя группы или пользователя, к которому будут применены ограничения

limits::cpu:weight

Аналогично параметру cpu:weight

limits::cpu:quota

Аналогично параметру cpu:quota

limits::memory:high

Аналогично параметру memory:high

limits::memory:max

Аналогично параметру memory:max

limits::tasks:max

Аналогично параметру tasks:max

limits::network:deny

Аналогично параметру network:deny

limits::network:allow

Аналогично параметру network:allow

Файл stal-applications.json

Конфигурационный файл /etc/stal/stal-applications.json предназначен для задания списка разрешенных приложений, не имеющих файлов .desktop в каталоге /usr/share/applications.

Для просмотра информации о конфигурационном файле используется команда:

man stal-applications

Параметры внутри файла /etc/stal/stal-applications.json имеют следующую структуру:

[
    {
        "name": "наименование приложения",
        "path": "путь для запуска приложения" ,
        "args": [ "аргумент запуска 1", ..., "аргумент запуска N" ],
    }
]

Пример файла:

[
    {
        "name": "Midnight Commander",
        "path": "/usr/bin/xterm",
        "args": [ "-e", "/usr/bin/mc" ]
    },
    {
        "name": "Firefox (Secondary Profile)",
        "path": "/usr/bin/firefox",
        "args": [ "--ProfileManager" ]
    },
    {
        "name": "Chromium (Secondary Profile)",
        "path": "/usr/bin/chromium",
        "args": [ "--temp-profile" ]
    }
]