tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: secmodel_register(9) API
hi,
> On Tue, 29 Nov 2011 11:13:01 +0000 (UTC), yamt%mwd.biglobe.ne.jp@localhost
> wrote:
>>> Reviews before merge welcome. If nobody raises his voice, I'll
>>> proceed
>>> to commit it at the end of the week.
>>
>> i hesitate to complicate kauth related locking rules, given that it's
>> already broken. have you checked if it's safe for these listeners
>> sleep?
>> (rw_enter can sleep.)
>
> I would say yes; the current patch uses secmodel_eval(9) for "curtain"
> mode, and its only applicable to kauth(9) listeners for:
> - socket "cansee" KAUTH_REQ_NETWORK_SOCKET_CANSEE
> - process KAUTH_REQ_PROCESS_CANSEE_{ARGS,ENTRY,OPENFILES}.
>
> All these listeners should have process context, so may sleep.
>
> Perhaps I can put pserialize(9) to good use there. Updates to
> secmodel(9) are not expected to happen that much often... You want me to
> have a look? That would make it lock-free even from softints.
if you are interested in, please.
see XXX in kauth_authorize_action_internal.
>
>> i thought the purpose of these secmodels are localize the knowledge
>> of
>> suser, securelevel, etc. secmodel_eval seems contradict.
>
> Exactly, that's the point. See below.
>
>> if anyone outside of the securelevel secmodel really needs to query
>> securelevel, doesn't it mean the variable just ought to be exported
>> in a normal way?
>
> "normal way" is quite difficult to define in the context of modules
> dynamic loading.
>
> Consider user_set_cpu_affinity: if the sysctl cannot be set any more
> when securelevel is above or below a threshold, checking for the
> securelevel variable means that this sysctl has a strong dependency on
> securelevel (or else, it won't be able to get the variable). So if you
> want to still provide this sysctl but without having securelevel loaded,
> you are screwed: it's part of this module.
>
> There are orthogonal requirements there: secmodels define a security
> policy, but there are situations where one would like to allow certain
> operations (different from default policy), but without putting a strong
> requirement on a specific secmodel(9). having to load securelevel just
> to provide this sysctl is non sense.
i don't understand the example.
your diff doesn't seem to do secmodel_eval("securelevel") at all.
>
> Same goes for suser (which controls rights for superuser):
> curtain/usermounts are not really a suser policy, rather an extension
> from it. Hence the secmodel_extensions stuff.
i don't understand what would be a suser policy and what would be an extension.
can you explain your criteria?
YAMAMOTO Takashi
>
> --
> Jean-Yves Migeon
> jeanyves.migeon%free.fr@localhost
Home |
Main Index |
Thread Index |
Old Index