インストール直後のユーザ名は「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 Options」を選択して、「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ページを公開していたら、その対策も意味がないものとなります。