![防止用户删除主文件夹的方法](https://linux22.com/image/60101/%E9%98%B2%E6%AD%A2%E7%94%A8%E6%88%B7%E5%88%A0%E9%99%A4%E4%B8%BB%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E6%96%B9%E6%B3%95.png)
我认为防止主文件夹被删除是一个非常好的主意。所以我寻找可能的方法来做到这一点。这就是我所发现的:
- 使用
chattr +i /home/user
- 即使root也不能添加/删除/重命名用户文件夹和所有直接子文件夹用户- 好和坏。 将用户目录的所有者更改为 root 并设置粘滞位。添加文件 .keep 并将其所有者也更改为 root:
chown root:user /home/user chmod 1775 /home/user chown root /home/user/.keep
root可以删除/home/用户,用户不能。但用户可以在其目录中自由添加/删除/重命名文件
- 使用
chattr +a /home/user
- 与第一种方法相同,但用户可以添加文件。
我认为chattr +a
在主目录上:chattr +a /home
是最好的方法:
- 我们可以轻松地为其他用户创建新的主文件夹。
- 我们可以自由编辑文件/home/用户
- 我们不能一不小心
sudo rm -rf /home/user
实际上问题是:这种方法有什么陷阱?
答案1
要删除目录,您需要写对其父级的许可。这意味着只要用户无法写入/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 (这意味着他可以使用 sudoer 删除所有内容),但我认为除了 root 之外,sudo
给任何人都不是一个好的做法。/home
当谈到时chattr
,我相信这有点矫枉过正了。您面临权限问题,不需要其他文件属性。