chmod / 777の設定が間違っています。問題がありますか?


33

私は走ろうとしましchmod -R 777 ./たが、タイピングしてマシン全体にchmod -R 777 /設定し777ました。何がうまくいかないのでしょうか?どうすれば修正できますか?



システムで何が問題になる可能性がありますか?動作しなくなりますか?
Vinnycx

6
もちろん問題があります。たとえば、SSHは失敗します。
セビング

2
ホームディレクトリが誰でも読み取り可能な場合、SSHは終了します。すべてを777に設定することは、すべてをルートとして実行するようなものです。
セビング

3
serverfault.com/questions/364677/why-is-chmod-r-777-destructiveも参照してください。これにより、何が問題になるかについて詳しく説明します。
ジル 'SO-悪であるのをやめる

回答:


46

問題?はい、たくさん。修正できますか?はい。再インストールよりも高速ですか?おそらくない。

再インストールすることをお勧めします。既存のシステムのバックアップを維持し、パッケージリストとのファイルの内容を復元/etcして/var/usr/localあなたはおそらく、手動でアクセス許可を復元することができます。/homeおよびについては、/srvバックアップから権限を復元する必要があります。

これが複数のローカルユーザーを持つシステムである場合、一部のファイルを誰でも読み取り可能にすることで、機密のままにしておくべき事項が明らかになったことに注意してください。

  • これでパスワードリストが危険にさらされました。ローカルユーザーはハッシュ化されたパスワードリストにアクセスでき、それらをブルートフォースしようとする可能性があります。このことをユーザーに通知してください。
  • すべてのプライベートユーザーデータ(sshキー、保存されたパスワード、電子メール、その他のユーザーが機密とみなすもの)はすべて、すべてのローカルユーザーに公開されています。このことをユーザーに通知してください。

修復を実際に試してみたい場合(実際の回復ルートよりも学習の方が多い場合)、最初にいくつかのファイルのアクセス許可を復元します。現在、ほとんどのファイルがあまりにも開かれていますが、いくつかの必要な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場合、ディストリビューションに応じて、次のいずれかのコマンドでパッケージを再インストールできます。

  • Debian、Ubuntu、またはAPTベースの別のディストリビューションを使用している場合は、次を実行できます。 apt-get --reinstall install
  • Arch Linuxを使用pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacmanしている場合、Live CDを使用しており、Archインストールがにマウントされて/newarchいると仮定して、実行できます。

/etcおよびの下のファイルで/varは機能せず、それらの多くがそのまま残ります。作業中のインストールで権限を複製する必要があります。/srvとの下のファイルについては/home、とにかくバックアップから復元する必要があります。ご覧のとおり、再インストールすることもできます。


6
専門家でない限り、完全な再インストールやバックアップからの復元を行わずにこの状況を修復する機会はほとんどありません。システムをそのまま実行したままにしておくのは危険すぎます。
アローマスター

3
システムにユーザーがいる場合、私はそれらを同情します。
ユルゲンA.エアハルト

19

最初は気付かないかもしれませんが、多くのことが間違っている可能性があります。主な問題は、システム全体のセキュリティモデル全体が壊れていることです。それはまるで皮膚のない身体を持ち、すべての器官が空中にあるようなものです。それはそのように機能することを意図していないので、感染するはずです。数分間動作すると思われる場合でも、これをクリーンアップする必要があります。

最良の方法は、実際にはゼロから始めることです。この方法により、リスクが大幅に削減され、より短時間でよりクリーンな結果が得られます。適切なバックアップがあれば、これはあまり経験を積んではいけません。

あなたがそれをきれいにしようとする場合、主な方法は、設定ファイルを上書きするなど、システムにすべてを再インストールするようにディストリビューションのパッケージマネージャーに伝えることです。次に、検証システムを使用して、それらに目を通し、通常とは異なるアクセス権を持つファイルがあるというフラグが設定されていないことを確認します。次に、ユーザーのホームディレクトリなどを処理し、すべてを適切なパーミッションにまとめてリセットし、特別なパーミッション(sshキーファイルなど)が必要ないくつかの処理を行います。最後に、777とマークされたすべてのシステムを完全に検索し、リストを調べて(他の手順を徹底的に行った場合は小さくする必要があります)、それらが現状どおりであることを確認しながら1つずつ処理します。


しかし、セキュリティは別として、アプリケーションの点で何が問題になるのでしょうか?彼らは仕事をやめますか?それともセキュリティが最大の関心事ですか?
Vinnycx

セキュリティは最大の関心事ですが、多くのプログラム、特に舞台裏で、デーモンやcronなどのようなものは、さまざまな理由で失敗し、危険な状況に陥ります。
カレブ

cronは777が原因で機能しなくなりますか?
Vinnycx

1
いくつかの異なるcronシステムがありますが、crontabファイルが誰でも書き込み可能な場合、自己尊重のcronはルートのcronでジョブを実行するべきではありません!また、cron通知を処理するメールデーモンは、他の理由で文句を言う必要があります。
カレブ

10

解決策:これを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

5

特定のファイルの許可が「緩すぎる」場合、一部のセキュリティ重視のプログラムは起動しません。@cevingが言ったように、これsshdが最も典型的です。

間違っている可能性のある主なことは、現在、すべてのユーザーがシステム上の任意のファイルを開いたり、読み書きしたりできることです。これが悪い2つの理由は:A)悪意のあるユーザーがエクスプロイトまたは設定ミスによってシステムの制御を取得した場合、彼/彼女はシステム上のすべてを変更できるようになり、B)必要なものを削除できますあなたはルートではないので、ルートとして実行しないという保護のほとんどを無効にしただけです。

事前にアクセス許可をバックアップしなかった場合、ちょっとした状況になります。新しくインストールしたシステムからアクセス許可のリストを「取得」し、システム上のすべてに「適用」するスクリプトを作成できる場合があります。ただし、このようなスクリプトは便利ではありません。


しかし、セキュリティは別として、アプリケーションの点で何が問題になるのでしょうか?彼らは仕事をやめますか?それともセキュリティが最大の関心事ですか?
Vinnycx

権限が緩すぎると起動を拒否するアプリケーションがいくつかあります。セキュリティが最大の関心事です。しかし、それはシステムの安定性でもあります。rm -rf /通常のユーザーとしてを実行すると、システムが停止します。
ローレンス

どのアプリケーションが機能しなくなる可能性がありますか?
Vinnycx

SSH以外に?他に何が失敗する可能性がありますか?しばらくこのようなシステムを離れることができるなら、今必要です。
Vinnycx

5
@Vinnycx:いいえ、できません。壊れている。修正することを優先する必要があります。それ以外の場合は、サービスが1つずつ失敗し、ハッカーがデータを食べることを期待します。/ * @ 777を残すことはオプションではありません。
カレブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.