สำหรับ Java Apps:
จริงๆแล้วสำหรับกรณี JDownloader มันเป็นการออกแบบแบบแยกส่วน ไอคอนถาดมาเป็นปลั๊กอินที่สามารถปิดการใช้งานจาก:
JDownloader → Addons → Addon Manager →ส่วนขยาย→ยกเลิกการเลือกช่องเปิดใช้งานสำหรับJD Light Tray
สำหรับกรณีทั่วไปของแอปพลิเคชัน Java เป็นไปได้ที่จะใช้ตัวจัดการความปลอดภัย Java โดยการเขียนกฎนโยบายที่กำหนดเอง
สร้างjava.policy
ไฟล์ใน~/.jdownloader
ประกอบด้วย:
grant codeBase "file:/home/user/.jdownloader/-" {
// full access
// permission java.security.AllPermission;
// AWTPermission full or only selected elements from it
// permission java.awt.AWTPermission "*";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
// permission java.awt.AWTPermission "accessSystemTray";
permission java.awt.AWTPermission "createRobot";
permission java.awt.AWTPermission "fullScreenExclusive";
permission java.awt.AWTPermission "listenToAllAWTEvents";
permission java.awt.AWTPermission "readDisplayPixels";
permission java.awt.AWTPermission "replaceKeyboardFocusManager";
permission java.awt.AWTPermission "setAppletStub";
permission java.awt.AWTPermission "setWindowAlwaysOnTop";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.awt.AWTPermission "toolkitModality";
permission java.awt.AWTPermission "watchMousePointer";
// Added by try and learn
permission java.io.FilePermission "/-", "read,write,delete";
permission java.util.PropertyPermission "*", "read,write";
permission java.util.logging.LoggingPermission "control";
permission java.lang.RuntimePermission "*";
permission java.net.NetPermission "*";
permission java.security.SecurityPermission "*";
permission javax.net.ssl.SSLPermission "*";
permission java.net.SocketPermission "*", "connect,resolve";
permission java.lang.reflect.ReflectPermission "*";
};
แก้ไขjdownloader
สคริปต์เรียกใช้งานเพื่อใช้นโยบายที่กำหนดเอง
sudo nano /usr/bin/jdownloader
เพิ่ม: -Djava.security.manager -Djava.security.policy=java.policy
ในการเรียกใช้คำสั่ง java:
exec java ${JAVA_OPTIONS} -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
นี่เป็นกฎขั้นต่ำที่อนุญาตให้ฉันเปิดตัว jdownloader คุณอาจต้องเพิ่มการอนุญาตเพิ่มเติม เนื่องจากไม่มีdeny
ตัวเลือกคุณต้องเขียนgrant
กฎที่จำเป็นทั้งหมด
อ้างอิง:
BTW พยายามที่จะแสดงความคิดเห็นหนึ่งในกฎโดยเพิ่ม//
ไปที่จุดเริ่มต้นของบรรทัด; ดังนั้นคุณสามารถดูว่าข้อผิดพลาดของสิทธิ์ที่ถูกปฏิเสธมีลักษณะอย่างไร มันบอกคุณว่าควรเพิ่มการอนุญาตใด โปรดสังเกตว่าฉันได้ใช้-
& *
พยายามขยายกฎเนื่องจากฉันกำลังมองหาวิธีแก้ปัญหาอย่างรวดเร็ว (โดยค่าเริ่มต้นAllPermission
แล้ว) และฉันไม่ต้องการติดคุกแอปพลิเคชัน
นี่คือแม่แบบที่จะเริ่มต้นด้วยพยายามให้สิทธิ์ที่เป็นไปได้ทั้งหมด:
grant codeBase "file:/home/user/.jdownloader/-" {
// permission java.security.AllPermission;
// permission java.awt.AWTPermission "*";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
// permission java.awt.AWTPermission "accessSystemTray";
permission java.awt.AWTPermission "createRobot";
permission java.awt.AWTPermission "fullScreenExclusive";
permission java.awt.AWTPermission "listenToAllAWTEvents";
permission java.awt.AWTPermission "readDisplayPixels";
permission java.awt.AWTPermission "replaceKeyboardFocusManager";
permission java.awt.AWTPermission "setAppletStub";
permission java.awt.AWTPermission "setWindowAlwaysOnTop";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.awt.AWTPermission "toolkitModality";
permission java.awt.AWTPermission "watchMousePointer";
permission javax.sound.sampled.AudioPermission "*";
permission javax.security.auth.AuthPermission "*";
// permission javax.security.auth.kerberos.DelegationPermission "";
permission javax.xml.bind.JAXBPermission "*";
permission java.nio.file.LinkPermission "hard";
permission java.nio.file.LinkPermission "symbolic";
permission java.util.logging.LoggingPermission "control";
// permission java.lang.management.ManagementPermission "*";
permission javax.management.MBeanServerPermission "*";
permission javax.management.MBeanTrustPermission "*";
permission java.net.NetPermission "*";
permission java.util.PropertyPermission "*", "read,write";
permission java.lang.reflect.ReflectPermission "*";
permission java.lang.RuntimePermission "*";
permission java.security.SecurityPermission "*";
permission java.io.SerializablePermission "*";
permission java.sql.SQLPermission "*";
permission javax.net.ssl.SSLPermission "*";
permission javax.management.remote.SubjectDelegationPermission "*";
permission javax.xml.ws.WebServicePermission "*";
// permission "*";
permission java.io.FilePermission "/-", "read,write,execute,delete,readlink";
permission javax.management.MBeanPermission "*", "*";
// permission javax.security.auth.PrivateCredentialPermission "", "read";
permission javax.security.auth.kerberos.ServicePermission "*", "initiate,accept";
permission java.net.SocketPermission "*", "accept,connect,listen,resolve";
permission java.net.URLPermission "*";
};
หมายเหตุ :
เครื่องมือนโยบาย Java เป็นเครื่องมือ GUI เพื่อแก้ไขไฟล์นโยบาย มันทำให้ง่ายยิ่งขึ้นที่จะหาตัวเลือกที่มีทั้งหมดจากกล่องวาง ควรติดตั้งพร้อมกับแพคเกจ Java แล้ว