防止用户删除主文件夹的方法

use*_*123 6 home xattr

我认为防止删除主文件夹是一个很好的主意。所以我寻找可能的方法来做到这一点。我这就是我发现的:

  1. 使用chattr +i /home/user-甚至根本无法可以添加/删除/重命名用户文件夹和所有直接儿童用户-好的和坏的。
  2. 将用户目录的所有者更改为 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,用户不能。但是用户可以在他的目录中自由添加/删除/重命名文件

  3. 使用chattr +a /home/user- 与第一种方法相同,但用户可以添加文件。

我认为chattr +a在主目录上:chattr +a /home是最好的方法:

  1. 我们可以毫不费力地为其他用户创建新的主文件夹。
  2. 我们可以自由编辑/home/user中的文件
  3. 我们不能不小心 sudo rm -rf /home/user

实际上的问题是:这种方法的陷阱是什么?

Joh*_*ith 7

要删除目录,您需要对其父目录的权限。这意味着只要用户不能写入/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,我认为这有点矫枉过正。您面临权限问题,不需要其他文件属性。

  • @IRus 我所知道的是,我不会向任何人授予 root 权限,并且我确保拥有它们的人不会傻到删除敏感目录。如果要删除人为因素,请删除用户。系统会运行得很好。 (2认同)