CentOS/RHEL 7 での root パスワードのリセットは、古いバージョンとは少し異なります。この投稿では、紛失した root パスワードをリセットする手順について説明しています。
再起動して grub2 を編集
システムを再起動し、任意のキーを押してデフォルト カーネルからの自動起動を停止します。カーネル行を選択したら、「e」を押します。
rd.break をカーネルに追加
編集モードになったら、linux16 で始まる行に移動します。 rd.break を追加します この行の終わりまで。
これにより、マシンが緊急モードで起動し、root ユーザーのパスワードを入力しなくても root ユーザー権限が与えられます。 root ユーザーのパスワードが設定されていない場合でも、これは機能します。
システムを再起動します
CTLR+x を押します rd.break をカーネルに追加した後。これにより、システムが緊急モードで再起動されます。
sysroot を再マウント
まず、読み書きモードで sysroot ファイル システムを再マウントし、次に chroot を使用して chroot 監獄に入ります:
# mount -o remount,rw /sysroot # chroot /sysroot
root パスワードをリセット
最後に、コマンド ラインに passwd コマンドを入力し、root ユーザーの新しいパスワードを設定します。パスワードが脆弱な場合、「パスワードは辞書チェックに失敗しました」などの警告が表示される場合があります。警告を安全に無視して、必要なパスワードを設定してください。
# passwd
SElinux の再ラベル付け
ラベルのないすべてのファイル (シャドウ ファイルを含む) が起動中に再ラベル付けされることを確認してください。隠しファイル autorelabel に触れる ファイル /etc/shadow のように、通常のコンテキスト外で変更されたファイルにラベルを付け直すよう SElinux に指示します。
# touch /.autorelabel
同期
すべてのキャッシュをディスクにフラッシュするには、次のコマンドを入力します:
# sync
再起動
exit コマンドを 2 回入力して、chroot 環境を離れてログアウトします。システムはいくつかの SELinux コンテキストを適用し、再起動します。新しく設定した root パスワードを使用してログインできるようになりました。