Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 12 Следующий »

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


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

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1

  • Astra Linux Common Edition 2.12

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

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

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

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

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

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

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

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

lspci

и

lsusb

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

sudo loginctl list-seats

и подключенные к рабочему месту устройства:

sudo loginctl seat-status seat0

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

sudo loginctl seat-status seat0
seat0
         Devices:
                  ├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
                  │ input:input1 "Power Button"
                  ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
                  │ input:input0 "Power Button"
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0
                  │ [MASTER] drm:card0
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-DVI-I-1
                  │ │ [MASTER] drm:card0-DVI-I-1
                  │ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-HDMI-A-1
                  │ │ [MASTER] drm:card0-HDMI-A-1
                  │ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-VGA-1
                  │   [MASTER] drm:card0-VGA-1
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/renderD128
                  │ drm:renderD128
                  ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/graphics/fb0
                  │ graphics:fb0 "nouveaudrmfb"
                  ├─/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:06.0/0000:02:00.0/drm/card1
                  │ [MASTER] drm:card1
                  │ ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-2
                  │ │ [MASTER] drm:card1-DVI-I-2
                  │ └─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-3
                  │   [MASTER] drm:card1-DVI-I-3
                  ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/renderD129
                  │ drm:renderD129
                  ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/graphics/fb1
                  │ graphics:fb1 "nouveaudrmfb"
                  ├─/sys/devices/pci0000:00/0000:00:1a.0/usb3
                  │ usb:usb3
                  ├─/sys/devices/pci0000:00/0000:00:1a.1/usb4
                  │ usb:usb4
                  ├─/sys/devices/pci0000:00/0000:00:1a.2/usb5
                  │ usb:usb5
                  ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1
                  │ usb:usb1
                  │ └─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5
                  │   usb:1-5
                  │   ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input12
                  │   │ input:input12 "Telink SVEN WIRELESS MOUSE Mouse"
                  │   ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input13
                  │   │ input:input13 "Telink SVEN WIRELESS MOUSE Consumer Control"
                  │   └─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input14
                  │     input:input14 "Telink SVEN WIRELESS MOUSE System Control"
                  ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0
                  │ sound:card0 "Intel"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input15
                  │ │ input:input15 "HDA Intel Front Mic"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input16
                  │ │ input:input16 "HDA Intel Rear Mic"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input17
                  │ │ input:input17 "HDA Intel Line"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input18
                  │ │ input:input18 "HDA Intel Line Out Front"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input19
                  │ │ input:input19 "HDA Intel Line Out Surround"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input20
                  │ │ input:input20 "HDA Intel Line Out CLFE"
                  │ ├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input21
                  │ │ input:input21 "HDA Intel Line Out Side"
                  │ └─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input22
                  │   input:input22 "HDA Intel Front Headphone"
                  ├─/sys/devices/pci0000:00/0000:00:1d.0/usb6
                  │ usb:usb6
                  ├─/sys/devices/pci0000:00/0000:00:1d.1/usb7
                  │ usb:usb7
                  │ ├─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/0003:C0F4:01B0.0001/input/input5
                  │ │ input:input5 "USB usb keyboard"
                  │ ├─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input6
                  │ │ input:input6 "USB usb keyboard Consumer Control"
                  │ └─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input7
                  │   input:input7 "USB usb keyboard System Control"
                  ├─/sys/devices/pci0000:00/0000:00:1d.2/usb8
                  │ usb:usb8
                  │ ├─/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0/0003:10D5:0116.0003/input/input8
                  │ │ input:input8 "M02 1.6"
                  │ ├─/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.1/0003:10D5:0116.0004/input/input10
                  │ │ input:input10 "M02 1.6 System Control"
                  │ ├─/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.1/0003:10D5:0116.0004/input/input11
                  │ │ input:input11 "M02 1.6 Consumer Control"
                  │ └─/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.1/0003:10D5:0116.0004/input/input9
                  │   input:input9 "M02 1.6 Mouse"
                  ├─/sys/devices/pci0000:00/0000:00:1d.7/usb2
                  │ usb:usb2
                  ├─/sys/devices/platform/vhci_hcd.0/usb10
                  │ usb:usb10
                  ├─/sys/devices/platform/vhci_hcd.0/usb9
                  │ usb:usb9
                  ├─/sys/devices/virtual/misc/kvm
                  │ misc:kvm
                  └─/sys/devices/virtual/misc/rfkill
                    misc:rfkill

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

