Hi Tony and others,

I've attached the latest versions with the auths and method context.   
One question I do have is about updating prof_attr.  Are there any  
rules surrounding how to update this file?  Currently I've added  
solaris.sfm.manage.acpihpd to the "Maintenance and Repair" profile  
since it makes sense there but I could also create a separate profile  
just for this daemon and then also include it in "Maintenance and  
Repair".  It seems odd to make a profile just for this one daemon.

I'd appreciate it if you could take a look.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: acpihpd.xml
Type: application/xml
Size: 1999 bytes
Desc: not available
URL: 
<http://mail.opensolaris.org/pipermail/smf-discuss/attachments/20091124/ee11636b/attachment.wsdl>
-------------- next part --------------


Thanks,

Mike

On Nov 22, 2009, at 10:21 PM, Tony Nguyen wrote:

> Mike,
>
> I had a look but the manifest contains neither the recommended  
> authorization properties nor method context. I'd be happy to review  
> once the team figure out the security model and implement the  
> authorization properties and method context.
>
> -tony
>
> Michael Corcoran wrote:
>> 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
>>
>

Reply via email to