1 つ問題がありました:sudo
の使用 そのコマンドで。 -R
スイッチは chmod
を伝えます そのディレクトリへのアクセス許可を再帰的に設定します。これは、どのような場合でも推奨されないアクションです (異端と呼ぶべきです)。コマンドを発行するが、GUI の不具合でコマンドが発行され、システムが配線された)。
ファイルのアクセス許可のみでした。では、なぜシステム全体が完全に爆破されたように見えるのでしょうか?
GNU/Linux は、安定性とセキュリティを備えて構築されているため、ファイルのアクセス許可に非常に敏感です。 念頭に置いて。 GNU/Linux で実行されるほとんどのプログラムにも同じことが当てはまります (つまり、apache2
root 権限を削除し、www-data
を使用します 、または同様のユーザー、およびあなたの 700
パーミッションは、それ自身のファイルを読み書きすることを許可しません)。
現在、ログイン パスワードが機能していないのはなぜですか?
すでに述べたように、ログインパスワードは /etc/passwd
のファイルに保存されます root (変更していないと思います) のみがそれを読み取ることができますが、ログイン プロンプト (または GUI ログイン) は非特権アカウントを使用するため、ファイルを読み取ることができません。
しかし、パーミッションの変更はどのようにすべてを危険にさらしたのでしょうか?
上記と同じように、Linux はファイルのパーミッションに非常に敏感です。一部のプログラムは、構成ファイルのアクセス許可をチェックし、予期されていない場合はまったく実行されません。
<ブロック引用>etc ディレクトリを以前の状態に戻すにはどうすればよいですか?
RPM ベースのディストリビューションを使用している場合、これは rpm --setperms
を使用して実行できます。 コマンドを実行すると、Debian ライクなシステム apt-get --reinstall install
では、パッケージを 1 つずつ元に戻すのが苦痛になります。 あなたの友達です。他の解決策が利用できるかもしれませんが、それには動作するシステムが必要です.
見てみましょう、あなたが行ったことは、ファイル/ディレクトリの所有者にのみ許可され、他のすべての人には拒否される読み取り/書き込み/実行として、/etc ディレクトリ全体にアクセス許可を設定することです。ファイルのパーミッションに戸惑う場合は、ウィキペディア:従来の UNIX パーミッションで詳細を参照してください。
システムを爆破した理由は、多くのプロセスが設定を読み取ることができなくなり、/etc にアクセスできなくなったためです。 /etc ディレクトリ全体を以前の状態に戻すのは簡単ではありません。その方法はディストリビューションによって異なりますが、基本的には、/etc 内のファイルを保持するすべてのパッケージを再インストールすることを意味します。
システムを使用できるようにするための応急処置として、適切に修正する (上記のように、/etc 内のコンテンツを含むすべてのパッケージを再インストールする) ために、次のことを行うことができます。
# sudo find /etc -type d -exec chmod 775 '{}' \;
# sudo find /etc -type f -exec chmod 664 '{}' \;
これらの 2 行を使用して、すべての /etc ディレクトリにリベラルなアクセス許可を設定し、所有者とグループには読み取り/書き込みを許可し、それ以外の人には読み取りを許可します。 2 つの chmod の理由は、dirs にのみ実行ビットを設定するためです。 /etc 内の実行可能ファイルを含め、一部のプロセスではエラーが発生したり失敗したりしますが、上記で概説した再インストールを実行できるはずです。
元のアクセス許可を回復するまで、システムは少なくとも安全でない状態になることに注意してください。