Configure Linux privileges using `setcap`
mainBecause bandwhich sniffs network packets, it requires elevated privileges. On Linux, the recommended way for single-user machines or trusted environments is to assign specific capabilities to the binary using setcap. This allows unprivileged users to run bandwhich without sudo.
Required capabilities:
cap_sys_ptrace,cap_dac_read_search: Allows access to/proc/<pid>/fd/to map open ports to processes.cap_net_raw,cap_net_admin: Allows capturing network packets.
Warning: This setup allows all users to see network traffic, which is not recommended for multi-user environments where privacy is required.
# assign capabilities
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
# run as unprivileged user
bandwhich