On Mon, 2009-05-11 at 13:20 -0700, Liane Praza wrote:
> Sebastien Roy wrote:
> > Is there a way to start a service method with a different set or
> > privileges depending on whether or not it's being run in the global
> > zone?
> 
> Not explicitly as part of SMF.

Okay.

> (I guess I find software which requires a different privilege set inside 
> the local zone a bit surprising, especially in the world of configurable 
> zone privileges.)

The context is that the DHCP server requires "all" privileges because it
calls a plugin API that 3rd parties could use to have the data stored by
the server be in an arbitrary data-store.  The privilege set required by
the plugin callbacks is unknown, and therefore the service runs with all
privileges.

The other piece of the puzzle is that the DHCP server doesn't currently
run in non-global zones because the service manifest explicitly calls
out that "all" privileges are needed by the start method, and non-global
zones don't have "all" privileges available.

A possible fix to allow the DHCP server to run in non-global zones would
have been to specify only the required set of privileges in the
manifest, but that would cause a regression for 3rd parties that may
required special privileges to access their data-stores.  The idea then
came up that perhaps the service could run with all privileges in the
global zone (the only possible place where 3rd party data-stores could
be in use today), and with only the set of known required privileges in
non-global zones.

I think at this point, omitting the privilege tag in the manifest is the
only way to get this thing to reliably run in non-global zones while
preserving backward compatibility in the global zone.  This results in
the service running with the maximum set of available privileges, right?

-Seb



Reply via email to