Für Java Apps:
Eigentlich für JDownloader Fall ist es ein modularer Aufbau. Das Tray Icon ist ein Plugin, das deaktiviert werden kann unter:
JDownloader → Addons → Addon-Manager → Erweiterungen → Deaktivieren Sie das Kontrollkästchen " Aktivieren " für JD Light Tray
Im allgemeinen Fall von Java-Anwendungen können Sie den Java-Sicherheitsmanager verwenden, indem Sie benutzerdefinierte Richtlinienregeln schreiben.
java.policy
Datei erstellen in ~/.jdownloader
enthält:
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 "*";
};
Ändern Sie jdownloader
das Startskript, um die benutzerdefinierte Richtlinie zu verwenden
sudo nano /usr/bin/jdownloader
Hinzufügen: -Djava.security.manager -Djava.security.policy=java.policy
zu Java-Befehlsaufruf:
exec java ${JAVA_OPTIONS} -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
Dies sind die Mindestregeln, nach denen ich jdownloader starten konnte. Möglicherweise müssen Sie weitere Berechtigungen hinzufügen. Da es keine deny
Option gibt, müssen Sie alle erforderlichen grant
Regeln schreiben .
Verweise:
Übrigens: Versuchen Sie, eine der Regeln zu kommentieren, indem Sie //
sie am Zeilenanfang einfügen. So können Sie sehen, wie der Fehler verweigerter Berechtigungen aussieht. Hier erfahren Sie, welche Berechtigung Sie hinzufügen sollten. Beachten Sie auch, dass ich viele Regeln verwendet -
und *
versucht habe, diese zu erweitern, da ich nach einer schnellen Lösung suche (die Standardeinstellung war AllPermission
sowieso) und die Anwendung nicht ins Gefängnis bringen möchte.
Hier ist zunächst eine Vorlage, die versucht, alle möglichen Berechtigungen zu erteilen:
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 "*";
};
Hinweis :
Java Policy Tools ist ein GUI-Tool zum Bearbeiten von Richtliniendateien. Dies macht es einfacher, alle verfügbaren Optionen in der Dropbox zu finden. Es sollte bereits mit Java-Paket installiert sein.