Предположим, вам надо запустить сервис не от root’a и при этом, создать файл (например, сокет или pid) в системной папке /var/run от этого юзера. Правильный Solaris-way следующий:
Создаём группу
# svccfg -s svc:/network/test1234 addpg method_context framework
Выставляем необходимого юзера и группу
# svccfg -s svc:/network/test1234 setprop 'method_context/user = astring: "webservd"'
# svccfg -s svc:/network/test1234 setprop 'method_context/group = astring: "webservd"'
А теперь выставляем нужные привилегии:
# svccfg -s svc:/network/test1234 setprop 'method_context/limit_privileges = astring: "basic,sys_resource,{file_dac_write}:/system/volatile/test.sock,{file_dac_write}:/system/volatile/test.pid"'
После этого рефрешим и перезапускаем сервис.
Полный список привилегий можно узнать из man privileges
Примечание.
В Solaris – /var/run это симлинк на /system/volatile, поэтому в конфиге мы указали именно оригинал.