web-dev-qa-db-ja.com

「Sudo chmod 2770 /」を実行した後、ec2インスタンスにログインできない

LinuxとAWSは初めてです。

私はec2インスタンスでSudo chmod 2770 / commandを実行し、その後

私がしているすべてのことで許可が拒否されていました(lsまたはcdを使用していても)

だから私は(cygwinを使用して)接続を終了し、再接続しようとしましたが、今私は得ます

アクセスが拒否されました(publickey、gssapi-keyex、gssapi-with-mic)

chmod 400 my.pemchmod 600 my.pemchmod 777 my.pemを設定しようとしましたが、何も機能しませんでした。
以前は問題なく動作していたssh -i my.pem [email protected]を使用して接続しようとしています。
解決策は何ですか?

5
iAmLearning

解決策は、新しいインスタンスを開始し、二度とやったことをしないことです。 2770にリセットしたすべての権限を適切に回復するのは複雑すぎます。

壊れたインスタンスに重要なファイルがある場合は、停止して、そのルートボリュームを新しいインスタンスにマウントし、そこからファイルをコピーできます。


Update:@GeraldSchneiderが指摘するように、すべてのアクセス許可をどこでも再帰的に変更しなかった場合は幸運かもしれません。新しいインスタンスを開始し、それを使用してルート権限を0755に戻す必要があります。たとえば、次の手順に従ってください: 変更されたAWS EC2ファイアウォールルールおよびsshからロックアウト (代わりにファイアウォールを修正do Sudo chmod 755 /mntまたはどこにでも別のディスクをマウントします)。

それが役に立てば幸い:)

14
MLu

あなたがしたことは、ファイルシステム内のすべてのファイルを2770許可にすることでした。

-rwxrws--- 1 username  agroup  2 Feb 19 23:07 thefilename

これはグループ列の付箋です。つまり、ディレクトリ内のすべてのファイルはagroupによって所有されています。


AWSイメージをそれほどひどくビジョクしたことはありません。しかし、私はそれらを殺すいくつかの問題を見てきました。

[〜#〜] first [〜#〜]ファイルモードを使用する前に、最後のスナップショットに戻します。

あなたは定期的なスナップショットをしないのですか?

[〜#〜] second [〜#〜]バックアップを確認します。ボックスを再構築するのと、バックアップからデータを復元するのは、多かれ少なかれ仕事になるのでしょうか?

何?バックアップもありませんか?

次に、最後の溝標準の回復方法は次のようになります。

  1. 現在のAMIから新しいインスタンスを作成します。理想的には、壊れたマシンと同じディストリビューションです。 t3.nanoのような小さなものにすることができます
  2. 壊れたマシンからボリュームを切り離し、sdf、g、hなどとして新しいインスタンスに接続します。
  3. Rootとして新しいインスタンスにログインし、壊れたインスタンスのディスクごとに実行します

    fsck /dev/xvdX
    mkdir /sdX
    mount /dev/xvdX /sdX
    cd /sdX
    ls -l
    
  4. この時点で、問題を修正するためにchmodを何度も使用する価値があるか、またはデータを新しいインスタンスにコピーして設定するかを決定する必要があります繰り返します。

  5. 手動で各ディレクトリに移動し、各ファイルを本来あるべき状態にchmodしてください。 2つのウィンドウを開いたままにして、ライブホストのファイルを、マウントされている壊れたディスクと比較します。正しいファイルを変更していることを確認してください-頻繁に確認してください!!!

  6. たくさんの作業を終えたら、tempマシンをシャットダウンし、EC2 Web GUIでディスクを切り離してから、元のマシンに、元のマウントポイントと同じマウントポイントで再接続します。注:ルートドライブはsda1ではなくsdaとして接続されていますが、他のすべてのボリュームとして接続されていますzを介してsdbとして接続されます。


どちらの方法でも、自動スナップショットまたはバックアップ、あるいはその両方をセットアップする必要があります!

これとまったく同じことを再度行わないようにするには、chmodのエイリアスを

 chmod --preserve-root

しかし、これは他のディレクトリを保護しません。

また、習慣だけでコマンドの前でSudoを使用しないでください。

3
Criggie