116

A standard installation of Wireshark doesn't give the program permission to access the network interface.

I suppose I have to run the program with sudo, but do not know how to add it to the icon - if that's the way to do it.

4
  • Are you talking about WireShark? If not, can you link to the application's home page so we can see what you're talking about. Thanks.
    – Oli
    Oct 31, 2011 at 12:23
  • Actually, he's probably talking about Wireshark rather than WireShark. :-)
    – user126192
    May 1, 2014 at 21:47
  • You could try tcpdump tool in Linux if wireshark is giving you too much troubles.
    – warfreak92
    Nov 15, 2017 at 15:24
  • For me its OK to run: First: sudo dpkg-reconfigure wireshark-commonselect yes then: sudo chmod +x /usr/bin/dumpcap
    – EsmaeelE
    Apr 7, 2020 at 20:08

4 Answers 4

182

For WireShark there's a better way. The bit that normally needs root is the packet collection application and this can be configured to allow certain people to use it without sudo, gksu, etc.

In a terminal (very important that you're in a terminal, not just the Alt+F2 dialogue) run this:

sudo dpkg-reconfigure wireshark-common

This will ask you if you want to allow non-root user to be able to sniff. That's what we're aiming for, so select Yes and hit return.

Reconfiguring wireshark-common

This adds a wireshark group. Anybody in that group will be able to sniff without being root. This is obviously more secure than just letting anybody sniff but does mean there's no password checking. Technically any person with access to a computer logged in with a wireshark account will be able to sniff. If that's acceptable to you, carry on.

If not, run that again and select no.

Then you just need to add the user to that group. Run this:

sudo adduser $USER wireshark

And restart or log out. When you're back in it should let you start sniffing without any fuss about being root.

11
  • 2
    Any way to skip restart/logout step? Dec 7, 2013 at 13:53
  • 4
    This solution stopped working in 14.04
    – Janghou
    May 1, 2014 at 8:32
  • 12
    And, yes, it's definitely a much better way than running Wireshark as root. The README.packaging file in the Wireshark source says "WIRESHARK CONTAINS OVER TWO MILLION LINES OF SOURCE CODE. DO NOT RUN THEM AS ROOT."
    – user126192
    May 1, 2014 at 21:49
  • 7
    @TahaJahangir If restart/logout is inconvenient, you can use the newgrp wireshark command to temporarily enter the group after you have become a member of the wireshark group.
    – Lekensteyn
    Mar 14, 2017 at 14:25
  • 3
    @TahaJahangir and Oli: Much more convenient than logging out is to use su - $USER as described at Reload a Linux user's group assignments without logging out - Super User
    – nealmcb
    Apr 13, 2017 at 2:56
13

Really you do not need to launch WireShark as root. Please read official page. In brief you should do:

sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod o-rx /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
sudo getcap /usr/bin/dumpcap

Then log-out and log-in again.

Note: this method was tested on 16.04 LTS, 17.10 and 18.04 LTS.

2
  • 2
    This will remain interfaces from loading unless changed. sudo chgrp USER_NAME /usr/bin/dumpcap
    – amrx
    Mar 30, 2015 at 9:21
  • problem: chgrp: invalid group: 'o-rx' Jun 21, 2020 at 19:16
4

You can also run Wireshark with root privileges by running gksu wireshark from the terminal.

Note that there are security concerns with running Wireshark in this mode, namely that any exploit that compromises Wireshark now has root privileges rather than user privileges. This is more of a concern with Wireshark than other application because, by it's very nature (capturing and processing arbitrary input), Wireshark is more vulnerable to exploits than typical desktop applications. You are probably safe on a SOHO network, but you should be aware of this concern before proceeding.

Citations:

5
  • I just configured it with --enable-setcap-install flag then I can't do this. Dec 23, 2012 at 0:26
  • This is far more dangerous and more problematic, because there are for more exploitable bugs when running the full gui as root, and configuration issues can crop up when a gui program runs as root. See the dpkg-reconfigure solution above for a much better option.
    – nealmcb
    Jan 15, 2013 at 23:53
  • For desktop users, I consider this to be a workaround. When you sudo the app, all files it creates have root permission, and you need to constantly keep changing file permissions to make them available to your current user in your home directory. For server and sysadmins in general, sudo is actually the best approach.
    – JulioHM
    Feb 26, 2013 at 15:07
  • 1
    @JulioHM Running Wireshark as root is dangerous for everyone, including server and sysadmins.
    – kraxor
    Jul 1, 2014 at 0:42
  • 2
    At approximately line 40 of Wireshark's doc/README.packaging file, it says "WIRESHARK CONTAINS OVER TWO MILLION LINES OF SOURCE CODE. DO NOT RUN THEM AS ROOT." Take that statement very seriously.
    – user126192
    Aug 10, 2014 at 7:48
2

you can try this also, open the terminal, run this command

# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

run wireshark as a non-root user

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .