web-dev-qa-db-ja.com

ユーザーがホームフォルダを削除できないようにするためのアプローチ

ホームフォルダが削除されないようにすることは非常に良い考えだと思います。だから私はそれを行うための可能なアプローチを探します。私はそれが私が見つけたものです:

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

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

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

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

おもう chattr +aホームディレクトリ:chattr +a /homeが最善の方法です:

  1. 他のユーザーのために、苦労せずに新しいホームフォルダーを作成できます。
  2. / home/userのファイルを自由に編集できます
  3. 誤ってSudo rm -rf /home/user

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

6
user123

ディレクトリを削除するには、その親に対するwrite権限が必要です。つまり、ser/homeに書き込めない限り、彼は自分のディレクトリを削除することはできません。

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

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

これらの権限がある場合、rootは/homeのすぐ下のディレクトリを操作できる唯一のユーザーです。 Linuxシステムはマルチユーザーであるため、この設定は実際には非常に一般的です。ただし、/homeが最初のユーザー(通常はID 1000)に属しているUbuntuのセットアップを見てきました。 Ubuntuの最初のユーザーは通常sudoerですが(つまり、Sudoを使用してすべてを削除できます)、root以外の人に/homeを与えるのは良い習慣ではないと思います。

chattrに関して言えば、これはやり過ぎだと思います。権限の問題に直面しています。他のファイル属性は必要ありません。

7
John WH Smith