Рутокен ЭЦП 2.0 / Рутокен Lite не виден в Terminal командой pcsctest
Описание
В окне "Информация о системе" - "USB" виден Рутокен:
Однако при запуске тестирования смарт-карты в Terminal командой pcsctest, носитель не отображается:
MacBook-Pro:~ user$ pcsctest
MUSCLE PC/SC Lite Test Program
Testing SCardEstablishContext : Command successful.
Testing SCardGetStatusChange
Please insert a working reader : 1
Причина
Устройства Рутокен Lite и Рутокен ЭЦП 2.0 являются USB CCID совместимыми устройствами.
За поддержку стандарта CCID в операционных системах Apple отвечает модуль libccid
.
Модуль libccid
имеет конфигурационный файл info.plist с описанием устройств, проверенных автором модуля на совместимость.
Внесение изменений в этот файл должно происходить по строго определенной схеме и, в случае нарушения очередности строк, устройства могут перестать отображаться.
В macOS версии 10.11 El Capitan и выше был переработан механизм безопасности системы, который блокирует возможность редактирования файла info.plist всем пользователям, в том числе пользователям, обладающими root-правами.
Решение
Отключение System Integrity Protection (SIP)
Для редактирования файла Info.plist необходимо отключить SIP:
1. Перезагрузите Mac в Recovery Mode. Для этого необходимо нажать "Перезагрузить" и сразу после выключения держать комбинацию Command+R (либо alt) до того момента, пока не появится лого Apple.
2. Запустить терминал (Utilities > Terminal).
3. В окне терминала набрать команду csrutil disable и нажать Enter.
4. Перезагрузить Mac.
Найдите файл info.plist, который находится по адресу: /usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/
Для этого выполните следующие действия:
1) Нажмите правой кнопкой мыши на значке "Finder" - выберите пункт "Переход к папке" (на тачпаде нажать двумя пальцами).
2) Необходимо перейти к папке /usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/
Переименуйте файл info.plist.
Скачайте файл info.plist и скопируйте его в эту же папку.
После этого проверьте работу с Рутокен Lite и Рутокен ЭЦП 2.0.
Если SIP необходимо включить обратно, то можно повторить описанные выше действия, изменив команду csrutil disable на csrutil enable.