Mam problem z uruchomieniem programu tcpdump. Muszę uruchomić tcpdump z użytkownikiem innym niż root. Przeszukałem mój problem w sieci i pomyślałem, że powinienem:
sudo setcap cap_net_admin=eip /usr/sbin/tcpdump
To pozwoliło mi uruchomić tcpdump z moim użytkownikiem, ale potem otrzymałem:
you don't have permission to capture on that device
na dowolnym urządzeniu próbowałem przechwycić.
Przeszedł też trochę brutalnej siły i zrobił:
sudo chmod +s /usr/sbin/tcpdump
To też nie zrobiło tego.
14.04
permissions
tcpdump
Sivan Sigal
źródło
źródło
tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Odpowiedzi:
Jest trochę późno, ale właśnie miałem ten sam problem. Musisz udzielić
tcpdump
zezwolenia i możliwości, aby umożliwić przechwytywanie pakietów raw i manipulowanie interfejsem sieciowym .Dodaj grupę przechwytywania i dodaj się do niej:
Następnie zmień grupę
tcpdump
i ustaw uprawnienia:Na koniec użyj,
setcap
aby podaćtcpdump
niezbędne uprawnienia:Uważaj, aby to pozwoliło wszystkim użytkownikom pcap na manipulowanie interfejsami sieciowymi i czytanie nieprzetworzonych pakietów!
Znaleziono to tutaj: Skonfiguruj tcpdump, aby działał jako użytkownik inny niż root
źródło
cap_net_raw,cap_setpcap=ep
. Usunięciei
było spowodowane tym, że mój program nie musiał rozwidlać. To jest dla niestandardowego pliku binarnego, więc ymmv.iftop
Być może to może zadziałać. Podobne do tego, co już zostało opublikowane. Nie został przetestowany na Ubuntu.
(użyj grupy, której członkiem jest użytkownik) chgrp wireshark / usr / sbin / tcpdump
setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump
używając getcap / usr / sbin / tcpdump powinieneś zobaczyć / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip
źródło