LINUX.ORG.RU

IO user space


0

0

Может ли root "делегировать" права на диапазон IO портов процессу
юзера? Где читать?

anonymous

Непосредственно - нет.

Для доступа к IO портам процесс должен выполнить iopl() (ioperm() лучше не трогать) или open("/dev/port"). Эти вызовы не имеют pid в параметрах и действуют на текущий процесс, который должен иметь CAP_SYS_RAWIO.

Но root процесс (точнее, с правами CAP_SETPCAP) может дать CAP_SYS_RAWIO user процессу с помощью capset(), тот потом вызовет iopl().

idle ★★★★★
()

Thanx

Читаю man iopl, capset ;)
Буду рад (as beginer) дальнейшим посылам, линкам и тп
PS тащу из ДОСа кусочек АСУТП для самопальной ISA-карточки

anonymous
()

А не проще ли написать модуль ядра? С непривычки покажется что сложнее, но во-первых со временем привыкнешь, а во-вторых - это как бы стандартный способ. Как писать драйвера - http://www.xml.com/ldd/chapter/book/index.html.
PS А делегировать права не обязательно. Если у твоей проги owner root и у ней есть setuid bit (chmod +s ...) и соответсвующие права на исполнение, то любой юзер может ее запускать и иметь доступ к портам

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.