LoginSignup
0
1

More than 1 year has passed since last update.

パーミッション事故でSSHログインできなくなった時の対処(AWS EC2)

Last updated at Posted at 2021-10-31

WordPressでサイト作ったけど、SSH接続できなくなりました!
っていうヘルプがきたので対処してみました。

historyに残ってた最後のコマンド(絶対うたないでね)

sudo chown -R ec2-user /

恐怖ですね...数年に一度は見るLinux事故です。

以下、私が対処した流れです。
あくまで私が対処した流れで、ベストな手順ではないので注意してください。
実施の前にはデグレを防ぐため、スナップショットを取得しておきましょう。

①全体的なパーミッションの変更(実際に対処するときは項目4までで良いかも?)

不幸中の幸いか、EBSはデタッチ/アタッチができるので復旧の余地が大いにあります。

1、EC2停止→EC2→ボリューム→該当のボリュームを選択→アクション→デタッチ

2、アタッチ→復旧用のインスタンス(停止済)を選択
復旧用インスタンスを用意します。
復旧用インスタンスは同じAZであること。
この時/dev/以下はデフォルトでOK。

3、復旧用インスタンスにログインし、マウント用ディレクトリ作成
作成はどこでもいいです。私はわかりやすくルート配下に作りました。

mkdir ディレクトリ名

4、マウント
ここでアタッチ時の/dev/XXXXを確認

cat /proc/partitions

マウント

mount /dev/XXXX ディレクトリ名

5、パーミッション変更(実際に変更するかどうかは検討してください)
ec2-userにかえられてしまったディレクトリをrootに戻しました。

chown -R root XXX

6、EBSの戻し(実際にやるのは③の後でOK)
1と2を元のインスタンスに対して実行します。
このときボリュームは起動用ボリュームになる/dev/xvdaを選択すること。

この時点でログインのエラーがかわるだけで、まだログインできてません。

②/home/ec2-user 配下のパーミッション変更

以下のbashやssh関連の隠しファイルをユーザーをそれぞれec2-userに戻しました。
.bash_history .bash_logout .bash_profile .bashrc .ssh

隠しファイル確認

ls -la

パーミッション変更

chown -R ec2-user XXX

この時点でとりあえずSSHログインができます。

③sudoの復活

ログインはできましたが、sudoが使えません。

sudo: /usr/bin/sudo は所有者が uid 0 である必要があり、かつ setuid が設定されている必要があります

/usr/binの下にいるsudoの権限を変更します。

chmod 4111 /usr/bin/sudo

頭の4でSUIDになります。
これでファイル所有者権限で動作させることができるようになるみたいです。
実際にsudoの実行、rootユーザへの切り替えができるようになります。
ここまでくれば以降はボリュームのデタッチ、アタッチ不要なので楽になりました。

④MySQLの復活

WordPressで使われるMySQLがあがらなくなっていたので、ここも最後に権限変更が必要です。

1、systemctlでエラー確認

systemctl status mysqld

わかりやすいログがでてました。
ログが出力できなくてあがらないようです。

[ERROR] [MY-010187] [Server] Could not open file '/var/log/mysqld.log'

2、/var/log/mysqld.logの権限変更
これも権限問題です。

chown mysql:mysql mysqld.log

※mysqld.logに/var/lib配下のエラーもでていたので、
以下のディレクトリもchown mysql:mysqlしています。
mysql mysql-files mysql-keyring

3、MySQL起動

systemctl start mysqld

これで無事WordPressのサイトが見れるようになりました!
デタッチ/アタッチを繰り返しながら検証していたので、結構大変でした...

参考にした記事
EBSデタッチ/アタッチ
https://qiita.com/hardreggaecafe/items/de9bac1d9ba42f25378e

sudoの復活
https://qiita.com/lmond/items/33cd8f6d58e4932f589f

感謝です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1