[bpf]bcc-tools和bpftrac运行错误 Error creating printf map: Operation not permitted

最近把公司的电脑安装了 ubuntu系统,用来做日常开发和学习的环境,看到内核比较新,所以想弄点新玩意玩玩。

环境为

# cat /etc/issue
Ubuntu 18.04.3 LTS \n \l

# uname -a
Linux zhizhiliu-hp 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

按照bpftrace 官方安装文档 安装了了之后,启动时候报错如下

# bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("%d %s %s\n", pid, comm, str(args->filename)); }'
Error creating printf map: Operation not permitted
Creation of the required BPF maps has failed.
Make sure you have all the required permissions and are not confined (e.g. like
snapcraft does). `dmesg` will likely have useful output for further troubleshooting

在这之前安装了bcc-tool,运行的时候也遇到了类似的错误,找了半天也没找到解决方案。

最后在这位老哥的blog中找到了一种解决方法 https://itnext.io/how-to-run-bpftrace-from-a-small-alpine-image-and-with-least-privileges-379146fcfcf1

修改如下的参数

root@zhizhiliu-hp:/data/softs/bpftrace/build# sudo bash -c 'echo 1 > /proc/sys/kernel/sysrq'
root@zhizhiliu-hp:/data/softs/bpftrace/build# sudo bash -c 'echo x > /proc/sysrq-trigger'

再次运行就正常了,很开心。

这两个命令做了啥呢?
是关闭了 kernel lock-down 机制,lock-down 这个东西是个啥呢?是一种新的内核安全机制,类似一种保护锁。

你可能感兴趣的:(Linux,bcc,bpftrace,错误)