Fullmoon System

Linuxのrootパスワードをリセットする:コンソール・SELinux・監査手順

EdwardMoon

RHEL 8と、同じrd.breakによる復旧手順を使用するRocky Linux系環境で、rootパスワードをリセットするガイドです。Ubuntuや異なるinitramfs構成、最近のディストリビューションの認証ポリシーには、そのまま適用せず、対象バージョンの公式復旧手順を確認してください。管理権限のあるコンソールからrd.break復旧モードに入り、ルートファイルシステムを書き込み可能にしてパスワードを変更し、SELinuxの再ラベル付けと起動を確認します。コマンドをコピーする前に、対象、権限、変更範囲、復旧経路を確認します。この記事では、基本概念から適用手順、コード例、検証、トラブルシューティングまでを、一連の運用手順としてまとめます。

例の値は説明用です。ホスト名、ユーザー、デバイス、パス、ネットワーク範囲は実際の環境に合わせて変更してください。本番環境の変更は、現在の状態と設定をバックアップし、コンソールまたは別の管理セッションを確保してから行います。

Linuxのrootパスワードのリセット:ユーザーとグループ、ホームディレクトリ、シェル、パスワード有効期限、ログイン制御とアクセス権の確認
rootパスワードのリセットにおける構成要素、セキュリティ境界、状態確認と復旧の流れ

rootパスワードのリセット:基本概念と対象範囲

設定を正しく適用するには、コマンド名だけでなく、構成要素同士の関係を理解する必要があります。取得した情報、設定ファイル、実行中のプロセス、ログ、実際のサービス応答を照合します。

項目運用上の基準
識別子ファイル所有権とプロセス権限の基準は、ユーザー名ではなくUID/GID
認証ポリシーshadow、PAM、パスワード有効期限、ロック、ログインシェルの組み合わせ
権限のライフサイクル作成・変更・休眠・退職時の対応と、sudo権限の定期的な見直し

押さえておきたいポイント

  • 物理・仮想コンソールへのアクセス自体が強い権限を持つことを前提にします。
  • 変更理由、担当者、時刻を記録します。
  • 再起動後はrootで直接SSH接続せず、個人アカウントとsudoを使用します。

適用前の安全確認

  1. 既存のUID/GID、グループ、ホームディレクトリ、ファイル所有権を調べ、競合を確認します。
  2. サービス専用アカウントか利用者のアカウントかを区別し、シェル・ホーム・有効期限・ロックの方針を定めます。
  3. パスワードハッシュをコマンドライン引数やスクリプトに直接記載せず、安全な入力方法を使用します。
  4. 変更後は新しいセッションで、グループの反映、sudoの範囲、サービスファイルへのアクセスを確認します。
  5. 使用しないアカウントや鍵を無効化し、所有権、グループ、最近のログインを定期的に監査します。

所有している、または管理権限が確認できたシステムのコンソールでのみ実施してください。変更後は、一時的なアクセス手段とブートメニューの保護を再確認します。

コマンドと設定例

以下は段階ごとに実行します。各コードブロックが成功しても、次の段階まで安全であるとは限りません。出力、終了コード、ログを確認してから進めてください。

手順1:現在の状態を確認する

# コンソールのGRUB画面でeを押します。
# linuxで始まるカーネル行の末尾にrd.breakを追加します。
# Ctrl+xで起動し、復旧用シェルで以下のコマンドを実行します。
mount -o remount,rw /sysroot
chroot /sysroot

手順2:設定を変更する

passwd root
touch /.autorelabel
mount -o remount,ro /
exit
exit

手順3:結果を確認する

SELinuxの再ラベル付けには時間がかかり、完了後に再起動する場合があります。処理中は電源を切らず、通常のログイン画面が表示されるまで待ちます。コンソールから変更後のパスワードでログインし、以下のコマンドで状態を確認します。rootのSSHログインを許可する必要はありません。

getenforce
sudo passwd -S root
sudo journalctl -b -p warning --no-pager
sudo sshd -T | grep permitrootlogin

運用時の検証とトラブルシューティング

コマンドの成功メッセージだけで検証を終えないでください。実行ユーザー、実際のファイル・プロセス・ソケットの状態、サービスログ、利用者の立場での動作確認を組み合わせます。失敗した場合は同じコマンドを繰り返すよりも、直前の変更と正常時の状態との差を絞り込みます。

  • ユーザー名が同じでもUIDが異なれば、共有ファイルやNFSの権限は一致しません。
  • グループの変更は既存のログインセッションに即時反映されないため、新しいセッションで確認します。
  • アカウントのロック、シェル制限、サービスアカウントの実行可否を区別して調査します。

変更前後の出力、使用したパッケージとバージョン、担当者、作業時刻、検証結果、ロールバックの有無を記録します。繰り返す作業は、テスト環境で再現してから自動化します。

運用チェックリスト

  • 対象のホスト・ユーザー・デバイス・ファイル・サービスを明確に特定した。
  • 現在の設定と重要なデータを別の場所にバックアップした。
  • 必要最小限の権限を持つアカウントとネットワーク範囲を使用した。
  • コマンドや設定例の値を、実際の環境に合わせて置き換えた。
  • 新しいセッションまたは独立したクライアントから機能を確認した。
  • ログ・監視・バックアップ・復旧手順と担当者を確認した。

公式ドキュメントと関連ガイド

rootパスワードのリセットは、コマンドが一度実行できただけでは完了ではありません。再起動後や新しいセッションでも設定が維持され、権限と公開範囲が意図どおりであり、エラーを検知して安全に復旧できる状態を確認します。