@@ -583,7 +583,7 @@ static int do_probe(int argc, char **argv)
/* Detection assumes user has sufficient privileges (CAP_SYS_ADMIN).
* Let's approximate, and restrict usage to root user only.
*/
- if (geteuid()) {
+ if (!libbpf_enable_sys_bpf()) {
p_err("please run this command as root user");
return -1;
}
@@ -390,6 +390,10 @@ int main(int argc, char **argv)
if (argc < 0)
usage();
+ if (!libbpf_enable_sys_bpf()) {
+ p_err("cannot enable access to sys_bpf()");
+ usage();
+ }
ret = cmd_select(cmds, argc, argv, do_help);
if (json_output)
@@ -400,5 +404,6 @@ int main(int argc, char **argv)
delete_pinned_obj_table(&map_table);
}
+ libbpf_disable_sys_bpf();
return ret;
}
This patch calls libbpf_[enable|disable]_sys_bpf() from bpftool. This allows users with access to /dev/bpf to perform operations like root. Signed-off-by: Song Liu <songliubraving@fb.com> --- tools/bpf/bpftool/feature.c | 2 +- tools/bpf/bpftool/main.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)