Sto eseguendo un processo server in SMF (Server Management Facility) sull'immagine SmartOS Base64 1.8.1 di Joyent.
Per coloro che non sono esperti di SmartOS, si tratta di una distribuzione basata su cloud di IllumOS con KVM. Ma essenzialmente è come Solaris ed eredita da OpenSolaris. Quindi, anche se non hai usato SmartOS, spero di sfruttare alcune conoscenze di Solaris su ServerFault.
Il mio problema è che desidero consentire a un utente non privilegiato di riavviare un servizio di sua proprietà. Ho scoperto come farlo utilizzando RBAC e aggiungendo un'autorizzazione /etc/security/auth_attr
e associando tale autorizzazione al mio utente.
Ho quindi aggiunto quanto segue al mio manifest SMF per il servizio:
<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 questo funziona bene quando importato. Il mio utente senza privilegi è autorizzato a riavviare, avviare e arrestare il proprio processo del server (questo è per le distribuzioni automatizzate di codice).
Tuttavia, se esporto il manifest SMF, questi dati di configurazione spariranno ... tutto ciò che vedo in quella sezione è questo:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Qualcuno sa perché questo sta accadendo? La mia sintassi è sbagliata o sto semplicemente usando SMF in modo errato?