パスワードを変更しましょう

インストール直後のユーザ名は「pi」、パスワードは「raspberry」です。
慣習に従って、パスワードを変更しましょう。

はじめに

Raspberry Pi だからと言って、既存の共通パスワードを使い続けるのも心配です。また、打ちにくいですよね。
パスワードを入れたら、それがどのように処理されてログインすることが出来るのか?など、仕組みを知るといろいろと面白いものです。
Windows10やUnix、Linuxも同様の処理をしてパスワードを照合していますので、興味があれば、Raspberry Piを題材に研究してみてください。
処理を理解すると、パスワードを忘れてしまった時のパスワード初期化も容易になり、急に周りの人間から恐れられます。

目的

ここでは「pi」ユーザの以下の2つのパターンでパスワード変更を記載します。
また、パスワードを忘れてしまった時に備えておく手段を記載します。

  • パスワードがハッシュ化されたファイルのバックアップ
  • コマンド「raspi-config」を用いたパスワード変更
  • コマンド「passwd」を用いたパスワード変更
  • パスワードを忘れてしまった時の対処法

バックアップ手順

ターミナルソフト「Tera Term」を使い、Raspberry Piへログインしましょう。
ログイン状態であれば、新たにログインする必要はありません。

バックアップ対象ファイルの存在を確認しておきます。

$ sudo ls -ltr /etc/shadow*
-rw-r----- 1 root shadow 1077 Jan  5 23:23 /etc/shadow-
-rw-r----- 1 root shadow 1209 Jan  6 00:09 /etc/shadow

パスワードがハッシュ化されたファイルは「/etc/shadow」です。
このファイルをバックアップします。
ファイルの権限モードが変更されてしまいますので、cpコマンドの「-p」を忘れずにつけましょう。
ファイルモードが変更されてしまうと、一般ユーザでも参照可能となりリスクが増えます。

$ sudo cp -p /etc/shadow /etc/shadow.org

バックアップしたファイルを確認します。

$ sudo ls -ltr /etc/shadow*
-rw-r----- 1 root shadow 1077 Jan  5 23:23 /etc/shadow-
-rw-r----- 1 root shadow 1209 Jan  6 00:09 /etc/shadow.org
-rw-r----- 1 root shadow 1209 Jan  6 00:09 /etc/shadow

ファイル名ファイルの内容
/etc/shadow-初期インストール直後は、ありません。
ユーザの追加、削除時に自動で取得されたバックアップファイルです。
/etc/shadow.org「cp -p」でバックアップしたので、バックアップファイルとタイムスタンプ、ファイルモードが同じものでコピーされています。
/etc/shadowパスワードがハッシュ化されたファイル
このファイルがパスワード変更により更新されます。

パスワード変更手順「raspi-config」編

ターミナルソフト「Tera Term」を使い、Raspberry Piへログインしましょう。
ログイン状態であれば、新たにログインする必要はありません。

以下のコマンドを入力します。

$ sudo raspi-config

以下の表示で、矢印キーで「1.System Option」を選択して、「Enter」キーを押下します。

画面が変わり、矢印キーで「S3.Password」を選択して、「Enter」キーを押下します。

ユーザー名に「Pi」または、変更対象のユーザ名が表示されていることを確認し、「Enter」を押下します。

画面がコマンドラインへ戻り、新しいパスワードを入れるように催促されますので、新しいパスワードを入力します。
確認用にもう一度入力します。

$ sudo raspi-config
New password:
Retype new password:

「successfully」(成功という意味)が表示されていることを確認し、「Enter」を押下します。

先頭の画面に戻りますので、「Tab」キーを2回押下し、「<Finish>」へカーソルを合わせ、「Enter」を押下します。

以上でパスワード変更作業が完了です。
次回の「TeraTerm」によるログインから、新しいパスワードを使用してください。

パスワード変更手順「passwd」編

ターミナルソフト「Tera Term」を使い、Raspberry Piへログインしましょう。
ログイン状態であれば、新たにログインする必要はありません。

以下のコマンドを入力します。
例として、ここでは「pi」ユーザをコマンドの引き数へ指定していますが、追加したユーザなどの場合は、変更対象のユーザ名を入れてください。

$ sudo passwd pi

下記のように新しいパスワードを入れるように催促されますので、新しいパスワードを入力します。
確認用にもう一度入力します。

New password:
Retype new password:
passwd: password updated successfully

「successfully」(成功という意味)が表示されていれば、パスワード変更作業が完了です。
次回の「TeraTerm」によるログインから、新しいパスワードを使用してください。

パスワードを忘れてしまった時の対処法

あまり深く書くのも気が引けますので、簡単に記載します。

(1) 他のユーザを作成していて、sudoで特権が取れれば、そのアカウントで上記のパスワード変更コマンド「sudo passwd pi」で変更します。

(2) MicroSDカードを抜き、Windows10やMac、Linuxマシンへ挿入、Windows10の場合、「ext4」ファイルシステムを認識させるソフトウェア「Ext2Fsd」をインストールして、ファイルシステムをマウントします。
マウントしたディレクトリから「etc」ディレクトリへ移動し、バックアップファイルをコピーして上書きます。

最悪、メモ帳以外のテキストエディタで「shadow」ファイルを開き、パスワード部分を削除してNULL化してしまえば、パスワードなしでログインできます。Windowsも同様です。Windowsはその手のソフトウエアがゴロゴロしてますね。ウィルス付きの…(あー、書いちゃった)

パスワード変更やユーザ追加の仕組みを知れば、その場で新しいユーザも作れ、何喰わる顔をして乗っ取れますし、ログインパスワードのセキュリティとは、ものすごく幼稚であると実感できると思います。

セキュリティを強化することと、暗号(ハッシュ)強度を上げることは、似ているよう違います。暗号強度を上げることも大事ですが、観点としてネットワーク通信の暗号化、セッション維持、ファイルシステム自体の暗号化、物理的な機器の持ち出しなどトータル的な検討が必要ですし、その辺を完璧にしても、穴だらけのWebサーバとjavascriptを使ったWebページを公開していたら、その対策も意味がないものとなります。

関連ページ

Raspberry Pi Zero Labo