Attention, il faut que le nom du property_group soit application ! Et finalement un petit exemple pour utiliser ces variables :
<exec_methodtype='method'name='start'exec='%{root}/jkstat server -p %{port} &'timeout_seconds='60'><method_context><method_credentialuser='root'group='root'/></method_context></exec_method>
Maintenant que tout le monde utilise SMF (enfin je l’espère ! ), voici quelques informations qui pourront vous être utiles, autour du cas d’utilisation suivant :
Soit un glassfish (serveur d’application) qui – pour une obscure raison qui n’a pas d’intérêt ici – doit écouter sur les ports 80 et 443, mais ce service étant administré par un consultant métier, je ne veux en aucun cas donner le moindre droit root à cette personne, que ce soit pour démarrer ou arrêter glassfish, ou même encore pour son exécution. Cela semble difficile à réaliser au premier abord, mais SMF va nous sauver !
La gestion des privilèges
SMF permet d’assigner des priviléges (vous pouvez obtenir la liste des privilèges ainsi qu’une courte description en utilisant la commande ppriv -l -v) à un service. Pour cela, il faut éditer son manifest, puis rajouter la portion de code suivant :
Maintenant que nous avons notre glassfish qui écoute sur le port 80 et 443 sans avoir besoin du moindre processsus root, il nous reste à déléguer l’administration du service à l’utilisateur approprié. Pour cela, effectuer les modifications suivantes :
le fichier auth_attr définit la liste des attributs étendus qu’un utilisateur, dans ce cas, on créer un nouveau attribut que l’on nomme solaris.smf.manage.glassfish
Les deux lignes suivantes autorise les utilisateurs disposant de l’attribut solaris.smf.manage.glassfish à administrer le service (vous pouvez consulter la page de manuel smf_security pour avoir plus de détails)
Et finalement, on assigne le privilège solaris.smf.manage.glassfish à l’utilisateur glassfish
Désormais, l’utilisateur glassfish peut démarrer et éteindre le serveur d’application sans jamais disposer du moindre droit root (pas de sudo ou équivalent nécessaire). Dites merci SMF !