ノーマルモードとデベロッパーモード

概要

本家のChromebookには通常使用するモードの他にデベロッパーモードというものがあります。このデベロッパーモードではルート権限でのシェルが使用でき、通常できないような細かな制御ができるようになりますが、何でもできるためデベロッパーモードのまま放置しておくとセキュリティ上のリスクを抱えることになります。

本カスタムビルドでも同様のモード切り替え機能があり、ノーマルモードではルートシェルを起動できないようにすることができます。

ただし、Chromebookと完全に同じというわけではありません。本ビルドのノーマルモードでは以下の機能だけが提供されます。

  • ルートシェルの起動抑制

    Ctrl+Alt+F2によるデベロッパーコンソールの起動、croshでのshellコマンドの実行、及びブート時の起動パラメータ入力ができなくなります

  • Chromium OSの自動アップデート

    ノーマルモードの時のみ、自動で更新サーバにアップデートがあるかどうかの確認およびアップデートがある場合の自動インストールが行われます。

本ビルドではChromebookと異なり、デフォルトがデベロッパーモードとなっています。そして、croshに追加した本ビルド独自のコマンドによってノーマルモードに切り替えられるようになっています。 また、Chromebookと異なり、モードの切替時にPowerwash(マシン環境の初期化)は行われませんので、気軽にモードの切り替えを行うことができます。

Attention

このページで説明しているモード切り替えは、内蔵ディスクにインストールした後で使用できます。インストール用USBメモリでは使用できません(常にデベロッパーモードになります)。

ノーマルモードへの切り替え

ノーマルモードへの切り替えは以下の手順で行います。

  1. Chromium OSにログインします。
  2. Ctrl+Alt+Tを押してcroshを起動します。
  3. Chromiumブラウザのタブが開き crosh> というプロンプトが出るのでnormalmode と入力します。
  4. パスワードを尋ねられるので管理者ユーザのパスワード(デフォルトはpassword)を入力します。
  5. Return to Normal mode on next boot.と出力されますのでマシンをリブートすると、リブート後はノーマルモードで立ち上がります。

デベロッパーモードへの切り替え

デベロッパーモードに戻す際は以下の手順となります。

  1. Chromium OSにログインします。
  2. Ctrl+Alt+Tを押してcroshを起動します。
  3. Chromiumブラウザのタブが開き crosh> というプロンプトが出るのでdevmode と入力します。
  4. パスワードを尋ねられるので管理者ユーザのパスワード(デフォルトはpassword)を入力します。
  5. Developer mode will be enabled on next boot.と出力されますのでマシンをリブートすると、リブート後はデベロッパーモードで起動します。
  6. リブート後は以下の機能が使用できます。
  • Ctrl+Alt+F2を押すとデベロッパーコンソールが開きます。
  • crosh(ログイン後にCtrl+Alt+Tで起動)上でshellコマンドが使えます。

アップデート後もノーマルモードを継続する

上でも書いたように、本ビルドではデフォルトの状態がデベロッパーモードになります。これはすなわち、ノーマルモードでChromium OSのアップデートを行うとデフォルトのままだとアップデート後にデベロッパーモードになってしまうということです。 それではこまる、という方は、ノーマルモードへの切り替えの際にcroshでnormalmode -f と-fオプションをつけて実行してください。 -fオプションを付加してnormalmodeコマンドを実行すると、アップデート後もノーマルモードが維持されます。

[参考]なぜデフォルトがデベロッパーモードなのか

Chromebookで使われるGoogle Chrome OSは、動作対象機種を限定してビルドされている、いわばオーダーメイドのOSであり、確実にその機種で動作することを検証した上でリリースされているものです。なので、セキュリティ上のリスクとなるルートシェルをデフォルトで有効にしておく必要性がありません。

それに対して、本ビルドはどのような機種で動作させられることになるかが不明であり、確実に動作することは保証できません。 その条件でデフォルトでルートシェルが使えないようにしてしまうと、ブート・インストール時に何らかのトラブルがあった場合の原因究明やリカバリは非常に困難になります。そのため、デフォルトをデベロッパーモードにしています。ノーマルモードへの切り替えは、ブート、インストールがうまく行ってある程度安定動作するめどが立ってからにすることをおすすめします。

同様の事情で、Chromium OS更新後のノーマルモード継続(normalmode -f)をデフォルトではなくオプションにしています。-fオプションの使用は十分に注意してください。