Linux에서 1024 미만의 포트를 열 수있는 권리를 Java 실행 파일에 부여하려고합니다. 설정은 다음과 같습니다
/home/test/java
Oracle Server JRE 7.0.25를 포함합니다.- CentOS 6.4
다음은 getcap이 반환하는 내용입니다.
[test@centos6 java]$ pwd
/home/test/java
[test@centos6 java]$ getcap bin/java
bin/java = cap_net_bind_service+ep
[test@centos6 java]$ getcap jre/bin/java
jre/bin/java = cap_net_bind_service+ep
java를 실행하려고하면 다음 오류가 발생합니다.
[test@centos6 java]$ bin/java
bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
[test@centos6 java]$ jre/bin/java
jre/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
바이너리에 setcap으로 높은 권한을 부여 받았을 때 Java 7_u25를 실행할 수 있습니까?
JDK-6919633 : 런타임 POSIX 파일 기능 (일명 리눅스 기능)를 지원하지 않습니다는 것을 말한다
Note: when using the setcap the libraries needed by the java launcher
should be present in /usr/lib or any other "trusted" location that the
runtime loader (rtld) uses to find shared libraries.
공유 라이브러리를 어떻게 신뢰할 수있게합니까?