Hi Andy, >>>> >>> >>> Well, yes. sys_bpf() is pretty powerful. >>> >>> The goal of /dev/bpf is to enable special users to call sys_bpf(). In >>> the meanwhile, such users should not take down the whole system easily >>> by accident, e.g., with rm -rf /. >> >> That’s easy, though — bpftool could learn to read /etc/bpfusers before allowing ruid != 0. > > This is a great idea! fscaps + /etc/bpfusers should do the trick. After some discussions and more thinking on this, I have some concerns with the user space only approach. IIUC, your proposal for user space only approach is like: 1. bpftool (and other tools) check /etc/bpfusers and only do setuid for allowed users: int main() { if (/* uid in /etc/bpfusers */) setuid(0); sys_bpf(...); } 2. bpftool (and other tools) is installed with CAP_SETUID: setcap cap_setuid=e+p /bin/bpftool 3. sys admin maintains proper /etc/bpfusers. This approach is not ideal, because we need to trust the tool to give it CAP_SETUID. A hacked tool could easily bypass /etc/bpfusers check or use other root only sys calls after setuid(0). Does this make sense? (Or did I misunderstand anything?) Thanks, Song