質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

5回答

14298閲覧

Amazon EC2の設定ミスでrootになれなくなってしまった場合の対処法を教えてください

grnfnt

総合スコア48

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

4クリップ

投稿2015/10/01 12:39

先程の話となりますが、やってしまいました。
かなりテンパってしまってますが、なるべく冷静になって質問させていただきます。

AmazonEC2の設定ミスでrootになれなくなってしまいました。
具体的には以下のことをやってしまいました。

/etc/sudoers.d/cloud-init を以下に編集
ec2-user ALL=(ALL) ALL

これでec2-userユーザはパスワード入力をしない限りrootになれない状態となってしまいましたが、
ec2-userユーザのパスワードを設定しないまま(初期の鍵認証のみで未設定のまま)、サーバの
再起動をしてしまいました。
今はsudo suもsuもできない状態です。

ec2-userユーザではログインできるため、passwdコマンドでパスワードを設定しようと思ったの
ですが、以下のエラーになってしまっております。

Changing password for user ec2-user.
Changing password for ec2-user.
(current) UNIX password:
passwd: Authentication token manipulation error

おそらくパスワード未設定のためと思われますが、pwconvを打っても改善されません。

ここからrootになれるよう復旧する策はあるものなのでしょうか。
また、策がなかったとしてですが、私はManagement Consoleには入れない権限のものなのですが、
もしManagement Consoleに入れた場合、rootになれるよう復旧する手立てはあるものなのでしょうか。

恐れ入りますが、ご教示いただければ幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

大変でしたね。

Webコンソールから入ってEBSの操作ができるなら、
違うインスタンスからパスワードのファイルを手動で書き換える事で復旧可能です。

以下の手順でパスワードを復旧させます。

  1. 新規インスタンスを立ち上げ (AmazonLinux)
  2. 復旧が必要なインスタンスをシャットダウン
  3. [2.]で落としたインスタンスからEBSをデタッチ (関連付けを解除します)
  4. [1.]で作成したインスタンスに[3.]でデタッチしたボリュームをアタッチ (deviceは /dev/sdb1 辺りで)
  5. [1.]で作成したインスタンスにSSHして以下のようなコマンド操作

bash

1$ df -h # /dev/sdb1 が存在することを確認 2$ sudo mkdir /help # 復旧対象ドライブをマウントするフォルダを作成 3$ sudo mount /dev/sdb1 /help # 復旧対象ドライブをマウント 4$ sudo vi /help/etc/sudoers 5# rootの行を以下のように変更 6# root ALL=(ALL) NOPASSWD:ALL 7$ exit
  1. 新しいインスタンスをシャットダウン
  2. 復旧対象のEBSを元のインスタンスにアタッチ ( /dev/xvda1 )
  3. 元のインスタンスを立ち上げて $ sudo su - で root に昇格できることを確認

って感じです。

投稿2015/10/01 13:20

編集2015/10/01 13:23
SKYYFISH

総合スコア654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

皆さま

本当に本当に非常に有益な情報をいただき、ありがとうございました。
てんぱってもおりましたのであれから冷静になることもでき、とてもとても助かりました。

まだ正式オープン前のサービスだったため、最終的には、インスタンスを削除し、
作り直すことで対応いたしました。

ただ、いただいた情報をもとに、作り直し以外に選択肢として出すことができたということは、
今回非常にプラスになったものと思われます。
これもひとえに皆様のおかげです。

今後は今回の失敗を生かし、精進してまいりたいと思います。
今回は本当にありがとうございました。

投稿2015/10/02 09:46

grnfnt

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

既に解決済になっていますが・・・

マネジメントコンソールを使えるなら、インスタンスを停止した後、ユーザーデータに下記のように入力してからインスタンスを起動すると、cloud-init の bootcmd で sudoers を元に戻せないでしょうか。

#cloud-config bootcmd: - echo "ec2-user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/cloud-init

bootcmd はインスタンスの最初の起動だけではなく、起動毎に毎回実行されるはずです。

投稿2015/10/06 14:35

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

grnfnt

2015/10/06 16:00

このような手もあるのですね。 大変有益な情報ありがとうございます! こちらまた機会を伺い試させていただきます。 締め切り後にもかかわらず大変貴重なご回答ありがとうございました。
guest

0

コンソールパネルの権限を持たない場合は残念ながらお手上げと思います。

持っていれば、一度インスタンスを削除して作り直せばよいかと思います。

危ない橋を渡れば方法はあるやもしれません。
が、お話から推測するに上司がいるようですので、素直に報告し方法をきき、次回に備えるべきとおもいます。。

投稿2015/10/01 13:10

keisukesatomi

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

(すみませんノウハウがある者ではありません)
ここに、似たような状況の方がいらして、やはりAWSコンソールは必要かと。

AMI化しておられるなら、そこから戻してもらう。
運用中機でデータをサルベージしないといけないなら、上記のようなAWS
コンソールから何とかしてもらうしか・・・

後は、rootで動くcronがあり、その実行ファイルがec2-userでも編集可能なら、
そこにec2-userのpasswordを強制変更するコマンドをいれちゃえば直せる
かもしれません。
他同様にSビットが立ってて変更できるファイルを使うなど・・・

投稿2015/10/01 15:13

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問