Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

В данной статье рассматривается настройка компьютера под управлением Astra Linux для одновременной работы нескольких  пользователей в режиме "multiseat". В качестве примера рассматривается настройка для работы двух пользователей, настройка для большего количества пользователей выполняется аналогично, главное, чтобы к компьютеру был подключено всё необходимое для этого оборудование.


Info
Термином multiseat обозначается физический компьютер, оборудованный для одновременной работы более чем одного пользователя в графической сессии, с прямым подключением пользовательских устройств ввода (клавиатуры, манипуляторы типа "мышь") и вывода (мониторы) к этому компьютеру.




Info

Данная статья применима к:

  • ОС ОН Орёл 2.12
  • ОС СН Смоленск 1.6


Требования к оборудованию

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

В данной инструкции используется компьютер со следующими характеристиками:

  • Установлена ОС Astra Linux Special Edition Смоленск версии 1.6 с установленными обновлениями безопасности;
  • Имеется встроенная видеокарта Intel;
  • Установлена дополнительная дискретная видеокарта Nvidia GeForce 1060;
  • Подключены две USB клавиатуры и две USB мыши.

Назначение устройств

Для каждого места (seat) необходимо назначить свои устройства ввода и вывода.

Определить устройства можно командами:

Command

lspci
lsusb

Устройства ввода и вывода назначаются через команду loginctl.
С помощью этой же команды можно проверить подключенные устройства:

Command

sudo loginctl list-seats
sudo loginctl seat-status seat0

Пример вывода команды loginctl (жирным шрифтом выделены сообщения про дополнительные видеокарту, клавиатуру и мышь):

Expand
Titlesudo loginctl seat-status seat0

seat0

         Devices:
                  ├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
                  │ input:input2 "Power Button"
                  ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
                  │ input:input3 "Video Bus"
                  ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
                  │ input:input1 "Power Button"
                  ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
                  │ input:input0 "Sleep Button"
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1
                  │ [MASTER] drm:card1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-1
                  │ │ [MASTER] drm:card1-DP-1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-2
                  │ │ [MASTER] drm:card1-DP-2
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DVI-D-1
                  │ │ [MASTER] drm:card1-DVI-D-1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-3
                  │ │ [MASTER] drm:card1-HDMI-A-3
                  │ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-4
                  │   [MASTER] drm:card1-HDMI-A-4
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/renderD129
                  │ drm:renderD129
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/graphics/fb1
                  │ [MASTER] graphics:fb1 "nouveaufb"

                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1
                  │ sound:card1 "NVidia"
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input23
                  │ │ input:input23 "HDA NVidia HDMI/DP,pcm=3"
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input24
                  │ │ input:input24 "HDA NVidia HDMI/DP,pcm=7"
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input25
                  │ │ input:input25 "HDA NVidia HDMI/DP,pcm=8"
                  │ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input26
                  │   input:input26 "HDA NVidia HDMI/DP,pcm=9"
                  ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card0
                  │ [MASTER] drm:card0
                  │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1
                  │ │ [MASTER] drm:card0-HDMI-A-1
                  │ └─/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2
                  │   [MASTER] drm:card0-HDMI-A-2
                  ├─/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
                  │ drm:renderD128
                  ├─/sys/devices/pci0000:00/0000:00:02.0/graphics/fb0
                  │ [MASTER] graphics:fb0 "inteldrmfb"
                  ├─/sys/devices/pci0000:00/0000:00:14.0/usb1
                  │ usb:usb1
                  │ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:046D:C31C.0001/input/input4
                  │ │ input:input4 "Logitech USB Keyboard"
                  │ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.1/0003:046D:C31C.0002/input/input5
                  │ │ input:input5 "Logitech USB Keyboard"
                  │ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/0003:046D:C077.0003/input/input6
                  │ │ input:input6 "Logitech USB Optical Mouse"
                  │ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7
                  │ │ input:input7 "Logitech USB Optical Mouse"
                  │ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:046D:C313.0005/input/input8
                  │ │ input:input8 "BTC USB Multimedia Keyboard"
                  │ └─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9
                  │   input:input9 "BTC USB Multimedia Keyboard"



Warning
titleВнимание
Обычно к дополнительным местам привязываются видеокарты, имеющие ненулевые номера, т.е. видеокарта card0 обычно закреплена за местом по-умолчанию seat0.
Однако перед выполнением привязки видеокарты следует убедиться, что карта с номером 0 действительно привязана к seat0.


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

Command

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1

Warning
titleВнимание
К дополнительным местам следует привязывать только карты, имеющие ненулевые номера, т.е. видеокарта card0 всегда должна быть закреплена за местом по-умолчанию seat0.


Привязка мыши:

Command

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7

И привязка клавиатуры:

Command

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:046D:C313.0005/input/input8

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9

Проверим состояние рабочего места seat1:

Command
sudo loginctl seat-status seat1

Пример вывода команды:

Expand
Titlesudo loginctl seat-status seat1

seat1
         Devices:
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1
                  │ [MASTER] drm:card1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-1
                  │ │ [MASTER] drm:card1-DP-1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-2
                  │ │ [MASTER] drm:card1-DP-2
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DVI-D-1
                  │ │ [MASTER] drm:card1-DVI-D-1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-3
                  │ │ [MASTER] drm:card1-HDMI-A-3
                  │ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-4
                  │   [MASTER] drm:card1-HDMI-A-4
                  ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7
                  │ input:input7 "Logitech USB Optical Mouse"
                  ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:046D:C313.0005/input/input8
                  │ input:input8 "BTC USB Multimedia Keyboard"
                  └─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9
                    input:input9 "BTC USB Multimedia Keyboard"

Настройка менеджера графических дисплеев

В целях безопасности в ОС Astra Linux менеджер графических дисплеев fly-dm работает от имени непривилегированного пользователя fly-dm. Для работы в режиме multyseat  следует переключить fly-dm на работу от имени root. Для этого в файле /etc/X11/fly-dm/fly-dmrc указать параметр ServerUID=root:

Code Block
languagebash
title/etc/X11/fly-dm/fly-dmrc
# The user the X-server should run as. Empty results - auto, i.e. 'root' or 'fly-dm' if KMS enabled.
# Default is ""
ServerUID=root

И в конце файла добавить информацию о новом рабочем месте seat1:

Code Block
title/etc/X11/fly-dm/fly-dmrc
[X-:1-Core]
ServerArgsLocal=-seat seat1

Разрешение одновременных сессий

В целях безопасности по-умолчанию в Astra Linux при переключении между сессиями неактивная сессия блокируется. Для одновременной работы двух и более сессий требуется дополнительная настройка. Откройте "Панель управления" через меню "Пуск", во вкладке "Рабочий стол" запустите программу "Оформление Fly". На вкладке "Блокировка" убрать галочку "Переключение на другую сессию".

Warning
Эту операцию нужно выполнить для каждого созданного пользователя, для каждого уровня конфиденциальности и для каждого уровня целостности.

После выполнения указанных действий перезагрузить компьютер:

Command
sudo reboot

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