J'exécute un processus serveur sous SMF (Server Management Facility) sur l'image SmartOS Base64 1.8.1 de Joyent.
Pour ceux qui ne connaissent pas SmartOS, il s'agit d'une distribution en nuage d'IllumOS avec KVM. Mais essentiellement, elle est comme Solaris et hérite d'OpenSolaris. Donc, même si vous n'avez pas utilisé SmartOS, j'espère pouvoir exploiter certaines connaissances de Solaris sur ServerFault.
Mon problème est que je veux qu'un utilisateur non privilégié soit autorisé à redémarrer un service qu'il possède. J'ai trouvé comment faire cela en utilisant RBAC et en ajoutant une autorisation à /etc/security/auth_attr
et en associant cette autorisation à mon utilisateur.
J'ai ensuite ajouté ce qui suit à mon manifeste SMF pour le service :
<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>
Et cela fonctionne bien lorsqu'il est importé. Mon utilisateur non privilégié est autorisé à redémarrer, démarrer et arrêter son propre processus serveur (ceci pour les déploiements de code automatisés).
Cependant, si j'exporte le manifeste SMF, ces données de configuration ont disparu... tout ce que je vois dans cette section est ceci :
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Quelqu'un sait-il pourquoi cela se produit ? Ma syntaxe est-elle incorrecte, ou est-ce que j'utilise simplement SMF de manière incorrecte ?