С Ubuntu 13.04 исчезла возможность использования белого списка (и, соответственно, черного списка) определенных приложений при создании значка в трее.
Хотя есть определенные ppas, которые предоставляют патч единства, возвращая systray.whitelist (не для 14.04, хотя, тем не менее) Я хотел бы узнать, есть ли другие способы скрыть значки в лотках java-приложений (например, JDownloader)
Я знаю, что есть способ сделать это для qt-приложений, реализуя профили apparmor, которые запретить доступ для чтения к пакету sni-qt (например, для Skype или Spotify)
Есть ли способ реализовать профили apparmor или что-то подобное для приложений Java и / или приложений Wine?
[d4 ] спасибо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.
Ссылки:
Фактически для случая JDownloader, это модульный дизайн. Значок лотка появляется как плагин, который можно отключить: JDownloader & rarr; Addons & rarr; Addon Manager & rarr; Расширения & rarr; Снимите флажок «Активировать» для JD Light Tray java.awt: Class AWTPermission Для общего применения приложений 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 $*
[d28 ] BTW, попробуйте прокомментировать одно из правил, добавив // в начало строки; Таким образом, вы можете видеть, как выглядит ошибка отказа в разрешениях. Он сообщает вам, какое разрешение вы должны добавить. Также обратите внимание, что я использовал много - & amp; * пытается расширить правила, поскольку я ищу быстрое решение (по умолчанию было 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 - это инструмент графического интерфейса для редактирования файлов политик. Это облегчает поиск всех доступных вариантов из коробки. Он должен быть уже установлен с пакетом Java.
Как я вижу, нет очевидных лучших решений, возможно, что это поможет:
Вы можете избавиться от лотка alltogether!
либо отключить его, если это возможно, либо заменить целую панель, которую вы можете настроить вручную, просто не добавляя элемент лотка. (Мне нравится xfce4-panel для такого рода вещей)Если вы потеряете возможности на основе лоток, большинство из них должно быть заменено в любом случае так же, как сценарий, показывающий уведомления о некоторых событиях на рабочем столе. 5]
Если вы хотите, чтобы все приложения, использующие значок в трее, могли использовать его в Ubuntu 14.04, вы можете использовать PPA, который поставляется с Unity, для повторного включения белого списка systray. Для этого откройте терминал и запустите следующие команды:
sudo add-apt-repository ppa:gurqn/systray-trusty
sudo apt-get update
sudo apt-get upgrade
Затем перезапустите Unity, нажав ALT + F2 и введя «единство» или выйдя из системы.
Отмена изменений
Если вы хотите вернуться к изменениям и перейти в режим ожидания, то в этом случае PPA теперь автоматически присваивает белые списки всем приложениям, поэтому нет необходимости вручную переадресовывать отдельные приложения. вернитесь к пакетам Unity по умолчанию из репозиториев Ubuntu, воспользуйтесь приведенными ниже командами, чтобы очистить белый список системных списков Unity PPA:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:gurqn/systray-trusty
С http://www.webupd8.org/2013/05/how- в-получить-белый список лотка-обратно-in.html