Saya mengalami kesulitan menjalankan tcpdump. Saya harus menjalankan tcpdump dengan pengguna non-root. Mencari di web untuk masalah saya dan menemukan bahwa saya harus:
sudo setcap cap_net_admin=eip /usr/sbin/tcpdump
Itu memungkinkan saya untuk menjalankan tcpdump dengan pengguna saya, tetapi kemudian saya dapat:
you don't have permission to capture on that device
pada perangkat apa pun yang saya coba ambil.
Juga pergi sedikit kekuatan kasar dan melakukan:
sudo chmod +s /usr/sbin/tcpdump
Itu juga tidak berhasil.
14.04
permissions
tcpdump
Sivan Sigal
sumber
sumber
tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Jawaban:
Ini sedikit terlambat, tetapi saya hanya memiliki masalah yang sama. Anda perlu memberikan
tcpdump
izin dan kemampuan untuk memungkinkan penangkapan paket mentah dan manipulasi antarmuka jaringan .Tambahkan grup tangkap dan tambahkan diri Anda ke dalamnya:
Selanjutnya, ubah grup
tcpdump
dan atur izin:Akhirnya, gunakan
setcap
untuk memberikantcpdump
izin yang diperlukan:Hati-hati, ini akan memungkinkan semua orang dari pcap grup untuk memanipulasi antarmuka jaringan dan membaca paket mentah!
Ditemukan di sini: Konfigurasikan tcpdump agar berfungsi sebagai non-root
sumber
cap_net_raw,cap_setpcap=ep
. Penghapusani
itu karena program saya tidak perlu melakukan fork. Ini untuk biner khusus, jadi ymmv.iftop
program yang menunjukkan pemanfaatan jaringan berdasarkan alamat IP / nama DNSMungkin ini bisa berhasil. Mirip dengan apa yang sudah diposting. Itu belum diuji di ubuntu.
(gunakan grup yang anggotanya adalah anggota Anda) chgrp wireshark / usr / sbin / tcpdump
setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump
menggunakan getcap / usr / sbin / tcpdump Anda akan melihat / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip
sumber