実行しようとしていた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
_を実行できます/newarch
_にマウントされていると仮定して、pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
を実行できます。_/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)必要なものをすべて削除できますあなたはrootではないので、rootとして実行しないという保護のほとんどを無効にしています。
事前に権限をバックアップしなかった場合は、少し状況が異なります。新しくインストールされたシステムから権限のリストを「フェッチ」し、それをシステム上のすべてに「適用」するスクリプトを作成できる場合があります。でも、そのようなスクリプトは手元にありません。