Я запускаю серверний процес у SMF (Server Management Facility) на зображенні Joyent Base64 1.8.1 SmartOS.
Для тих, хто не знайомий з SmartOS, це хмарний розподіл IllumOS з KVM. Але по суті він схожий на Solaris і успадковує від OpenSolaris. Тож навіть якщо ви не використовували SmartOS, я сподіваюся використати деякі знання Solaris на ServerFault.
Моє питання полягає в тому, що я хочу, щоб непривілейований користувач міг дозволити перезапустити службу, яка їм належить. Я розробив, як це зробити, використовуючи RBAC і додавши авторизацію до /etc/security/auth_attr
цього авторизації та пов’язуючи його з моїм користувачем.
Потім я додав у свій маніфест SMF для послуги:
<property_group name='general' type='framework'>
<!-- Allow to be restarted-->
<propval name='action_authorization' type='astring'
value='solaris.smf.manage.my-server-process' />
<!-- Allow to be started and stopped -->
<propval name='value_authorization' type='astring'
value='solaris.smf.manage.my-server-process' />
</property_group>
І це добре працює при імпорті. Моєму непривілейованому користувачеві дозволяється перезапустити, запустити та зупинити власний серверний процес (це стосується автоматизованого розгортання коду).
Однак якщо я експортую маніфест SMF, цих даних конфігурації немає ... все, що я бачу в цьому розділі, це:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Хтось знає, чому це відбувається? Чи мій синтаксис неправильний, чи я просто використовую SMF неправильно?