ユーザーがホームフォルダを削除できないようにする方法

ユーザーがホームフォルダを削除できないようにする方法

ホームフォルダが削除されるのを防ぐのはとても良いアイデアだと思います。だから私はこれを行うための可能な方法を見つけました。これが私が見つけたものです:

  1. 使用chattr +i /home/user- ルートとして追加/削除/名前を変更することはできません。ユーザーフォルダとすべての直接サブフォルダユーザー- 良いものと悪いもの。
  2. ユーザーディレクトリの所有者をrootに変更し、固定ビットを設定します。 .keepファイルを追加し、所有者もrootに変更します。

    chown root:user /home/user
    chmod 1775 /home/user
    chown root /home/user/.keep 
    

    ルート削除可能/ホーム/ユーザー、ユーザーはできません。ただし、ユーザーは自分のディレクトリにあるファイルを自由に追加/削除/名前変更できます。

  3. 使用chattr +a /home/user- 最初の方法と同じですが、ユーザーはファイルを追加できます。

私はchattr +aホームディレクトリから:chattr +a /homeこれが最善の方法だと思います。

  1. 他のユーザーのために新しいホームフォルダを簡単に作成できます。
  2. ファイルを自由に編集できます/ホーム/ユーザー
  3. 私たちは注意することはできませんsudo rm -rf /home/user

実際、質問はこのアプローチの落とし穴は何ですか?

答え1

必要なディレクトリを削除するには書く親項目に対する権限。これは次のことを意味します。ユーザーを書き込めないため、/home自分のディレクトリを削除できません。

$ chown root:root /home
$ chmod 0755 /home

$ chown user:user /home/user
$ chmod 0750 /home/user

これらの権限を使用すると、ルートのみを操作できます。この設定は、Linuxシステムがマルチユーザーであるため、実際には非常に一般的です。しかし、最初のユーザー(通常はID 1000)に属するUbuntu設定を/home見ました。/homeUbuntuの最初のユーザーは通常sudoerですが(sudoerを使用してすべてを削除できることを意味します)、sudoroot以外のユーザーにこれを提供するのは良い習慣ではないと思います。/home

結論的に言えばchattr、私はこれが少し過剰だと思います。権限の問題が発生しました。追加のファイル属性は必要ありません。

関連情報