これは 標準的な質問 ファイルのアクセス許可についてであり、理由777は「破壊的」です。
私はこの問題を修正する方法を尋ねていません。すでにサーバー障害(OSの再インストール)に関する参照が大量にあるためです。なぜ破壊的なことをするのですか?
このコマンドを実行したことがある場合は、オペレーティングシステムがすぐに破壊されます。制限の削除が既存のプロセスに影響を与える理由は明らかではありません。たとえば、何かへの読み取りアクセス権がなく、ターミナルですばやくタイプミスした後、突然私は適切にアクセスできるようになった場合...なぜLinuxが壊れるのですか?
まず最初に、マイナーな用語のnitpick:chmod
は権限を削除しません削除。それ[〜#〜]変更[〜#〜]それらを変更します。
問題の要点-モード777
は、「誰でもこのファイルを読み取り、書き込み、または実行できる」ことを意味します-誰でもできる権限が与えられています (事実上)彼らが望むものは何でも。
さて、なぜこれが悪いのですか?
login
プログラムを書いて、毎回それらを許可するようにすることができます)。rm -r /
を誤って送信すると、それはすべて終わりです。 OSは、彼らに彼らがやりたいことを何でもできるように言われた!Sudo
、sendmail
、および他のホストはこれ以上起動しません。彼らは主要なファイルのアクセス許可を調べ、本来の権限ではないことを確認し、エラーメッセージを返します。ssh
はひどく壊れます(キーファイルには特定の権限が必要です。そうでない場合、それらは「安全でない」ため、デフォルトでSSHはそれらの使用を拒否します)。777
は実際には0
777
です。その先頭の数字には、setuid
ビットとsetgid
ビットがあります。/tmp
と/var/tmp
を壊しましたゼロになった先頭の8進数字のもう1つはsticky bit
です-これは/tmp
(および/var/tmp
)内のファイルを削除しないように保護しますそれらを所有します。rm -r /tmp/*
を実行して「クリーンアップ」する不正なスクリプトがたくさんあります。/tmp
にスティッキービットを設定しないと、そのディレクトリのすべてのファイルにキスできます。/dev
/proc
と同様のファイルシステムで大混乱を引き起こしました/dev
が実際のファイルシステムである古いUnixシステムでの問題であり、それに含まれるものはmknod
で作成された特別なファイルです。これは、アクセス許可の変更が再起動後も保持されるためです。デバイスのアクセス許可が変更されているシステムでは、明らかなセキュリティリスク(誰でもすべてのTTYを読み取ることができる)から、カーネルパニックのそれほど明白ではない潜在的な原因まで、重大な問題が発生する可能性があります。Credit to @Tonny for pointing out this possibility
Credit to @Tonny for pointing out this possibility
PATH
環境変数に.
を持っています(あなたがすべきではありません!)-これは、誰もがコマンドのように便利な名前のファイルをドロップできるようになるため、不愉快な驚きを引き起こす可能性があります(たとえばmake
またはls
にアクセスして、悪意のあるコードを実行する方法を試してください。Credit to @RichHomolka for pointing out this possibility
chmod
がアクセス制御リスト(ACL)をリセットします]Credit to @JamesYoungman for pointing out this possibility
すでに稼働しているシステムの一部は稼働し続けますか?おそらく、少なくともしばらくは。
しかし、次にプログラムを起動したり、サービスを再起動したりする必要があるとき、または天国は、上記の#2と#3が醜い頭を育てるので、傷ついた世界のためにあなたがいるボックスをREBOOTすることを禁じます。
主要なことの1つは、ssh/Sudoのような、主要な構成ファイルのファイルシステム権限をチェックする多くのツールがあることです。権限が間違っていると、これらのツールは失敗するように設計されています。これは、深刻なセキュリティ問題を示しているためです。私のDebianテストシステムや他のシステムでは、おそらくログインバイナリまたはPAM内の何かに権限チェックがあるため、ログイン機能が失敗します。
つまり、システムが破壊されるということではありません。多くのツールは、権限が間違っているとすぐに失敗するように設計されています。
chmod 777 -R /
の実行後にシステムを再起動すると、システムが起動し、明示的な権限チェックのないプロセスを開始できます。したがって、システムは実際には死んでおらず、多少使用できないby-designです。