LINUX.ORG.RU

Непривилигированная программа, использующая eBPF модуль ядра не может загрузить его.

 


0

1

Пытаюсь разработать модуль, который проверяет время между вызовами syscalls у процесса, и если он завис (не вызывал syscall какое то время), то прибивает его и запускает заново.

Но нам нужно именно запускать его не из под root.

Что сделано уже:

  1. Выдал capabilites:
setcap "cap_sys_nice,cap_sys_admin,cap_sys_resource,cap_perfmon,cap_sys_resource,cap_bpf=ep" /bin/my_cool_prog 
  1. Поднастроил ядро:
sudo sysctl kernel.unprivileged_bpf_disabled=0 
sudo sysctl kernel.perf_event_paranoid=-1

И всё равно ничего не помогает, модуль просто не грузится:

libbpf: prog 'trace_sys_enter': failed to create tracepoint 'raw_syscalls/sys_enter' perf event: Permission denied

У пользователя с которого запускаешь нет пермишнов, добавь в соответствующую группу пользователя.

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария