Estou tendo problemas para executar o tcpdump. Eu devo executar o tcpdump com usuário não root. Pesquisei na web o meu problema e descobri que eu deveria:
sudo setcap cap_net_admin=eip /usr/sbin/tcpdump
Isso me permitiu executar o tcpdump com meu usuário, mas então obtive:
you don't have permission to capture on that device
em qualquer dispositivo que tentei capturar.
Também foi um pouco de força bruta e fez:
sudo chmod +s /usr/sbin/tcpdump
Isso também não aconteceu.
14.04
permissions
tcpdump
Sivan Sigal
fonte
fonte
tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Respostas:
É um pouco tarde, mas eu apenas tive o mesmo problema. Você precisa dar
tcpdump
permissão e capacidade para permitir capturas de pacotes brutos e manipulação da interface de rede .Adicione um grupo de capturas e adicione-se a ele:
Em seguida, altere o grupo
tcpdump
e defina as permissões:Por fim, use
setcap
para dartcpdump
as permissões necessárias:Tenha cuidado, pois isso permitirá que todos do grupo pcap manipulem interfaces de rede e leiam pacotes brutos!
Encontre aqui: Configure o tcpdump para funcionar como não raiz
fonte
cap_net_raw,cap_setpcap=ep
. A remoção do arquivoi
foi porque meu programa não precisava ser bifurcado. Isso é para um binário personalizado, então ymmv.iftop
um programa que a utilização da rede shows de IP nome / endereço DNSTalvez isso possa funcionar. Semelhante ao que já foi publicado. Não foi testado no ubuntu.
(use um grupo do qual seu usuário seja membro) chgrp wireshark / usr / sbin / tcpdump
setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump
usando getcap / usr / sbin / tcpdump, você deverá ver / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip
fonte