Проблема:
В режиме мандатного управления доступом разрешён запуск ПО "Единый Клиент JaCarta" 2.12 и выше. ПО "Единый Клиент JaCarta" запускается, но подключенный токен JaCarta в нём не отображается. При запуске ПО "Единый Клиент JaCarta" без режима мандатного управления доступом токен отображается (Под 0 - ПО "Единый Клиент JaCarta" определяет токен , а под 1 – не определяет.). В логе службы pcscd в момент подключения токена появляется ошибка "LIBUSB_ERROR_NO_DEVICE".
Служба PC/SC не настроена на работу с ненулевыми мандатными атрибутами.
Настройка доступности службы pcscd осуществляется в двух вариантах: все пользователи (метка "ehole") или некоторые пользователи (для конкретных мандатных меток).
А. Для запуска сервиса pcscd c ненулевой меткой безопасности (будет доступно всем пользователям) в ОС Astra Linux 1.6:
Необходимо файл /lib/systemd/system/pcscd.service привести к виду:
[Unit]
Description=PC/SC Smart Card Daemon
#Requires=pcscd.socket
[Service]
ExecStart=/usr/sbin/pcscd --foreground
ExecReload=/usr/sbin/pcscd --hotplug
CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK
[Install]
#Also=pcscd.socket
WantedBy=multi-user.target
user ~$
sudo systemctl daemon-reload
sudo systemctl disable pcscd.socket
sudo systemctl restart pcscd.service
sudo systemctl enable pcscd.service
user ~$
sudo pdp-ls -Ma /var/run/pcscd/pcscd.comm
Атрибуты файла pcscd.comm должны быть такими:
srw-rw-rw-m-- 1 root root Уровень_0:Низкий:Нет:ehole /var/run/pcscd/pcscd.comm.
В ином случае следует удалить файл pcscd.comm командой:
sudo rm -r /var/run/pcscd/pcscd.comm и перезагрузить ПК.
Б. Для запуска сервиса pcscd с определённой меткой безопасности в ОС Astra Linux 1.6
[Unit]
Description=PC/SC Smart Card Daemon
[Service]
ExecStart=/usr/sbin/pcscd --foreground
ExecReload=/usr/sbin/pcscd --hotplug
PDPLabel=1:63:0
[Install]
WantedBy=multi-user.target,
Где PDPLabel=<Уровень>:<Уровень целостности>:<Категории>.
Формат метки PDPLabel аналогичен принятому в системе PARSEC за исключением поля типа - метки.
В блоке кода указан пример с запуском службы pcscd с 1-ым уровнем конфиденциальности
sudo systemctl daemon-reload
sudo systemctl restart pcscd.socket
sudo systemctl enable pcscd.service
sudo systemctl status pcscd.service