Внимание

Существование рабочего места определяется привязкой к нему видеокарты. Если отвязать видеокарту от рабочего места (привязав к другому рабочему месту), то все устройства привязанные к рабочему месту, оставшемуся без видеокары, станут недоступны. Чтобы вернуть доступ к таким устройствам нужно повторно привязать к рабочему месту видеокарту, и перепривязать устройства к другому рабочему месту.

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


Определив названия подключенных устройств создадим новое рабочее место seat1, привязав к нему видеокарту. Привязка корневого устройства видеокарты для приведенного выше комплекта устройств выполняется командой:

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1
Проверка:


sudo loginctl seat-status seat1

seat1
         Devices:
                  └─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1
                    [MASTER] drm:card1
                    ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-2
                    │ [MASTER] drm:card1-DVI-I-2
                    └─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-3
                      [MASTER] drm:card1-DVI-I-3

Далее выполнить привязку логических устройств мыши:

sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input12 \
                           /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input13 \
                           /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input14
И выполнить привязку клавиатуры:
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/0003:C0F4:01B0.0001/input/input5 \
                           /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input6 \
                           /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input7
Проверим состояние рабочего места seat1:

sudo loginctl seat-status seat1

В результате рабочее место seat1 должно получить полный набор устройств:

seat1
         Devices:
                  ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1
                  │ [MASTER] drm:card1
                  │ ├─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-2
                  │ │ [MASTER] drm:card1-DVI-I-2
                  │ └─/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1/card1-DVI-I-3
                  │   [MASTER] drm:card1-DVI-I-3
                  ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input12
                  │ input:input12 "Telink SVEN WIRELESS MOUSE Mouse"
                  ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input13
                  │ input:input13 "Telink SVEN WIRELESS MOUSE Consumer Control"
                  ├─/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input14
                  │ input:input14 "Telink SVEN WIRELESS MOUSE System Control"
                  ├─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/0003:C0F4:01B0.0001/input/input5
                  │ input:input5 "USB usb keyboard"
                  ├─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input6
                  │ input:input6 "USB usb keyboard Consumer Control"
                  └─/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input7
                    input:input7 "USB usb keyboard System Control"

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

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

/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:

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

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

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

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

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

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

Удаление дополнительного рабочего места

Для удаления дополнительного рабочего места:

  1. Удалить секцию удаляемого рабочего места в файле /etc/X11/fly-dm/fly-dmrc

    /etc/X11/fly-dm/fly-dmrc
    [X-:1-Core]
    ServerArgsLocal=-seat seat1
  2. Перезагрузить компьютер;
  3. Отвязать от удаляемого рабочего места все устройства кроме видеокарты. Отвязывание устройств выполняется перепривязкой устройств к рабочему месту seat0:

    sudo loginctl attach seat0 /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/0003:C0F4:01B0.0001/input/input5 \
                               /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input6 \
                               /sys/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.1/0003:C0F4:01B0.0002/input/input7
    sudo loginctl attach seat0 /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input12 \
                               /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input13 \
                               /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.2/1-5.2:1.0/0003:248A:8366.0005/input/input14
    Для полной перепривязки всех устройств команды может потребоваться повторить несколько раз.

  4. Убедившись с помощью команды sudo loginctl seat-status, что все устройства, кроме видеокарты, отвязаны, перепривязать к рабочему месту видеокарту:

    sudo loginctl attach seat0 /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/drm/card1


  • Нет меток