RedHat サーバーからロックアウトされました

RedHat サーバーからロックアウトされました

私は数年前から Linux 管理者をしており、ライブ システムでシステムを再起動して / または /etc (ディレクトリ ディストリビューションによって異なります) をマウントすると、root のパスワードを変更できることを知っています。現在、もっと大きな問題があります。

VI を使用したときに何か問題が発生し、/etc/passwd の最初の行の最初の文字が大文字に変更されたと思います。そのため、root ではなく Root になっています。これを通常のユーザーとして変更する方法はありますか?

これは Cisco サーバー上で実行されており、iLO と KVM スイッチを介してシステムにアクセスすることもできます。したがって、システムにアクセスする方法はいくつかあります。ただし、これは 24 時間 365 日稼働のシステムであるため、サーバーをシャットダウンすることはできません。

どのような形でもご助力いただければ幸いです。ありがとうございます。

答え1

/etc/passwdUID 0 が「root」と呼ばれていないからといって、ロックアウトされているわけではありません。以下は、手動で編集し、 root の新しい名前で再度ログインした後のシステムです/etc/shadow

SuperUser@sf:~# id
uid=0(SuperUser) gid=0(Root) groups=0(Root)

実際のハッシュされたパスワードが含まれている のスペルを使用します/etc/shadow。ただし、このファイルを読み取ることができるのは root だけです。passwd を「Root」に変更しただけの場合は、「root」が必要になる可能性があります。

通常のユーザーとして passwd を編集することはできません。そうするとセキュリティが損なわれます。ユーザーは、uid 0 になるなど、任意のユーザーになりすますことができます。


usermodローカル ファイル内のユーザーを変更するのにテキスト エディターは必要ありません。shadow -utils のマニュアル ページおよび関連コマンドを参照してください。

OS 管理者は、通常の個人ユーザーから root になる何らかの方法を持っている必要があります。たとえば、sudoルールや既知のパスワードなどです。root のログインを変更する場合は、OS 管理者になります。

システムのダウンタイムに備えて、メンテナンスの時間枠を常に設ける必要があります。他に何もなければ、セキュリティ パッチが必要です。それでもログインできない場合は、数か月先であっても、カレンダーに予定を入れて修正してください。

答え2

sudoerアクセスできるシステム上に がありませんか? ない場合は、システム上のエクスプロイトを見つける必要があります。おそらく、root の cron が実行し、ユーザーが書き込み可能な何かです。/var/spool/cron/root該当するものがあるかどうか確認してください。

次に、エクスプロイトを持つサービスを探します。エクスプロイトとして実行されるプログラムは、root任意のコマンドを実行したり、書き込み可能なスクリプト/プログラムを自動的に実行したりします。

次に、該当するスティッキー ビットが設定されているプログラムを探しsetuid()、そこに悪用できるものがあるかどうかを確認します。

それが「箱から出してすぐに使える」システムである場合、おそらくあなたは困った状況に陥り、PC をシャットダウンし、ドライブを別の Linux ホストのスレーブとしてマウントし、そこからファイルを変更する必要があるでしょう。

幸運を!

答え3

あなたのような状況になったことがないことを願いますが、本当にひどい状況です。sudoers が設定されておらず、再起動を実行できない場合は、解決策はあまりないと思います。

申し訳ありませんが、この問題をどのように解決するかを考えるのに長い時間がかかっていますが、ユーザーがそのシステムから uid 0 に昇格するか (sudo)、ライブ システムを実行して uid 0 のデータに物理的にアクセスしない限り、何もできないのではないかと思います。

関連情報