Tôi đang chạy một quy trình máy chủ trong SMF (Cơ sở quản lý máy chủ) trên hình ảnh SmartOS Base64 1.8.1 của Joyent.
Đối với những người không yêu cầu SmartOS, đây là bản phân phối IllumOS dựa trên đám mây với KVM. Nhưng về cơ bản nó giống như Solaris và thừa hưởng từ OpenSolaris. Vì vậy, ngay cả khi bạn chưa sử dụng SmartOS, tôi vẫn hy vọng khai thác được một số kiến thức về Solaris trên ServerFault.
Vấn đề của tôi là tôi muốn một người dùng không có đặc quyền được phép khởi động lại một dịch vụ mà họ sở hữu. Tôi đã tìm ra cách để làm điều đó bằng cách sử dụng RBAC và thêm ủy quyền /etc/security/auth_attr
và liên kết ủy quyền đó với người dùng của tôi.
Sau đó tôi đã thêm phần sau vào bảng kê khai SMF của mình cho dịch vụ:
<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>
Và điều này hoạt động tốt khi nhập khẩu. Người dùng không có đặc quyền của tôi được phép khởi động lại, bắt đầu và dừng quá trình máy chủ của riêng mình (đây là để triển khai mã tự động).
Tuy nhiên, nếu tôi xuất bảng kê khai SMF, dữ liệu cấu hình này sẽ biến mất ... tất cả những gì tôi thấy trong phần đó là:
<property_group name='general' type='framework'>
<property name='action_authorization' type='astring'/>
<property name='value_authorization' type='astring'/>
</property_group>
Có ai biết tại sao điều này xảy ra? Là cú pháp của tôi sai, hay tôi chỉ đơn giản là sử dụng SMF không chính xác?