web-dev-qa-db-ja.com

ディレクトリ/ファイルのデフォルトの権限を復元する方法は?

Ubuntu 13.04 x86_64を使用しています。

私は自分のホームディレクトリにあるものすべてを所有したかったのです。そこで、これら2つのコマンドを実行しました。

Sudo chown -RcH rootkea ~  
Sudo chown -RcL rootkea ~

現在、ファイルシステム内の他のファイルにリンクされているシンボリックリンクのために、ホームディレクトリの外部にあるファイルを誤って所有しています。
私が気づいた直接的な結果は次のとおりです。

  1. 須藤が機能しない

    $ Sudo  
    Sudo: effective uid is not 0, is Sudo installed setuid root?
    
  2. システムが非常に遅くなりました。シャットダウン/再起動をクリックするとハングするだけです。毎回、マシンの電源を手動でオフにする必要があります。
  3. (かなりの時間の後)ハードドライブの最後のバイトを消費する、不定サイズのログファイル/var/log/cups/error_logを作成します。前回は17.8 GBでした!
    ファイルの内容は、これらの2行のみが数え切れないほど繰り返されていました。

    E [24/May/2013:02:27:52 +0530] File "/usr/lib/cups/notifier/dbus" has insecure permissions (0100755/uid=1000/gid=0).  
    W [24/May/2013:02:27:52 +0530] Notifier for subscription 531 (dbus://) went away, retrying!
    

したがって、明らかにcupsプログラムもねじ込まれています。

今、私は他のプログラムがどれだけ使用できない状態になっているのか分かりません。

上記の2つのコマンドの効果を元に戻す方法はありますか?
デフォルトのパーミッション設定をファイルシステム全体に復元するにはどうすればよいですか?

5
rootkea

gertvdijkが示唆するこの質問 への参照による)のように、ほとんどの場合、再インストールがこれを修正するための最良かつ最も簡単な方法です(そして確実にできる唯一の方法は完全に修正します) )、特に許可がどこで変更されたのか、何から変更されたのかが正確にわからない場合。

この方法 、これは プライベートが提案している である可能性があり、試してみる価値があると考えるかもしれません。ただし、ファイルとフォルダーの場所、およびそれらの所有権とアクセス許可のバージョンには、バージョンによって多少の違いがあります。さらに、再インストール以外の解決策では、間違ったアクセス許可を持つファイルまたはフォルダーが存在するかどうかはわかりません。これは、将来のある時点で問題を引き起こす可能性があります。

通常、所有権を修正することで、Sudoが機能しない問題(つまり、リストにある問題1)を修正できます。

pkexec chown root:root /usr/bin/Sudo

あなたのような状況では、再インストールする前に行う必要がある管理タスクを簡単に実行できるようにするための便利な手段として主に役立ちます。 (または、より複雑なソリューションを適用しようとする前。)重要なファイル(ドキュメントなど)のバックアップが完全に最新ではない場合、バックアップは確実に正しく実行されます。

最後に、それは所有権のみであり、許可ではないことに注意してください変更されました。そのため、ディレクトリの所有権をルートに再帰的に変更してみてください。ただし、次の理由により、問題が解決する可能性は低くなります。

  • どのディレクトリが変更されたかを正確に知っているかどうかは不明です。
  • 一部のファイルは、システムの特権の少ない部分がアクセスする必要があるため、rootが所有すべきではありません。所有権または許可を制限しすぎると、システムが破損する可能性があります。
  • 一部のファイルは、rootが所有している場合、セキュリティの脆弱性を引き起こす可能性があります。 setuid executable は、常にそれを所有するユーザーとして実行されます。システムには、常にnon特権ユーザーとして実行することを目的としたsetuid実行可能ファイルが含まれている場合があります。それらをrootとして実行するのは悪いことです。または、誰かが(意図的または意図せずに)setuidファイルを作成した可能性があります(rootが所有する許可を持たない場合)。 rootが所有している場合、誰が実行しても、rootとして実行されます。それは非常に悪いことです。

したがって、これが実稼働システムである場合は、再インストールする必要があります。

3
Eliah Kagan