Ubuntu Weekly Recipe

第519回 ubuntu-reportは何を・何時送信するのか?

この記事を読むのに必要な時間:およそ 5 分

Ubuntu 18.04 LTSでは,デスクトップユーザーの利用状況を把握するために,インストール直後にシステム情報をCanonicalのサーバーに送る機能が実装されました(参考:Topicsの2018年2月23日号)⁠今回はどんな情報が,どのタイミングで,どのように送信されるのか,さらにはその停止方法を紹介します。

初回ログイン時にのみ起動するアレ

第517回でも紹介されているように,Ubuntu 18.04 LTSのデスクトップ版では初回ログイン時にウィザード(Welcome to Ubuntu)が表示されるようになりました。これはGNOME Initial SetupのUbuntuカスタマイズ版です。

本家のGNOME Initial Setupは本来,初回ログイン時におおよそ次のような項目を設定します※1)⁠

※1
ディストリビューションや設定,起動時のオプションによっては表示されない項目も存在します。
  • 言語
  • キーボードレイアウト
  • EULAの確認
  • 無線LAN
  • プライバシー関連機能のオンオフ
  • タイムゾーン
  • 追加のソフトウェアソース
  • オンラインアカウント
  • ローカルアカウント(さらにActiveDirectoryもしくはFreeIPAを利用したアカウント)
  • アカウントに対するパスワード

それに対してUbuntu 18.04 LTSの場合は,第517回の1ページ目末尾のスクリーンショットからもわかるように,次の項目しか表示・設定しません。

  • 「Ubuntuの新機能」
  • 「Livepatch」
  • 「Ubuntuの改善を支援する」
  • 「準備が完了しました!」

これはGNOME Initial Setupで設定する項目のほとんどが,Ubuntuのインストーラー(Ubiquity)で設定済みだからです。ちなみに実行バイナリはGNOME Initial SetupとWelcome to Ubuntuでまったく同じ(/usr/lib/gnome-initial-setup/gnome/initial-setup)です。何をもって挙動を変えているのかというと,どうやら環境変数XDG_CURRENT_DESKTOP「ubuntu」であるかどうかで,変更しているようです。

それでは「初回ログイン時のみ起動する」部分はどのように実現しているのでしょうか。GNOME Initial Setupの起動スクリプトは「/etx/xdg/autostart/gnome-initial-setup-first-login.desktop」です。⁠/etc/xdg/autostart/」※2にあるDesktop Entry Fileは,セッション起動時に自動的に実行されます。ただしgnome-initial-setup-first-login.desktopには次のような記述があります。

※2
より正確な場所は$XDG_CONFIG_DIRS/autostart/です。$XDG_CONFIG_DIRSは,Ubuntuだと/etc/xdg/xdg-ubuntu:/etx/xdgが設定されています。
AutostartCondition=unless-exists gnome-initial-setup-done

つまり~/.config/gnome-initial-setup-doneが存在しない場合のみ,自動起動されるわけです。GNOME Initial Setupでは,最後のページもしくは「準備が完了しました!」のページが表示されたときに,このファイルが作成されます。これにより一通りGNOME Initial Setupを見たあとは,もう起動しなくなるのです。同じ理由で,GNOME Initial Setupを起動したまま再起動した場合は,次回ログイン時にもGNOME Initial Setupが再び起動することになります。

$ cat ~/.config/gnome-initial-setup-done
yes

これにより古いリリースからアップグレードした場合も必ず一度はGNOME Initial Setupが実行されることになります。ただし18.04から18.10にアップグレードする際は~/.config/gnome-initial-setup-doneが残ってしまいます。GNOME Initial Setupの本来の用途を考えると,アップグレード時は実行されないのが期待される挙動ではありますが,Welcome to Ubuntuの用途からするとアップグレード時は毎回表示するような仕組みになるかもしれません。

ちなみにgnome-initial-setup-first-login.desktopは--existing-uesrオプションを付与してGNOME Initial Setupを起動しています。これは「既存ユーザーモード」と呼ばれる,既に存在するユーザーアカウントに対して設定を行うモードです。もしこのオプションを付けずに起動した場合は,Ubuntuの場合もローカルアカウントとパスワードの設定が表示されます。

ここまでの説明で「初回ログイン時に起動する」仕組みがわかりました。ちなみにこの仕組みはXDG※3をサポートするディストリビューションやデスクトップ環境であればおおよそ同じ挙動をするので,独自に「初回ログイン時に起動する」ソフトウェアを組み込む際に参考になるでしょう。

※3
X Desktop Groupの略です。デスクトップ関連の相互運用性の確保などを目的としたさまざまな情報を文書化しています。昔はグループ名がX Desktop Groupでしたが,今ではその名前はfreedesktop.orgに変わり,変数名やコマンド名にのみ「XDG」が残っています。

送信ツール「ubuntu-report」

「Welcome to Ubuntu」の3番目の「Ubuntuの改善を支援する」では,Ubuntuの改善を支援するためにシステム情報を送信するかどうかを問われます。これはUbuntu Weekly Topicsの2018年2月23日号でも話題になった,より多くのUbuntu利用情報を集める機能の成果物としてのubuntu-reportに関する設定です。

図1 ⁠developers」が何を意図しているのかは不明

画像

ubuntu-reportでは次のような情報をJSONフォーマットで送信します。

  • ハードウェアとシステムの情報
  • インストール時・アップグレード時に設定した項目
  • インストール時・アップグレード時の各画面で要した時間

具体的には同画面の「Show the First Report」ボタンで内容を確認できます。

図2 送信する情報

画像

送信するタイミングは「次へ」ボタンを押したタイミングです。つまり「次へ」を押さない限りはデータの送信は行いません。

ちなみに「いいえ,送信しません」を選ぶと「何も情報を送信しない」と思うかもしれませんが,それは勘違いです。⁠いいえ,送信しません」を選んだ上で「次へ」を押した場合も,「システム情報は送らない」という情報が送信されます。具体的には次のようなJSONデータが送信されます。

{"OptOut": true}

つまりCanonicalには特定のIPアドレスに対してWelcome to Ubuntuが実行されたことがわかるようになっています。言い換えるとUbuntuデスクトップがインストールされたマシンの概数だけは把握できるようになっているのです※4)⁠

※4
かなり個人的な意見ではありますが,この「opt-outを送る」という挙動については「それはないわー」が正直な感想です。

データの送信先はhttps://metrics.ubuntu.comです。経路についてはTLSで暗号化されます。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入