Создание файлов в /var/run для НЕ root’a

Предположим, вам надо запустить сервис не от 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, поэтому в конфиге мы указали именно оригинал.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *