On Wed, Aug 27, 2008 at 03:15:31PM -0700, Scott Rotondo wrote:
> So apparently there is more divided opinion on this issue than I 
> thought. Who would have guessed? ;-)
> 
> I think that individual privilege and authorization names should be the 
> stable interfaces presented to administrators rather than the names of 
> RBAC profiles that contain them. My reasons for this view include the 
> following:
> 
> [...]
> 
> 2. There is no intent to prevent overlap between RBAC profiles. The same 
> authorization, for example, may be granted by multiple profiles included 
> in Solaris, as well as additional ones defined by the user. In such an 
> environment, there is no obvious rationale for selecting which profile 
> to specify on a man page like this one.
> 
> [...]

IMO profile names and semantics are more likely to be stable than
authorization names and their semantics.

That is mostly because authorizations are very specific and therefore
tend to expose some implementation details (e.g., the 'smf' part of most
authoritzations used by SMF services), whereas profiles are typically,
and by necessity broader in scope than authorizations.

That customers can create new profiles that overlap with Sun-provided
profiles is actually a good thing: it allows customers to deal with
backwards incompatible changes to authorizations (e.g., removals of
authorizations) by updating just the affected customer-maintained
profiles, as opposed to the affected user_attr(4) entries.  The former
is easier to do than the latter.

The change that's really interesting in this case is that coreadm will
no longer require use of pfexec (or profile shell, or root shell) to
execute it with privilege, but using pfexec as usual will not break.
The inverse would not have been a backward compatible change.

IMO we should encourage developers to design suitable profiles and make
their interface stability match that of the most stable project
component related to that profile, and we should allow authorizations to
be less stable.  E.g., "profiles should be Committed and authorizations
may be Uncommitted."

And we should explicitly document "requires privilege"->"requires
authorization" changes as backward compatible while the reverse is not
[until a project comes along that makes explicit use of pfexec
unnecessary].

Nico
-- 

Reply via email to