web-dev-qa-db-ja.com

ルートパスワードを変更するにはどうすればよいですか?

Rootパスワードがわからず、マシンへのrootアクセス権がない場合、どうすればrootパスワードを変更できますか?

40
monu

以下は、私が考えることができるいくつかの方法です。最も煩わしいものから最も煩わしいものまでです。

再起動せずに

Sudo:を使用する場合Sudoを実行するpasswd権限がある場合、次のことができます。

Sudo passwd root

yourパスワードを入力してから、rootの新しいパスワードを2回入力します。できました。

ファイルの編集:これは、完全なSudoアクセス権がありませんが、do/etc/{passwd,shadow}を編集するアクセス権があります。 /etc/shadowを開くには、sudoedit /etc/shadowまたはSudo $EDITOR /etc/shadowを使用します。 rootのパスワードフィールド(2番目と3番目のコロン:の間のすべてのランダムな文字)を、自分のユーザーのパスワードフィールドに置き換えます。セーブ。ローカルはあなたと同じパスワードを持っています。ログインして、パスワードを別のパスワードに変更します。

これらは簡単なものです。

再起動が必要

シングルユーザーモード:これはRenanによって説明されたばかりです。 GRUB(またはブートローダー)にアクセスでき、Linuxコマンドラインを編集できる場合に機能します。Debian、Ubuntuなどを使用している場合は機能しません。一部のブートローダーの設定にはパスワードが必要であり、続行するにはパスワードを知っている必要があります。

  1. リブート。
  2. ブート時パスワードを入力します(ある場合)。
  3. ブートローダーのメニューに入ります。
  4. シングルユーザーモードが利用可能な場合は、それを選択します(Debianでは「リカバリーモード」と呼んでいます)。
  5. そうでない場合、GRUBを実行します:
    1. 通常の起動オプションを強調表示します。
    2. 押す e 編集モードに入ります。 GRUBそこでパスワードを要求されるかもしれません。
    3. kernelまたはlinuxで始まる行を強調表示します。
    4. 押す e
    5. 最後に単語「単一」を追加します。 (スペースを前に付けることを忘れないでください!)
    6. 押す Enter 編集したスタンザを起動します。一部のGRUBは Ctrl-X、いくつかの用途 b。画面の一番下にあるものを示しています。

システムはシングルユーザーモードで起動します。現時点では、一部のディストリビューションはrootパスワードを要求しません(DebianおよびDebianベースのディストリビューションは要求します)。あなたは今ルートです。パスワードを変更してください:

mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot

およびreboot、または、通常のランレベルがわかっている場合は、telinit 2(またはそれが何であれ)と言います。

initの置き換え:表面的にはシングルユーザーモードのトリックに似ており、ほとんど同じ手順ですが、コマンドラインではるかに優れた能力が必要です。上記のようにカーネルを起動しますが、singleの代わりにinit=/bin/shを追加します。これはinitの代わりに/bin/shを実行し、very初期のシェルをほとんどアメニティなしで提供します。この時点での目標は次のとおりです。

  1. ルートボリュームをマウントします。
  2. passwdを実行します。
  3. passwdコマンドを使用してパスワードを変更します。

特定のセットアップに応じて、これらは取るに足らない(シングルユーザーモードの手順と同じ)か、モジュールのロード、ソフトウェアRAIDの初期化、暗号化ボリュームのオープン、LVMの起動など、非常に重要です。 initがないと、デーモンやその他のプロセスは実行されていませんが、/bin/shとその子は実行されているので、文字通り自分で操作できます。また、ジョブコントロールがないため、入力する文字に注意してください。 catを1つ置き間違えたため、抜け出せない場合は再起動する必要があります。

レスキューディスク:これは簡単です。選択したレスキューディスクを起動します。ルートファイルシステムをマウントします。プロセスは、ボリュームの階層化方法によって異なりますが、最終的には次のようになります。

 # do some stuff to make your root volume available.
 # The rescue disk may, or may not do it automatically.
 mkdir /tmp/my-root
 mount /dev/$SOME_ROOT_DEV /tmp/my-root
 $EDITOR /tmp/my-root/etc/shadow
 # Follow the `/etc/shadow` editing instructions near the top
 cd /
 umount /tmp/my-root
 reboot

明らかに、$SOME_ROOT_DEVはレスキューディスクによってルートファイルシステムに割り当てられたブロックデバイス名であり、$EDITORはお気に入りのエディターです(レスキューシステムではviである必要があります)。 rebootの後に、マシンが正常に起動するようにします。 rootのパスワードは、自分のユーザーのパスワードになります。 rootとしてログインし、すぐに変更します。

他の方法

明らかに、上記には無数のバリエーションがあります。それらはすべて2つのステップに要約されます。

  1. コンピューターへのrootアクセスを取得します(catch-22 —そして本当のトリック)
  2. どういうわけかルートのパスワードを変更します。
64
Alexios

これは、ほとんどすべてのディストリビューションで機能するはずです。

別のシステムからルートパーティションにアクセスできる場合。ライブCD、そこからrootとして/etc/shadowを編集できます。最初にchmod u+w shadowする必要があります。 rootのエントリを見つけます。これはおそらく最初のエントリで、次のようになります。

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::

最初の2つのコロンの間のすべてを消去して、次のようにします。

root::15666:0:99999:7:::

次にchmod u-w shadow。これでシステムを再起動でき、rootにはパスワードがありません。ログインプロンプトでrootと入力するだけで、プロンプトは表示されません。その後、passwdを使用して設定できます。

特に注意する:

  • 最初に/etc/shadowのバックアップコピーを作成します。
  • 新しいパスワードを設定するまで、root以外のユーザーとしてログインしないでください。これは重要ではありませんが、特権のないマルウェアが何らかの種類の hail mary pass を作成するという理論的な可能性を防ぎます(「ルートパスワードがないかもしれません...」)。ちょっと遠いIMO。
7
goldilocks

タグから判断すると、RHELを使用していると思いますが、このソリューションはすべてのディストリビューションで同じように機能するはずです。

Rootパスワードを忘れた場合は、シングルユーザーモードで起動し、これを使用してパスワードを変更できます。このアプローチは Red Hatのステップバイステップガイド で説明されています:

  1. GRUBメニューに入り、 e 。
  2. kernelで始まる行を選択して、 e 再び。
  3. この行の終わりにsingleを置きます。次に押す ENTER そして bそれからすごい。

最終的に、passwd rootと入力してパスワードを変更できるプロンプトが表示されます。次に、rebootと入力してシス​​テムを再起動します。

4
Renan