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 maîtrisent pas SmartOS, il s'agit d'une distribution basée sur le cloud d'IllumOS avec KVM. Mais c'est essentiellement comme Solaris et hérite d'OpenSolaris. Donc, même si vous n'avez pas utilisé SmartOS, j'espère pouvoir utiliser 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 déterminé comment le faire 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 lors de l'importation. Mon utilisateur non privilégié est autorisé à redémarrer, démarrer et arrêter son propre processus serveur (c'est 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 le suivant:
<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?