Etcディレクトリで次のコマンドを誤って実行しました。
Sudo chmod -R 700 /etc
私は私が何か間違ったことをしたことを知っています。私の端末は今印刷します:
I have no name!@ubuntu: /$
Etcディレクトリを以前の状態に戻すにはどうすればよいですか?
権限を変更しようとしましたが、現在失敗しています。また、誰かがそのコマンドを実行したときに実際に何がうまくいかなかったかなどを誰かが説明できれば非常に役立ちます。それはファイルのアクセス許可のみでした。では、なぜシステム全体が完全に破壊されたように見えるのでしょうか。現在ログインパスワードが機能していないのはなぜですか? etcディレクトリに、ユーザーに関係するファイルがあることを知っています。しかし、アクセス許可の変更はどのようにすべてを危険にさらしましたか?これに関するいくつかの技術的な詳細は非常に役立ちます。
1つ問題がありました。そのコマンドでのSudo
の使用です。 -R
スイッチはchmod
に、そのディレクトリへのアクセス許可を再帰的に設定するように指示します。これは、どのような場合でも、何がわからない場合は非推奨のアクション(ここでは「異端」と呼ぶ必要があります)です。あなたはやっていますか?.
ファイルのアクセス許可のみでした。では、なぜシステム全体が完全に破壊されたように見えるのでしょうか。
GNU/Linuxは安定性とsecurityを念頭に置いて構築されているため、ファイル権限に非常に敏感です。同じことがGNU/Linuxで実行されるほとんどのプログラムに適用されます(つまり、Apache2
はroot権限を削除し、www-data
または同様のユーザーを使用します。また、700
権限では、それを読み書きすることはできません。自分のファイル)。
現在ログインパスワードが機能していないのはなぜですか?
すでに述べたように、ログインパスワードは/etc/passwd
のファイルに保存され、root(変更していないと思います)だけがそれを読み取ることができますが、ログインプロンプト(またはGUIログイン)は非特権アカウントを使用しますしたがって、ファイルを読み取ることができません。
しかし、アクセス許可の変更はどのようにすべてを危険にさらしましたか?
上記と同じように、Linuxはファイル権限に非常に敏感です。一部のプログラムは、構成ファイルのアクセス許可をチェックし、予期しない場合はまったく実行されません。
Etcディレクトリを以前の状態に戻すにはどうすればよいですか?
RPMベースのディストリビューションを使用している場合、これはrpm --setperms
コマンドを使用して行うことができます。Debianのようなシステムでは、パッケージを1つずつ戻すのは苦痛です。apt-get --reinstall install
は友だちです。他の解決策も利用できるかもしれませんが、そのための実用的なシステムが必要になります。
見てみましょう、あなたがしたことは、/ etcディレクトリ全体にアクセス許可を設定することです。読み取り/書き込み/実行は、ファイル/ディレクトリの所有者にのみ許可され、他の人には拒否されます。ファイルの権限に混乱している場合は、 Wikipedia:従来の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内の実行可能ファイルを含め、一部のプロセスはそれでも問題を起こすか失敗しますが、上記で概説した再インストールを実行できるはずです。
元の権限を回復するまでは、システムが少なくとも安全でない状態になることに注意してください。
700は、グループおよび世界のユーザーの多くのファイルへのアクセスを削除しました(たとえば、ファイルにrwx------
権限が付与されました)。たとえば、すべてのユーザーが/etc/passwd
を読み取ることができる必要があります。これで、/etc/passwd
を読み取ることができるのはrootだけです。 /etc/
内のファイルに対する権限を予期しない方法で壊すと、多くのことが壊れます。
稼働中のサーバーに基づいてアクセス許可を再構築してみることもできます(まだrootに切り替えることができると想定しています)が、エラーが発生する傾向があります。
バックアップがある場合は/etc/
をバックアップから復元することをお勧めします(復元で権限が元に戻されることを確認するか、バックアップソリューションでサポートされている場合は、権限のみを復元してください)。