Tony, I did include the manifest in my last email :) http://opensolaris.org/jive/thread.jspa?threadID=118317&tstart=0 is the thread on opensolaris.org.
--Mike On Nov 20, 2009, at 5:07 PM, Tony Nguyen wrote: > Michael Corcoran wrote: >> Thanks for the help Alan, comments inline below. >> --Mike >> On Nov 20, 2009, at 1:52 AM, Alan Maguire wrote: >>> hi Mike >>> >>> Michael E. Corcoran wrote: >>>> Hi All, >>>> >>>> I'm working on a project where we have a new daemon that we want >>>> controlled by smf to support a specific hardware feature for a >>>> given platform. What we'd like would be to have this daemon >>>> start automatically and thus have it enabled by default, but this >>>> goes against the info at >>>> http://hub.opensolaris.org/bin/view/Community+Group+arc/SMF-policy >>>> >>>> "Services must be delivered (by manifest or programatically) >>>> disabled by default to align with Sun's security goals. Projects >>>> impacted by Appendix C, must consult with the ARC to determine if >>>> this aspect of the policy is applicable." >>>> >>>> >>> The usual approach here is to have the service disabled by default >>> in >>> the manifest but to specify that it is to be enabled in one of the >>> profiles >>> specified in /var/svc/profile. >> Great. this makes sense. >>> These consist of customizations that are >>> activated in particular scenarios. You'd want to add >>> >>> <service name='mysvc' version='1' type='service'> >>> <instance name='default' enabled='true'/> >>> </service> >>> >>> The question is which profile to add this to - there are platform- >>> specific >>> profiles already, see usr/src/cmd/svc/profile in the ON gate for >>> examples. You probably want to add it to one of these. >> So how do these profiles get activated on a specific machine? It >> looks like we'll have to make a platform_i86pc.xml since none >> currently exists. > > On every boot, system/manifest-import applies a couple of system > profiles, platform is one of these profiles. For specifics, see > section 3 of /lib/svc/method/manifest-import. For x86 machines, the > current platform profile is a symlink to platform_none.xml thus a > new platform_i86pc.xml for x86 machine is reasonable. > >>> >>>> Our plan was to have it enabled by default on all x86 platforms >>>> and then have it exit and disable itself if it determines that >>>> hardware does not support this specific feature. So I'm assuming >>>> we need to go to PSARC to figure out if this approach is >>>> acceptable or is there a different ARC we'd be going to? >>>> >>>> >>>> I'm also unclear about >>>> "Services must include an appropriate RBAC profile and set of >>>> authorizations for manipulating the service and its specific >>>> configuration." >>>> >>>> If our service has no configuration, then I think we don't need >>>> the above. Is that correct? >>>> >>>> >>> There's two parts to this - manipulations of state and manipulations >>> of configuration. You'd probably want an solaris.smf.manage profile >>> which specifies auths needed to change state (i.e. to enable/ >>> disable). >>> This is done by adding the following to the manifest: >>> >>> <property_group name='general' type='framework'> >>> <!-- to start stop my service --> >>> <propval name='action_authorization' type='astring' >>> value='solaris.smf.manage.mysvc' /> >>> <propval name='value_authorization' type='astring' >>> value='solaris.smf.manage.mysvc' /> >>> </property_group> >> Can you point me at an example of such a profile? It's not clear >> to me what solaris.smf.manage.mysvc would look like. I'm guessing >> that it's just adding info to /etc/security/prof_attr and /etc/ >> security/exec_attr as described in the privilege debugging doc on >> opensolaris.org. > > I believe you need to define a new auth in /etc/security/auth_attr > and optionally associate that auth to a profile in /etc/security/ > prof_attr. The service manifest uses the new auth to declare the > service's required authorization. See /var/svc/manifest/network/smtp- > sendmail.xml for example. > >> Also, I'm assuming that I want this to be user daemon so how does >> that play into all of this? > > See Method Context section under smf_method(5) on setting privileges > for the service daemon. > > With respect to manifest reviewing, I'm sure one of us will have a > look if you send to this alias :) > > cheers, > -tony