ฉันใช้กระบวนการเซิร์ฟเวอร์ภายใต้ SMF (Server Management Facility) ในอิมเมจ Base64 1.8.1 SmartOS ของ Joyent
สำหรับผู้ที่ไม่ได้ใช้ SmartOS จะเป็นการแจกจ่าย IllumOS พร้อม KVM แบบคลาวด์ แต่โดยพื้นฐานแล้วมันก็เหมือนกับ Solaris และสืบทอดมาจาก OpenSolaris ดังนั้นแม้ว่าคุณจะไม่ได้ใช้ SmartOS ฉันหวังว่าจะได้รับความรู้เกี่ยวกับ Solaris บน ServerFault
ปัญหาของฉันคือฉันต้องการให้ผู้ใช้ที่ไม่มีสิทธิ์ได้รับอนุญาตให้เริ่มบริการที่พวกเขาเป็นเจ้าของ ฉันได้หาวิธีทำโดยใช้ RBAC และเพิ่มการอนุญาต/etc/security/auth_attr
และการเชื่อมโยงการอนุญาตกับผู้ใช้ของฉัน
จากนั้นฉันได้เพิ่มสิ่งต่อไปนี้ในรายการ SMF สำหรับบริการ:
<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>
และใช้งานได้ดีเมื่อนำเข้า ผู้ใช้ที่ไม่มีสิทธิ์ของฉันได้รับอนุญาตให้รีสตาร์ทเริ่มต้นและหยุดกระบวนการเซิร์ฟเวอร์ของตนเอง (นี่คือสำหรับการปรับใช้รหัสอัตโนมัติ)
อย่างไรก็ตามถ้าฉันส่งออกรายการ SMF ข้อมูลการตั้งค่านี้หายไป ... ทั้งหมดที่ฉันเห็นในส่วนนั้นคือ:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
ไม่มีใครรู้ว่าทำไมสิ่งนี้เกิดขึ้น? ไวยากรณ์ของฉันไม่ถูกต้องหรือฉันเพียงแค่ใช้ SMF อย่างไม่ถูกต้อง