将 CentOS 组限制到单个目录(以及其中的目录)- FTP

将 CentOS 组限制到单个目录(以及其中的目录)- FTP

我最终想要做的是将一组用户关起来,让他们只能通过 FTP 进入他们的主文件夹。他们应该能够在他们的主文件夹内以及该文件夹中的所有目录中拥有读写权限。我尝试这样做了一段时间,但似乎没有一个简单易行的解决方案。以下是我尝试过的方法:

  1. 通过将以下代码添加到 vstfp conf,将用户 chroot 到他们的主文件夹:

    chroot_local_user=YES
    

    这产生了一个问题,因为用户没有目录的完全访问权限,并且文件权限存在一些问题。

  2. 使用以下代码使用 ACL 删除组的所有权限:

    setfacl -x g:501 /
    

    当我执行此命令时什么也没有发生,尽管它是正确的(据我所知,它逐字逐句地遵循文档)。

我在这里问了另一个关于设置 ACL 的问题,Zypher 正确地告诉我,弄乱 / 的权限很快就会变得很糟糕,所以我正在寻找最佳方法来实现上述目标。任何帮助都非常感谢!

答案1

chroot_local_user是正确的设置选项。如果他们无权访问其主目录中的文件,则这些文件的权限是错误的,应该予以修复,或者接受用户无法完全访问所有文件的事实。我强烈质疑为什么将不属于用户的文件放在用户的主目录中。

setfacl -m -R u:<user>:rw $(getent passwd <user> | cut -d : -f 6); setfacl -m -R d:u:<user>:rw $(getent passwd <user> | cut -d : -f 6)在紧急情况下,您可以使用扩展属性来获得您想要的所有值的行为<user>,但这并不能保证——可以将文件写入用户主目录的人可以删除 ACL,这会让您回到原点。

相关内容