AmazonEC2インスタンスがあります。ログインは問題ありませんが、「su」も「Sudo」も機能しません(以前は問題なく機能していました)。
「su」はパスワードを要求しますが、sshキーを使用してログインし、rootユーザーでさえhasパスワードだとは思いません。
「須藤<anything>
"これを行います:
Sudo: /etc/sudoers is owned by uid 222, should be 0
Sudo: no valid sudoers sources found, quitting
私はおそらく「chownec2-user/etc/sudoers」(または、rsyncの失敗にうんざりしていたので「chown-R ec2-user/etc」)を実行したので、これは私のせいです。
どうすれば回復できますか?インスタンスを停止し、AWS EC2コンソールで[ユーザーデータの表示/変更]オプションを試しましたが、これは役に立ちませんでした。
編集:私はこのインスタンスを強制終了して新しいインスタンスを作成できることに気付きましたが、極端なことは避けたいと思っていました。
そのような状況では、問題を修正するために2番目のインスタンスを使用できるはずだと思います。
lsblk
コマンドを使用して、使用可能なディスクデバイスとそのマウントポイント(該当する場合)を表示し、使用する正しいデバイス名を決定します。
ec2-user ~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf 202:80 0 100G 0 disk
xvda1 202:1 0 8G 0 disk /
Lsblkの出力は、完全なデバイスパスから/ dev /プレフィックスを削除します。この例では、/dev/xvda1
はルートデバイスとしてマウントされ(MOUNTPOINTはLinuxファイルシステム階層のルートである/としてリストされていることに注意してください)、/dev/xvdf
が付いていますが、まだ取り付けられていません。
次のコマンドを使用して、ボリュームのマウントポイントディレクトリを作成します。マウントポイントは、ファイルシステムツリー内のボリュームが配置されている場所であり、ボリュームをマウントした後にファイルの読み取りと書き込みを行う場所です。/dataなどのmount_pointの場所を置き換えます。
Sudo su
cd /mnt
mkdir other
mount /dev/xvdf other
cd /
chown -R root:root /mnt/other/etc/
exit
AWSに戻り、インスタンスを停止します
私も同じ問題を抱えていましたが、とても難しいので、解決策を説明するビデオを作りました。これは、ビデオチュートリアル形式のRekeeのソリューションとほとんど同じです。
それが役に立てば幸い。 :)
自分で答えたようです...
私はおそらく「chownec2-user/etc/sudoers」(または、rsyncの失敗にうんざりしていたので「chown-R ec2-user/etc」)を実行したので、これは私のせいです。
いずれにせよ、ルートシェルを取得せずにこれを解決できるとは思いません。 (ec2でどのようなリカバリ方法が可能かわかりませんか?)
/ etcを再帰的にchownした場合は、サーバーを再構築するのが最善の方法だと思います。