Netbeans 11.2, работающий на Linux Mint 19.2 Cinnamon, Kernel 4.15.0-72-generic
Я переместил собственный проект по анализу сетевых пакетов, который я разработал несколько лет назад, с go с Windows 7 на Linux. Это использует jNetPcap для фактического захвата пакета. JnetPcap - это оболочка для Libpcap.
Проблема: при запуске проекта в Netbeans появляется сообщение «У вас нет разрешения на захват на этом устройстве».
Компиляция проекта в Файл .jar, который я затем запускаю как root, все хорошо. Таким образом, демонстрируя, что код проекта в порядке и что проблема ограничена отсутствием разрешений.
Используется «родная общая библиотека» libjnetcap.so
По сути, я хочу быть возможность запустить / отладить этот проект в Netbeans 11.2
В попытке решить эту проблему я пробовал множество вещей:
Предполагая, что это libjnetcap.so
то есть доступ к сетевому интерфейсу, я попытался дать ему повышенные привилегии, используя setuid
, безрезультатно. Я также попытался дать ему возможности с sudo setcap cap_net_raw=p ./libjnetpcap.so
, опять же безрезультатно.
Пробовал setuid
на /usr/bin/java
. На этот раз я мог запустить файл скомпилированных проектов .jar
без использования sudo
. Однако среда IDE Netbeans не будет загружаться с иконки на рабочем столе. Запуск NetBeans из терминала вызвал сообщение об ошибке, что использование setuid
не было разрешено.
Мне не удалось установить возможности для /usr/bin/java
. Неправильный тип файла?
Я нашел это на этом форуме:
В вашем случае pcap
требуется низкоуровневый доступ к сетевому интерфейсу , Из-за последствий для безопасности (захват сетевого трафика c, генерация произвольных сетевых пакетов и т.д. c) такой доступ ограничен только привилегированными пользователями. На Linux, например, pcap
требуется, чтобы пользователю была доступна возможность CAP_NET_RAW
.
Это звучит как моя проблема, но где pcap
? Все, что у меня есть, - это файл библиотеки libjnetcap.so
.
Я был бы очень признателен, если бы какая-нибудь добрая душа могла дать мне какие-либо указатели и т. Д. c.