Wiresharkをubuntuにインストール後のpermissionエラーの対応方法

Wiresharkをubuntu20.04にインストールして画面を立ち上げると、エラーメッセージが表示されました。Wiresharkのバージョンは3.2.3です。

メッセージをを読むと、以下のコマンドを実行するよう言っているようです。

$ sudo dpkg-reconfigure wireshark-common
$ sudo usermod -a -G wireshark {your username}

なので、やってみます。

1つ目のコマンド「dpkg-reconfigure」を実行すると、このような画面が表示されます。「はい」のほうを選択してリターンキーを押下します。

すぐに終わります。これを実行することで「wireshark」ユーザーが新たに作成されるようです。

2つ目のコマンド「usermod」を実行します。{your username} となっているところにはログインしているユーザーを指定します。これもすぐに終わります。wiresharkグループにログインユーザーが追加されます。

idコマンドで確認すると、一番最後に「133(wireshark)」が追加されていることがわかります。


$ id tak
uid=1000(tak) gid=1000(tak) groups=1000(tak),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare),133(wireshark)

これでWiresharkを再起動すれば大丈夫のはず!と思っていたのですが、Wiresharkを再起動させると、またメッセージが表示されました。

メッセージを閉じてWiresharkの画面をよくよく見ると、PCのインターフェイスが表示されていません。

どうやらWiresharkの再起動だけではだめで、一度ログアウトしてログインし直す必要があるようです。なので、ログインし直してWiresharkを立ち上げると・・・

インターフェイスが表示されました!

左上のサメの背びれのマーク(赤枠)をクリックすると、キャプチャを始められます。

SQLのhaving句の使い方

SQLにはhaving句があるのですが、その使い方を書いてみます。having句は集合関数を使ったときに、集計された結果を条件にすることができます。言葉ではわかりづらいので、例を示します。

注文テーブルがあります。注文されたときの一覧です。1回の注文で1レコードが作成されます。

ここで、注文テーブルからよく売れている(売れた個数が多い)商品を確認するSQLを考えてみると、以下のSQLになります。

select 商品, sum(個数) from 注文
group by 商品;

結果は、こうなります。

この結果からさらに「○個以上売れているもの」を抽出したい場合にhaving句が役に立ちます。例えば、3個以上売れているものを抽出するSQLは以下です。

select 商品, sum(個数) from 注文
group by 商品
having sum(個数) > 2;

結果は、こうなります。

having句は集合関数の結果に対して条件をつけて抽出することができます。集合関数には、count()、sum()、avg()などがあります。

別の例として、注文が2回以上あった商品(注文テーブルに2レコード以上ある)を抽出するSQLは以下です。

select 商品, count(*) from 注文
group by 商品
having count(*) > 1;

結果は、こうなります。

あるテーブルをgroup by句で集計した結果に対して、さらに条件をつけて検索したい場合にhaving句が役に立ちます。

以下の形で覚えてしまいましょう。