Pour les applications Java:
En fait pour le boîtier JDownloader, c'est une conception modulaire. L'icône de la barre des tâches est un plugin qui peut être désactivé à partir de:
JDownloader → Modules complémentaires → Gestionnaire de modules complémentaires → Extensions → Décochez la case Activer pour JD Light Tray
Pour les applications Java cas général, il est possible d'utiliser le gestionnaire de sécurité Java en écrivant une règle de politique personnalisée.
Créer un java.policy
fichier dans ~/.jdownloader
contient:
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 "*";
};
Modifier le jdownloader
script de lancement pour utiliser une stratégie personnalisée
sudo nano /usr/bin/jdownloader
Ajouter: -Djava.security.manager -Djava.security.policy=java.policy
à l'appel de commande java:
exec java ${JAVA_OPTIONS} -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
Ce sont les règles minimales qui m'ont permis de lancer jdownloader. Vous devrez peut-être ajouter d'autres autorisations. Parce qu'il n'y a pas d' deny
option, vous devez écrire toutes les grant
règles nécessaires .
Les références:
BTW, essayez de commenter l'une des règles en ajoutant //
au début de la ligne; Vous pouvez donc voir à quoi ressemble l'erreur des autorisations refusées. Il vous indique quelle autorisation vous devez ajouter. Notez également que j'en ai utilisé beaucoup -
et que *
j'essaie d'étendre les règles car je cherche une solution rapide (par défaut c'était AllPermission
quand même) et je ne cherche pas à emprisonner l'application.
Voici un modèle pour commencer, essayant d'accorder toutes les autorisations possibles:
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 "*";
};
Remarque :
Java Policy Tools est un outil d'interface graphique pour modifier les fichiers de stratégie. Il est plus facile de découvrir toutes les options disponibles dans la boîte de dépôt. Il doit être déjà installé avec le package Java.