Vale> Ну, не знаю - я, хоть и был в нужной группе, доступа не получил к АЦП, только под рутом.
А ты зашёл под своим логином — он в ту группу входил? Попробуй сказать в командной строке
newgrp iocard
И запусти программку снова. Эффективные ID будут user и iocard. Если процесс получит доступ к нужному ресурсу, то надо смотреть, как разрешить (кажетсья надо установить s бит для групп). Если нет, то там надо запускать, как рута и потом ставить нужные ID.
Вообще ещё почитай man getgroups — возвращает список групп, в которые ты входишь. Они называются supplementary group IDs и они тоже определяют доступ к ресурсам.
из командной строки можно выдать командочку
id
что посмотреть, что есть. Скажем, у меня выдаёт:
code c++
(evstiomv@opal)/<6>groups:66> id
uid=2548(evstiomv) gid=15(man) groups=15(man),127(csxmig),138(up),146(alaska),152(cadx)
(evstiomv@opal)/<6>groups:67>