start-stop-parsec-daemon это пропатченная версия обычного start-stop-daemon для Astra Linux Special Edition. В отличии от стандартной версии умеет запускать процессы с привилегиями и мандатной меткой PARSEC под любым пользователем.
Обновление 11 сентября 2015: start-stop-parsec-daemon версии 0.1 вошёл в состав Astra Linux Special Edition 1.5.
Как и оригинальное ПО, распространяется на условиях стандартной общественной лицензии GNU (GPL) версии 2.
Полный текст лиценции находится в файле COPYING.
Сайт компании «Лаборатория 50».
Штатные возможности Astra Linux Special Edition не позволяют запускать процессы со сменой UID/GID и при этом ставить привилегии PARSEC. Невозможно, например, запускать немодифицированные программы с привилегией PRIVSOCK (возможность подключения пользователей с ненулевой мандатной меткой) с UID/GID отличными от 0 (root).
Столь плачевное положение возможно имеет причиной: а) забывчивость Русбитеха; б) вера в то, что все привилегированные процессы должны запускаться от рута. Как бы то ни было, вся обвязка связанная с запуском процессов с привилегиями PARSEC, полна тлена и баш-скриптов и порой приводит к потере работоспособности скриптов запуска.
Посему мы это все решили прекратить и сделать свой start-stop-daemon с PARSEC привилегиями и мандатными метками, но без скриптов.
Пакет устанавливает команду start-stop-parsec-daemon
, полностью
совместимую со штатным start-stop-daemon
, но позволяющую указывать:
- привилегии PARSEC с помощью параметра
--capability
(-l
); - мандатную метку с помощью параметра
--mac
(-M
);
Для совместимости со штатным механизмом Астры privsock, если указана привилегия
0x100
(PRIVSOCK), то команда дополнительно сверяется с файлом
/etc/parsec/privsock.conf
на предмет наличия запускаемого бинарника
в оном списке.
В остальном, все как обычно.
-
Добавьте в зависимости вашего пакета с init.d скриптом наш пакет (parsec-daemon).
-
В скрипте используйте
start-stop-parsec-daemon
вместоstart-stop-daemon
. -
Укажите привилегии и/или метки с помощью параметров.
Рекомендация: если вы хотите таким образом адаптировать сторонние пакеты,
то наилучшим способом будет создание пакета <пакет>-parsec, в котором
будет правильный LSB скрипт запуска. А postints/postrm скрипты будут
отключать стандартный демон и работать с /etc/parsec/privsock.conf
.
Конкретного примера не будет, смотрите нашу обвязку RabbitMQ.