Based on your description of what you are trying to do I think you want 
an ACL based system for some of this rather than privileges.

The reason I think that is your comment about certain subjects only 
being able to remove the object changes they put in place.

Why an ACL rather than a privilege or authorisation ?

Authorisations are purely a userland concept and are usually used by 
privileged userland apps to control wither or not they use their 
privilege or perform some other sensitive operation.

With an ACL you can express exactly which operations a given subject or 
set of subjects can do to a given object.

In the general case rather than the specific case of firewall rules the 
sys_net_config privilege really does need to be broken up, even more so 
now that we have stack instances and vncs etc.  Though again privileges 
might not be the only thing we need.

Depending on the exact needs of the firewall rules case there could be a 
use for a PAGs (see the recent thread that Nico Williams started) 
approach to rules.  For example the rules to open up a given port are 
only valid while there are processes left in the PAG that added the 
rules, once they are all gone the rules should be automatically reaped.

In some ways type enforcement (the FMAC project for example) could be 
more appropriate here but we have to be very careful of the possible 
rule complexity that could bring along with it.  It could solve the 
problems but could also just create a new set instead by making the 
rules too flexible and thus to confusing to the end admin/app developer.

A simpler case might be to use what the FGAP project provides (note that 
some of this has already integrated).  This is a more natural extension 
of the privilege system so that more specific rules can be applied when 
a process *lacks* the privilege necessary to do the job.

--
Darren J Moffat

Reply via email to