Oracle Linuxサーバーからrootユーザーにアクセスできません。

Oracle Linuxサーバーからrootユーザーにアクセスできません。

私のサーバーでAnsibleを設定し、すべてのサーバーでAnsibleユーザーを作成し、それらにsudoアクセス権を与えました。したがって、Ansibleユーザーを使用して別のサーバーにsshするたびにパスワードを要求しないでください。両方のサーバーで正常に構成しましたが、ファイルを変更して別のサーバーで構成すると、システムが/etc/sudoers/応答しなくなり、端末を再起動し、rootユーザーとしてサーバーにログインしようとするとエラーが発生します。

$ sudo su

/etc/sudoers: syntax error near line 121 <<< sudo: parse error in /etc/sudoers near line 121 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin

答え1

sudoersファイルが破損しているため、sudoすべてのアクセスが拒否されます。ルートパスワードがある場合は、それを使用して問題を解決できます。

su -
visudo

そうでない場合は、リカバリディスクを使用してシステムを起動し、sudoersそのようにファイルをリセットする必要があります。はるかに複雑です。

これを防ぐために構文チェックを実行するため、/etc/sudoersファイルを使用せずに手動で編集しないでください。visudo

ちなみに、使用する必要はありませんsudo su(root権限を取得するために使用され、すでにroot権限で再提供するようにsudo要求します)。または完全に適切かもしれません。susudo -ssudo -i

答え2

ルートパスワードはありませんが、ユーザーアカウントがそのwheelグループ(またはsudoDebian / Ubuntuの場合はグループ)にある場合は、もう一度試すことができます。

pkexec visudo

パスワードの入力を求められ(詳細)、ファイルをsudo編集できます。/etc/sudoers

アクティブなルートセッションが残っておらず、それを取得できない場合(または使用中sudo)、pkexec残念ながらダウンタ​​イムなしでこの問題を解決する方法はありません。

私はOracle Cloud OPCに精通していません。ただし、明らかにクラウドサーバー上にあり、これらのサーバーが複数あるため、この問題を解決する最後の方法は、クラウド管理インターフェースを使用してサーバーを強制終了し、問題のクラウドサーバーから仮想マシンディスクの接続を一時的に切断することです。仮想ディスクを2番目のクラウドサーバーに追加ディスクとして追加します。その後、問題サーバーのルートファイルシステムを/mnt2番目のサーバー(「回復サーバー」)にマウントし、それを実行してvisudo -f /mnt/etc/sudoers構文エラーを修正できます。これを実行した後、リカバリサーバーからディスクをアンマウントして接続を切断し、問題のあるサーバーに戻します。

クラウド管理インターフェースに仮想マシンでこれを実行するために必要な機能がない場合は、クラウド・オペレーター(Oracleなど)に連絡してサポートを受ける必要があります。彼らはこの種の問題について非常によく知っているでしょう。タイプミスのためにクラウドサーバーへのルートアクセスを失った人は間違いなくあなたが初めてではありません。

関連情報