Запустите libpcap без sudo/root

Я использую libpcap для прослушивания пакетов, а также для создания необработанных пакетов на C++ в Ubuntu 18.04. Эти функции требуют разрешения администратора (sudo). Я ищу способ удалить зависимость.

Когда я запускаю свой код без sudo, я получаю следующую ошибку: pcap_open_live(): You don't have permission to capture on that device (socket: Operation not permitted)

Я создаю свое приложение, используя cmake и make, и у меня есть исполняемый файл test, который я запускаю как ./test.

Я пробовал setcap cap_net_raw,cap_net_admin=eip ./test, но без sudo я не могу перехватывать пакеты с той же ошибкой разрешения, что и выше.

Пожалуйста, помогите в этом вопросе.


person Navin Rahim    schedule 21.09.2020    source источник
comment
вы можете либо предоставить пользователю специальные разрешения через группу (askubuntu.com/questions/530920/ tcpdump-permissions-problem) или настроить запуск вашего приложения от имени пользователя root (независимо от того, кто его выполняет) через chmod. оба они требуют, чтобы у вас был администратор для начала.   -  person Abel    schedule 21.09.2020
comment
Вы можете использовать тег [linux] или спросить на se.linux. Я знаю, что, изменив файл /etc/sudoers, вы можете позволить пользователям выполнять определенные команды без команды sudo. Я не знаю, соответствует ли это точно вашим потребностям   -  person Damien    schedule 21.09.2020
comment
@Abel Я пробовал оба подхода, но все равно получаю ошибку.   -  person Navin Rahim    schedule 21.09.2020
comment
@Damien, не могли бы вы привести пример того же   -  person Navin Rahim    schedule 21.09.2020
comment
Я не эксперт. Я использовал его давным-давно. Некоторую информацию можно найти здесь: help.ubuntu.com/community/Sudoers   -  person Damien    schedule 21.09.2020
comment
второй метод должен дать тот же эффект, что и запуск от имени пользователя root (или, по крайней мере, дать вам другую ошибку на шаге chmod, если он отключен). он включает sudo chown root ‹исполняемый› и sudo chmod u+s ‹исполняемый›   -  person Abel    schedule 21.09.2020


Ответы (1)


Я нашел ответ здесь.

Проблема оказалась в том, что мой жесткий диск не был смонтирован с помощью sudo. Я создал свой инструмент в домашней папке и с помощью setcap теперь могу нюхать пакеты без sudo.

person Navin Rahim    schedule 21.09.2020