保护chrooted root fs的目录

所以我们正在尝试改造一个旧的FTP服务器,这也是一个rsync端点。 在每个用户chroot中都有一个目录结构如下所示:

/. ├─── usr/ ├─── lib/ └─── ...(customer data) 

理想情况下,我们会在chroot中添加一个/data目录,并在几年前告诉客户将数据发送到那里。 但是我们过去并没有这样做,不能在不久的将来改变结构。

我想知道是否有权限的组合,这将允许我的用户仍然在/目录中创build新文件,但不移动或重命名当前存在的两个目录。 我认为这可以用ACL来完成,但我不知道如何。 所以作为一个testing

  1. echo cust_data > customer_file :应该被允许
  2. mv customer_file customer_file2 :应该允许
  3. mkdir customer_dir :应该允许
  4. rm usr :应该被禁止
  5. mv usr usr_something :应该被禁止

有没有我可以设置的ACL策略?

将chroot /目录的所有权设置为root:root

 chown root:root /path/to/chroot/rootdir 

然后设置粘性位

 chmod 1777 /path/to/chroot/rootdir 

/usr/lib原样,大概就像rootroot可写。 这将使用户能够按照自己的意愿操作文件,但无法以任何方式修改/usr/lib

根据Linux chmod.1手册页 :

限制删除标志或粘性位是单个位,其解释取决于文件types。 对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录; 这称为目录的限制删除标志,通常在像/tmp这样的世界可写目录中find。 对于一些较老系统上的常规文件,该位将程序的文本图像保存在交换设备上,以便在运行时加载更快; 这被称为粘性位