Один пользователь, не являющийся пользователем root, запускает пристань через порт 512, который меньше этого порта1024

Клиент просит нас создать пользователя без полномочий root для запуска нашей веб-системы, которая связывает порт 512, меньше 1024. Когда веб-сервер ( причал ) работает, это исключение:

2013-10-16 14:49:51.406:WARN::failed Server@2c2893ce: java.net.SocketException: Permission denied 2013-10-16 14:49:51.406:WARN::EXCEPTION java.net.SocketException: Permission denied at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:444) at sun.nio.ch.Net.bind(Net.java:436) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) 

Поэтому я узнал о некоторых решениях о том, как не связанный с root пользовательский порт меньше 1024, наконец, решение, которое я использовал, было установлено «cap_net_bind_service» в java, с помощью set Capabilities, команда:

 sudo setcap cap_net_bind_service+eip /usr/lib/jvm/jdk1.7.0_25/bin/java 

Но когда я снова начинаю причал, возникает еще одна ошибка:

 [admin@VPRCEMSUSOFC04 bin]$ ./jetty.sh start Starting Jetty: /usr/lib/jvm/jdk1.7.0_25/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory 

Даже когда я выполняю java -version , это также вызывает исключение:

 [admin@VPRCEMSUSOFC04 bin]$ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory 

Но когда я вхожу в систему с помощью root, все в порядке:

 [root@VPRCEMSUSOFC04 etc]# java -version java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b15) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) 

Я не могу понять, почему это происходит. Почему существуют два разных результата под root и non-root user. Кажется, что набор возможностей влияет на это.

Ядро Linux – 2.6.32-220.el6.x86_64. ОС – Red Hat Enterprise Linux Server версии 6.2 (Сантьяго).

One Solution collect form web for “Один пользователь, не являющийся пользователем root, запускает пристань через порт 512, который меньше этого порта1024”

Исполняемый файл Java полагается на функцию, которая отключается ядром, когда исполняемый файл приобретает дополнительные разрешения или возможности в качестве меры безопасности. Если вы хотите использовать этот исполняемый файл как не-root, вам нужно добавить расположение libjli.so в конфигурацию вашего загрузчика, расположенную в /etc/ld.so.conf* .

Linux и Unix - лучшая ОС в мире.