ホームフォルダが削除されないようにすることは非常に良い考えだと思います。だから私はそれを行うための可能なアプローチを探します。私はそれが私が見つけたものです:
chattr +i /home/user
--rootでさえ追加/削除/名前変更できませんserフォルダーとser内のすべての直接の子-良い点と悪い点。ユーザーディレクトリの所有者をrootに変更し、スティッキービットを設定します。ファイル.keepを追加し、所有者もrootに変更します。
chown root:user /home/user
chmod 1775 /home/user
chown root /home/user/.keep
ルートは削除できます/ home/user、ユーザーは削除できません。ただし、ユーザーは自分のディレクトリ内のファイルを自由に追加/削除/名前変更できます
chattr +a /home/user
-最初のアプローチと同じですが、ユーザーはファイルを追加できます。おもう chattr +a
ホームディレクトリ:chattr +a /home
が最善の方法です:
Sudo rm -rf /home/user
実際の質問:このアプローチの落とし穴は何ですか?
ディレクトリを削除するには、その親に対する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
に関して言えば、これはやり過ぎだと思います。権限の問題に直面しています。他のファイル属性は必要ありません。