J'ai du mal à exécuter tcpdump. Je dois exécuter tcpdump avec un utilisateur non root. J'ai recherché mon problème sur le Web et j'ai compris que je devrais:
sudo setcap cap_net_admin=eip /usr/sbin/tcpdump
Cela m'a permis d'exécuter tcpdump avec mon utilisateur, mais j'ai ensuite obtenu:
you don't have permission to capture on that device
sur n'importe quel appareil que j'ai essayé de capturer.
Est également allé un peu de force brute et a fait:
sudo chmod +s /usr/sbin/tcpdump
Cela ne l'a pas fait non plus.
14.04
permissions
tcpdump
Sivan Sigal
la source
la source
tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Réponses:
Il est un peu tard, mais je viens d'avoir le même problème. Vous devez donner
tcpdump
l'autorisation et la capacité d'autoriser les captures de paquets brutes et la manipulation de l'interface réseau .Ajoutez un groupe de capture et ajoutez-vous à lui:
Ensuite, modifiez le groupe
tcpdump
et définissez les autorisations:Enfin, utilisez
setcap
pour donnertcpdump
les autorisations nécessaires:Attention, cela permettra à tous les membres du groupe pcap de manipuler les interfaces réseau et de lire les paquets bruts!
Trouvé ici: configurer tcpdump pour fonctionner en tant que non root
la source
cap_net_raw,cap_setpcap=ep
. La suppression dui
est dû au fait que mon programme n'avait pas besoin de bifurquer. C'est pour un binaire personnalisé, donc ymmv.iftop
un programme qui montre l'utilisation du réseau par adresse IP / nom DNSPeut-être que cela pourrait fonctionner. Similaire à ce qui a déjà été publié. Il n'a pas été testé sur Ubuntu.
(utilisez un groupe dont votre utilisateur est membre) chgrp cableshark / usr / sbin / tcpdump
setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump
en utilisant getcap / usr / sbin / tcpdump, vous devriez voir / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip
la source