Содержание
Описание: обеспечение доступа к смарт-картам через PC/SC (фоновая служба).
Назначение: Служба PC/SC используется для динамического подключения/отключения драйверов считывателей «на лету» и управления соединениями со считывателями.
Глобальные настройки
Для запуска сервиса pcscd с ненулевой мандатной меткой, файл /lib/systemd/system/pcscd.service следует привезти к виду:
[Unit] Description=PC/SC Smart Card Daemon #Requires=pcscd.socket [Service] ExecStart=/usr/sbin/pcscd --foreground --auto-exit ExecReload=/usr/sbin/pcscd --hotplug CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK [Install] #Also=pcscd.socket WantedBy=multi-user.target
После чего следует ввести команды:
sudo systemctl daemon-reload
sudo systemctl disable pcscd.socket
sudo systemctl restart pcscd.service
После запуска сервиса pcscd проверить, что ему присвоено значение ehole. Для этого воспользуйтесь командой:
sudo pdp-ls -Ma /var/run/pcscd/pcscd.comm
1) Атрибуты файле pcscd.comm, должно быть таким:
srw-rw-rw-m-- 1 root root Уровень_0:Низкий:Нет:ehole /var/run/pcscd/pcscd.comm
2) В ином случае следует удалить pcscd.comm командой:
sudo rm -r /var/run/pcscd/pcscd.comm
и перезапустить службу pcscd:
systemctl restart pcscd
Проверка
Для проверки, следует зайти под пользователем с ненулевой мандатной меткой и обратиться к токену:
к примеру с командой:
root@smolensk: # opensc-explorer OpenSC Explorer version 0.16.0 Using reader with a card: Aktiv Rutoken ECP 00 00 OpenSC [3F00]>
Запуск с определенным уровнем конфиденциальности
Для запуска сервиса pcscd с определенной мандатной меткой, файл /lib/systemd/system/pcscd.service следует привезти к виду:
[Unit] Description=PC/SC Smart Card Daemon [Service] ExecStart=/usr/sbin/pcscd --foreground --auto-exit ExecReload=/usr/sbin/pcscd --hotplug PDPLabel=1:63:0 [Install] WantedBy=multi-user.target
PDPLabel=<Уровень>:<Уровень целостности>:<Категории>
Формат метки PDPLabel аналогичен принятому в системе PARSEC за исключением
поля типа метки
После чего следует ввести команды:
sudo systemctl daemon-reload
sudo systemctl restart pcscd.service
sudo systemctl status pcscd.service