В настоящее время мой tomcat работает как root, потому что он привязан к порту 80.
Я хочу запустить hudson как пользователь без полномочий root внутри tomcat. Как мне это сделать?
Я ищу решение, которое не потребовало бы от меня добавления прокси-сервера apache через tomcat.
ну, только root может привязываться к портам le 1024. Вероятно, нет никакого механизма отбрасывания привилегий в java / jvm после привязки к портам суперпользователя, иначе это уже было бы сделано в tomcat. то, что я и другие сделали, - это заставить tomcat прослушивать непривилегированный порт и перенаправлять трафик порта 80 на этот порт с помощью правила брандмауэра.
Вы можете перенаправить порт 80 на 8080 или любой другой с помощью iptables, например:
iptables -t nat -A PREROUTING -p tcp -d second_ip --dport 80 -j REDIRECT --to-port 8080
Это более общий вариант, но если у вас только один IP-адрес, удалите целевой IP-адрес (-d second_ip).