Коллеги, Вот есть такая проблема: Имеется 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 не принят). --

