Ich habe Probleme beim Ausführen von tcpdump. Ich muss tcpdump mit Nicht-Root-Benutzer ausführen. Durchsuchte das Web nach meinem Problem und fand heraus, ob ich:
sudo setcap cap_net_admin=eip /usr/sbin/tcpdump
Das ermöglichte es mir, tcpdump mit meinem Benutzer auszuführen, aber dann bekam ich:
you don't have permission to capture on that device
auf jedem Gerät habe ich versucht, zu erfassen.
Ging auch ein wenig Brute-Force und tat:
sudo chmod +s /usr/sbin/tcpdump
Das hat es auch nicht getan.
14.04
permissions
tcpdump
Sivan Sigal
quelle
quelle
tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Antworten:
Es ist ein bisschen spät, aber ich hatte das gleiche Problem. Sie müssen
tcpdump
die Berechtigung und die Fähigkeit erteilen, die Erfassung von Rohpaketen und die Manipulation von Netzwerkschnittstellen zuzulassen .Fügen Sie eine Erfassungsgruppe hinzu und fügen Sie sich selbst hinzu:
Ändern Sie als Nächstes die Gruppe von
tcpdump
und legen Sie die Berechtigungen fest:Verwenden Sie schließlich,
setcap
umtcpdump
die erforderlichen Berechtigungen zu erteilen :Seien Sie vorsichtig, damit jeder aus der Gruppe die Netzwerkschnittstellen manipulieren und Rohpakete lesen kann!
Hier gefunden: Konfigurieren Sie tcpdump so, dass es als nicht als Root fungiert
quelle
cap_net_raw,cap_setpcap=ep
. Das Entfernen desi
war, weil mein Programm nicht gabeln musste. Dies ist für eine benutzerdefinierte Binärdatei, also ymmv.iftop
ein Programm, das die Netzwerkauslastung nach IP-Adresse / DNS-NameVielleicht könnte dies funktionieren. Ähnlich wie das, was bereits gepostet wurde. Es wurde nicht auf Ubuntu getestet.
(Verwenden Sie eine Gruppe, zu der Ihr Benutzer gehört.) chgrp wireshark / usr / sbin / tcpdump
setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump
Mit getcap / usr / sbin / tcpdump sollte / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip angezeigt werden
quelle