Ich führe einen Serverprozess unter SMF (Server Management Facility) auf Joyents Base64 1.8.1 SmartOS-Image aus.
Für diejenigen, die nicht mit SmartOS vertraut sind, ist es eine Cloud-basierte Distribution von IllumOS mit KVM. Aber im Wesentlichen ist es wie Solaris und erbt von OpenSolaris. Selbst wenn Sie SmartOS nicht verwendet haben, hoffe ich, dass Sie einige Solaris-Kenntnisse über ServerFault nutzen können.
Mein Problem ist, dass ich möchte, dass ein nicht privilegierter Benutzer einen Dienst, den er besitzt, neu starten darf. Ich habe herausgefunden, wie das geht, indem ich RBAC verwendet und eine Berechtigung zu /etc/security/auth_attr
meinem Benutzer hinzugefügt und dieser Berechtigung zugeordnet habe.
Ich habe dann meinem SMF-Manifest für den Dienst Folgendes hinzugefügt:
<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>
Und das funktioniert gut, wenn es importiert wird. Mein nicht privilegierter Benutzer darf seinen eigenen Serverprozess neu starten, starten und stoppen (dies gilt für automatisierte Codebereitstellungen).
Wenn ich jedoch das SMF-Manifest exportiere, sind diese Konfigurationsdaten nicht mehr vorhanden. In diesem Abschnitt wird lediglich Folgendes angezeigt:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Weiß jemand, warum das passiert? Ist meine Syntax falsch oder verwende ich SMF einfach falsch?