В даній статті мова йтиме саме про необхідні privileges при запуску сервісів. Для звичайного запуска можна використати ppriv .
Отже, маємо сервіс, який запускається, але в логах скаржиться на permission denied. Зрозуміло, що йому чогось не вистачає, але проблема ускладнюється тим, що це fork від мастер-процесу і він викликається по запиту. Тобто, просто так натравити ppriv не можна.
Вихід зʼявився у SRU 11.4.39:
Privilege error debugging capabilities for SMF services
We added a service method property to SMF to enable privilege debugging for service methods, and processes or daemons started by those methods.priv_debug An optional boolean that specifies whether this service runs with the PPRIV_DEBUG process flag. Setting this true will result in details of any file access errors or missing required privileges being printed to the system messages file. These messages will describe the missing privilege and for file access, name the file to which access was denied.
svccfg -s postfix setprop start/priv_debug=false;svcadm refresh postfix;svcadm restart postfix
І в логах сервісу побачимо таке:
dovecot-lda[18256]: missing privilege "ALL" (euid = 60001, syscall = "setuid") at setuid+0xde