Java 앱의 경우 :
실제로 JDownloader 케이스의 경우 모듈 식 디자인입니다. 트레이 아이콘은 다음과 같이 비활성화 할 수있는 플러그인으로 제공됩니다.
JDownloader → 애드온 → 애드온 관리자 → 확장 → JD 라이트 트레이 활성화 상자를 선택 취소 합니다
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
자바 명령 호출에 :
exec java ${JAVA_OPTIONS} -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
이것이 jdownloader를 시작할 수있게 해주는 최소 규칙입니다. 더 많은 권한을 추가해야 할 수도 있습니다. deny
옵션 이 없기 때문에 필요한 모든 grant
규칙 을 작성해야합니다 .
참고 문헌 :
BTW, //
줄의 시작 부분 에 추가하여 규칙 중 하나에 주석을 달으십시오 . 따라서 거부 된 권한 오류가 어떻게 나타나는지 확인할 수 있습니다. 어떤 권한을 추가해야하는지 알려줍니다. 또한 나는 많은 사용한 것을 알 수 -
& *
I는 빠른 해결책을 찾고 있어요 (기본이었다으로 규칙을 확장하려고 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 패키지와 함께 이미 설치되어 있어야합니다.