Estou executando um processo de servidor no SMF (Server Management Facility) na imagem Base64 1.8.1 SmartOS da Joyent.
Para aqueles que não estão familiarizados com o SmartOS, é uma distribuição baseada em nuvem do IllumOS com KVM. Mas essencialmente é como o Solaris e herda do OpenSolaris. Portanto, mesmo se você não usou o SmartOS, espero explorar alguns conhecimentos do Solaris sobre ServerFault.
Meu problema é que eu quero que um usuário sem privilégios possa reiniciar um serviço que ele possui. Eu descobri como fazer isso usando o RBAC e adicionando uma autorização /etc/security/auth_attr
e associando essa autorização ao meu usuário.
Em seguida, adicionei o seguinte ao meu manifesto SMF para o serviço:
<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>
E isso funciona bem quando importado. Meu usuário não privilegiado tem permissão para reiniciar, iniciar e parar seu próprio processo de servidor (isto é para implantações de código automatizadas).
No entanto, se eu exportar o manifesto SMF, esses dados de configuração desaparecerão ... tudo o que vejo nessa seção é o seguinte:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Alguém sabe por que isso está acontecendo? Minha sintaxe está errada ou estou simplesmente usando o SMF incorretamente?