_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Dmitry A. Fedorov 2:5020/400 Mon 07 Feb 28 16:18
Subj : Как разрешить доступ пользовательской программе...
________________________________________________________________________________
From: "Dmitry A. Fedorov" <D.A.Fedorov@inp.nsk.su>
Yuri Kazin wrote:
>
> %Subj% к определенному диапазону поров компьютера (в смысле железа).
> Делаю ioperm(), говорит нет доступа. Это и понятно только root
> может иметь доступ к железу на прямую. А вот как разрешить простому
> пользователю?
Доступ к портам, полученный через ioperm(2)
как и многое другое наследуется через execve(2).
идешь сюда:
ftp://ftp.inp.nsk.su/export/fedorov/soft/
берешь:
ioperm-1.17.tar.gz
super-3.12.2.tar.gz
etoruid-1.1.tar.gz
собираешь, устанавливаешь, настраиваешь
/usr/local/etc/super.tab:
-------------------------
:global patterns=regex
#:global patterns=shell
:global relative_path=n
:global group_slash=n
:global gethostbyname=y
:global logfile=/var/log/super.log loguid=root
:global syslog=n # Also log via syslog
:global rlog_host=$UNAME_NODENAME # host of syslog daemon
:global password=n
:global renewtime=y timeout=15
:global timestampbyhost=y
:define _PATH /usr/local/bin:/usr/bin:/bin
:define SETPATH setenv=PATH=$_PATH
:define P "/usr/local/bin"
:define ETORUID "$P/etoruid"
:define PPI "$P/ioperm 0x240:0x10 --"
ppi $PPI" "$ETORUID \
user:group@$UNAME_NODENAME \
addgroups=group \
env=DISPLAY \
$SETPATH \
info="Execute command with I/O port permissions"
------------------------------------------------------------
запускаешь:
super ppi your-program args...
и если ты "user", входящий в "group",
твоя программа будет иметь доступ к портам 0x240-0x24F (какие напишешь)
и ничего более.
--
Eсли уж гайка есть, она должна быть затянута до конца.
--- ifmail v.2.15dev4 * Origin: INP (2:5020/400)