Я создал веб-приложение, использующее libpcap (через jpcap).
Чтобы иметь возможность получить список сетевых интерфейсов или привязаться к сетевому интерфейсу, приложение (в данном случае webaap, запускаемое с сервера tomcat) должно быть запущено с правами root.
Во время разработки я просто запускал Eclipse с привилегиями root (sudo eclipse), и мое веб-приложение отлично работало с локальным сервером tomcat Eclipse.
Однако, когда я пытаюсь развернуть свое веб-приложение на «реальном» сервере Tomcat, оно не работает. Я также попытался запустить службу tomcat6 с помощью sudo и изменил определение TOMCAT6_USER (определенное в /etc/init.d/tomcat6) с «tomcat6» на «root», но это не имело никакого значения.
Что мне делать, чтобы он работал?
Запуск tomcat с Authbind=yes
в /etc/default/tomcat6
можете делать что хотите.
Почему бы в целях безопасности не оставить tomcat работать без root и позволить iptables перенаправить порт 80 на 8080?
Ex в iptables:
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080