Gtk-WARNING **: cannot open display: :0.0

なんですかね~、これは・・・。
ただ、GNOME上でwiresharkを起動したかっただけなのに、なぜか起動しない。一体何が起こっているんだ。

まずは、下記のエラーメッセージをググる。

Gtk-WARNING **: cannot open display: :0.0

すると、どうやら0.0というのは「ディスプレイ番号.スクリーン番号」らしい。
なんかどっちも似たような意味の単語の気がする・・・。
ディスプレイ番号はXサーバを起動している数(つまり普通は1個だから0からカウントして1番目の「0」)で、スクリーン番号は実際に接続しているモニタの数(1個なら「0」)。つまり普通は「0.0」となり、1個目のXサーバで1個目のモニタに表示しろ、ということになるようだ。
ここまでは何となく理解した。

さて、ではwiresharkを実行しても何で表示しないのか・・・。
私の環境ではwiresharkを実行するとroot権限を求められてパスワードを入力させられる。しかし、パスワードを入力しても画面は表示しない。
しかし、この時に「権限なし」で実行すると画面は表示される。しかし、権限がないからインタフェースなどは表示されず。使いものにならない。

つまり今現在GNOMEにログインしているユーザが「0.0」を使っているからrootユーザが使えないのか?

そんな予想でさらに調べる。
すると「Root で X アプリケーションを起動」をみつけた。
ここには「セキュリティ上の理由で、デフォルトでは root は root 以外のユーザーが起動した X サーバーに接続することができません。必要な場合 root から接続できるようにする方法がいくつか存在・・・」とある。

自分の環境では以下でうまくいった。

$ xhost si:localuser:root<方法1>
$sudo wireshark

<方法2>
$ xhost si:localuser:root

上記の後にwiresharkを起動、アプリを閉じた後は下記を実行。
$ xhost -si:localuser:root

因みに下記は自宅環境での実行結果。

$ xhost -si:localuser:root
localuser:root being removed from access control list
$ xhost si:localuser:root
localuser:root being added to access control list

とりえずこれで問題は解決できました。