所以我们正在尝试改造一个旧的FTP服务器,这也是一个rsync端点。 在每个用户chroot中都有一个目录结构如下所示:
/. ├─── usr/ ├─── lib/ └─── ...(customer data)
理想情况下,我们会在chroot中添加一个/data目录,并在几年前告诉客户将数据发送到那里。 但是我们过去并没有这样做,不能在不久的将来改变结构。
我想知道是否有权限的组合,这将允许我的用户仍然在/目录中创build新文件,但不移动或重命名当前存在的两个目录。 我认为这可以用ACL来完成,但我不知道如何。 所以作为一个testing
echo cust_data > customer_file :应该被允许 mv customer_file customer_file2 :应该允许 mkdir customer_dir :应该允许 rm usr :应该被禁止 mv usr usr_something :应该被禁止 有没有我可以设置的ACL策略?
将chroot /目录的所有权设置为root:root :
chown root:root /path/to/chroot/rootdir
然后设置粘性位 :
chmod 1777 /path/to/chroot/rootdir
将/usr和/lib原样,大概就像root和root可写。 这将使用户能够按照自己的意愿操作文件,但无法以任何方式修改/usr和/lib 。
根据Linux chmod.1手册页 :
限制删除标志或粘性位是单个位,其解释取决于文件types。 对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录; 这称为目录的限制删除标志,通常在像
/tmp这样的世界可写目录中find。 对于一些较老系统上的常规文件,该位将程序的文本图像保存在交换设备上,以便在运行时加载更快; 这被称为粘性位 。