Java https сервер на умолчательном порту
Коллеги,
Вот есть такая проблема: Имеется java-приложение (jenkins) которое
умеет работать веб-сервером, в том числе и по https.
Ставится оно из deb-пакета, предоставляемого производителем приложения
и работает от своего собственного непривилегированного юзера.
В пакете есть файлик в /etc/defaults через который можно много что
настроить, в частности порты на которых слушает web-сервер.
Проблема в том. что хочется чтобы оно слушало на дефолтном порту для
https, т.е. 443.
Для того, чтобы java-приложению дали прибиндиться к порту < 1024, надо
сделать
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/java
Мне, в принципе не жалко, большой дыры в безопасности мне это не
создаст (тем более что машинка в интранете). Проблема в другом.
Через пару месяцев другой сотрудник, которому либо я забыл рассказать
про setcap, либо я рассказал, да он забыл, сделает на этой машинке
apt-get upgrade, и к нему приедет апгрейд OpenJDK. И при изменении
бинарника capabilities слетят. И jenkins перестанет запускаться.
Вопрос в том, а куда бы наиболее соответствующим политике дистрибутива
способом прописать скрипт, который будет делать этот вызов setcap,
чтобы быть уверенным что в момент запуска jenkins бинарник java будет
иметь требуемые capabilities?
Понятно, что пересобирать самому пакеты ни jenkins, ни, упаси боже,
openJDK, не хочется.
(кстати из man setcap я не понял что произойдет с capabilities при
простой перезагрузке, без изменения бинарника - сбросятся они или нет?
Вроде у нас persistent state в linux не принят).
--
Reply to: