Привет всем!
Есть задача в 1С:Бухгалтерии (клиент которой крутится не в офтопике, а в честной RFR-25-64) реализовать обмен документами чарез ЭДО. Естественно ЭЦП. Для подписи берем типовой CryptoPro+RuToken. Это то, что сверху плавает. Настраиваем, как положено, от рута. И от рута (из командной строки) CryptoPro+RuToken работают, все шифруется, подписывается.
Однако, юзер 1С далеко не рут. А простой малоправный юзер. И с ним начались проблемы. а именно - CryptoPro, будучи запущенным от юзера, не видит RuToken'a. Копание в логах привело к констатации простого факта, что собака зарылась в правилах доступа демона tcscd. Вот что оно нам, английским по понятному, говорит в отладочном выводе:
[console]00011421 auth.c:137:IsClientAuthorized() Process 26371 (user: 1001) is NOT authorized for action: access_pcsc
00000170 winscard_svc.c:332:ContextThread() Rejected unauthorized PC/SC client
[/console]
Естественно, что когда к токену лезет рут, то такой ошибки не возникает.
В общем, знатоки, выручайте, как настроить pcscd для того, чтобы он пускал юзера (1001) к девайсу, а не только одного рута?
RFR-25 и CryptoPro
В мануале должны писать в какую группу надо добавить юзера, если там такого нет то грош цена такой программе и тем кто её писал.
Надо воткнуть этот самый RuToken и через udevadm monitor (а также анализируя вывод dmesg) посмотреть, какое устройство создается и какие права ему назначаются. Затем написать простенькое правило udev, которое будет выставлять группу, скажем, plugdev, и давать права чтения-записи для группы этому устройству. Ну, а дальше -- дело техники.
Надо воткнуть этот самый RuToken и через udevadm monitor (а также анализируя вывод dmesg) посмотреть, какое устройство создается и какие права ему назначаются. Затем написать простенькое правило udev, которое будет выставлять группу, скажем, plugdev, и давать права чтения-записи для группы этому устройству. Ну, а дальше -- дело техники.
Боюсь, что Вы не совсем правы. Если бы не хватало прав на чтение-запись, то сообщение об ошибке было бы на предмет permission denied. А здесь - отлуп по access'у. Не проходит авторизация пользователя. Это несколько иное, чем недостаток прав.
Хотя, надо попробовать...
Проблема решена. Решение по ссылке: https://access.redhat.com/blogs/766093/posts/1976313
По дефолту смарт и прочие карты видны только руту или консольному юзеру. Остальным - облом. И это во многопользовательской среде правильно. Если надо кому пользоваться смарткартой - изволь править под него соответствующие рульки в polkit'е.