ฉันพยายามให้สิทธิในการเรียกใช้จาวาเพื่อเปิดพอร์ตต่ำกว่า 1024 บน Linux นี่คือการตั้งค่า
/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
การพยายามเรียกใช้งานจาวาให้ข้อผิดพลาดดังต่อไปนี้
[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
เป็นไปได้หรือไม่ที่จะรัน Java 7_u25 เมื่อไบนารีได้รับสิทธิ์ยกระดับกับ setcap ถ้าเป็นเช่นนั้น
JDK-6919633: รันไทม์ไม่รองรับความสามารถของไฟล์ POSIX (ความสามารถของ AKA Linux) กล่าวว่า
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.
ฉันจะทำให้ไลบรารีที่ใช้ร่วมกันเชื่อถือได้อย่างไร