私は走ろうとしましchmod -R 777 ./
たが、タイピングしてマシン全体にchmod -R 777 /
設定し777
ました。何がうまくいかないのでしょうか?どうすれば修正できますか?
私は走ろうとしましchmod -R 777 ./
たが、タイピングしてマシン全体にchmod -R 777 /
設定し777
ました。何がうまくいかないのでしょうか?どうすれば修正できますか?
回答:
問題?はい、たくさん。修正できますか?はい。再インストールよりも高速ですか?おそらくない。
再インストールすることをお勧めします。既存のシステムのバックアップを維持し、パッケージリストとのファイルの内容を復元/etc
して/var
。/usr/local
あなたはおそらく、手動でアクセス許可を復元することができます。/home
およびについては、/srv
バックアップから権限を復元する必要があります。
これが複数のローカルユーザーを持つシステムである場合、一部のファイルを誰でも読み取り可能にすることで、機密のままにしておくべき事項が明らかになったことに注意してください。
修復を実際に試してみたい場合(実際の回復ルートよりも学習の方が多い場合)、最初にいくつかのファイルのアクセス許可を復元します。現在、ほとんどのファイルがあまりにも開かれていますが、いくつかの必要なsetuidビットが欠落していることに注意してください。ここに、他の何かの前にとるべきステップがあります。これは完全なリストではなく、システムをほとんど機能させないための試みであることに注意してください。
chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail
次に、すべての権限をどこにでも復元する必要があります。配下のファイルの/usr
場合、ディストリビューションに応じて、次のいずれかのコマンドでパッケージを再インストールできます。
apt-get --reinstall install
pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
している場合、Live CDを使用しており、Archインストールがにマウントされて/newarch
いると仮定して、実行できます。/etc
およびの下のファイルで/var
は機能せず、それらの多くがそのまま残ります。作業中のインストールで権限を複製する必要があります。/srv
との下のファイルについては/home
、とにかくバックアップから復元する必要があります。ご覧のとおり、再インストールすることもできます。
最初は気付かないかもしれませんが、多くのことが間違っている可能性があります。主な問題は、システム全体のセキュリティモデル全体が壊れていることです。それはまるで皮膚のない身体を持ち、すべての器官が空中にあるようなものです。それはそのように機能することを意図していないので、感染するはずです。数分間動作すると思われる場合でも、これをクリーンアップする必要があります。
最良の方法は、実際にはゼロから始めることです。この方法により、リスクが大幅に削減され、より短時間でよりクリーンな結果が得られます。適切なバックアップがあれば、これはあまり経験を積んではいけません。
あなたがそれをきれいにしようとする場合、主な方法は、設定ファイルを上書きするなど、システムにすべてを再インストールするようにディストリビューションのパッケージマネージャーに伝えることです。次に、検証システムを使用して、それらに目を通し、通常とは異なるアクセス権を持つファイルがあるというフラグが設定されていないことを確認します。次に、ユーザーのホームディレクトリなどを処理し、すべてを適切なパーミッションにまとめてリセットし、特別なパーミッション(sshキーファイルなど)が必要ないくつかの処理を行います。最後に、777とマークされたすべてのシステムを完全に検索し、リストを調べて(他の手順を徹底的に行った場合は小さくする必要があります)、それらが現状どおりであることを確認しながら1つずつ処理します。
解決策:これをCENTOSでテストしました
この男は私の仕事を救った!(何らかの方法でアクセスする必要があります)
http://www.adminlinux.org/2009/07/how-to-restore-default-system.html
1)ファイルとディレクトリのuidとgidをリセットするには:
for u in $(rpm -qa); do rpm --setugids $u; done
2)ファイルとディレクトリのアクセス許可
for p in $(rpm -qa); do rpm --setperms $p; done
次に、これらのファイルへの許可を手動で変更します。
# ll /etc/ssh/
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_dsa_key
# service sshd restart
特定のファイルの許可が「緩すぎる」場合、一部のセキュリティ重視のプログラムは起動しません。@cevingが言ったように、これsshd
が最も典型的です。
間違っている可能性のある主なことは、現在、すべてのユーザーがシステム上の任意のファイルを開いたり、読み書きしたりできることです。これが悪い2つの理由は:A)悪意のあるユーザーがエクスプロイトまたは設定ミスによってシステムの制御を取得した場合、彼/彼女はシステム上のすべてを変更できるようになり、B)必要なものを削除できますあなたはルートではないので、ルートとして実行しないという保護のほとんどを無効にしただけです。
事前にアクセス許可をバックアップしなかった場合、ちょっとした状況になります。新しくインストールしたシステムからアクセス許可のリストを「取得」し、システム上のすべてに「適用」するスクリプトを作成できる場合があります。ただし、このようなスクリプトは便利ではありません。
rm -rf /
通常のユーザーとしてを実行すると、システムが停止します。