因此,我们尝试改造一个较旧的 ftp 投递服务器,该服务器也可用作 rsync 端点。在每个用户 chroot 中,都有一个如下所示的目录结构:
/.
├─── usr/
├─── lib/
└─── ...(customer data)
理想情况下,我们会/data
在 chroot 中添加一个目录,并且几年前就告诉客户将他们的数据发送到那里。但是我们过去没有这样做,并且近期无法更改结构。
我想知道是否有权限组合允许我的用户在 / 目录中创建新文件,但不能移动或重命名当前存在的两个目录。我认为这可以通过 ACL 来实现,但我不知道怎么做。因此,作为测试
echo cust_data > customer_file
:应该允许mv customer_file customer_file2
:应该允许mkdir customer_dir
:应该允许rm usr
:应被禁止mv usr usr_something
:应被禁止
是否有我可以设置 ACL 策略来实现这一点?
答案1
将 chroot 目录的所有权设置/
为root:root
:
chown root:root /path/to/chroot/rootdir
然后设置粘着位:
chmod 1777 /path/to/chroot/rootdir
保留/usr
原样/lib
,大概类似于root
-owned 和root
-only writable。这将使用户可以随心所欲地操作文件,但无法以任何方式进行/usr
修改。/lib
限制删除标志或粘性位是一个位,其解释取决于文件类型。对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的限制删除标志,通常位于可全局写入的目录中,例如
/tmp
。对于某些较旧系统上的常规文件,该位将程序的文本图像保存在交换设备上,以便在运行时加载速度更快;这称为 粘着位。