我认为防止删除主文件夹是一个很好的主意。所以我寻找可能的方法来做到这一点。我这就是我发现的:
chattr +i /home/user-甚至根本无法可以添加/删除/重命名用户文件夹和所有直接儿童用户-好的和坏的。将用户目录的所有者更改为 root 并设置粘滞位。添加文件 .keep 并将其所有者也更改为 root:
chown root:user /home/user
chmod 1775 /home/user
chown root /home/user/.keep
Run Code Online (Sandbox Code Playgroud)
root 可以删除/home/user,用户不能。但是用户可以在他的目录中自由添加/删除/重命名文件
chattr +a /home/user- 与第一种方法相同,但用户可以添加文件。我认为chattr +a在主目录上:chattr +a /home是最好的方法:
sudo rm -rf /home/user 实际上的问题是:这种方法的陷阱是什么?
要删除目录,您需要对其父目录的写权限。这意味着只要用户不能写入/home,他就无法删除自己的目录。
$ chown root:root /home
$ chmod 0755 /home
$ chown user:user /home/user
$ chmod 0750 /home/user
Run Code Online (Sandbox Code Playgroud)
有了这些权限,root 是唯一可以直接在/home. 这种设置实际上在 Linux 系统上很常见,因为它们是多用户的;但是,我见过/home属于第一个用户(通常是 ID 1000)的Ubuntu 设置。虽然 Ubuntu 的第一个用户通常是 sudoer(这意味着他可以使用 删除所有内容sudo),但我认为/home除了 root 之外,给任何人都不是一个好习惯。
说到chattr,我认为这有点矫枉过正。您面临权限问题,不需要其他文件属性。