At Wed, 05 Feb 2003 13:07:59 -0500,
Paul Davis wrote:
> 
> >i wrote a small helper library which allows applications to change
> >their realtime-priority without having root privilege.
> >
> >the method is similar like utempter library:  the library forks and
> >execs the checker program which is set as setuid-root.  then the
> >checker proves the invoking application and user (group or host) is
> >registered in the list, and if it's ok, changes the RT-priority of the
> >process.  since each user and each application is tested, it's more
> >secure.  the advantage is also that no special kernel patches are
> >necessary.
> 
> takashi - this isn't enough for most apps, because they need to use
> mlockall(2) as well. i don't think there is anyway to get the
> priviledge for this without either have an euid of 0 or have the
> relevant capabilities.

yes, that's true.
and it's also correct that mlock() can be achieved only via root-priv
or CAP_IPC_SHM capability, unfortunately.

the merit of my library is, however, that at least the RT-priority can
be changed even with a normal kernel in a more secure way.  that's
what it's for.  the importance of sched_setscheduler() is bigger than
mlock() usually.  but if you need really reliable operation, you must
take a root-priv.

btw, the similar mechanism can be applied to the case with
capabilities.  the sched_setscheduler() and mlock() wrappers call the
helper to change the capability of the caller process (with a certain
permission check) automatically if no capapbility was given.


Takashi

Reply via email to