Я запускаю приложение J2SE, которому доверяют (Minecraft), но которое, вероятно, будет содержать полностью ненадежные (и, вероятно, даже некоторые враждебные) плагины.
Я хотел бы создать плагин, который может получить доступ к контактам GPIO на Raspberry PI.
Каждое решение, которое я видел, требует, чтобы такому приложению были предоставлены sudo-superpowers, потому что доступ к gpio осуществляется через прямой доступ к памяти.
Похоже, правильное решение — предоставить параметр командной строки следующим образом:
-Djava.security.policy=java.policy
который, по-видимому, по умолчанию не дает вам разрешений (даже доступа к файлам и высоким портам), затем добавьте те, которые нужны вашему приложению, обратно в файл политики.
По сути, вы, кажется, даете Java полномочия «sudo», а затем доверяете модели безопасности java только для предоставления соответствующих полномочий различным классам. Я предполагаю, что это делает приложение безопасным для работы с sudo - это правильно?
Забавно, что я использую Java почти каждый день с версии 1.0 и никогда не нуждался в этом раньше... Каждый день узнаешь что-то новое.