CentOS 现有文件系统对象的默认 ACL

CentOS 现有文件系统对象的默认 ACL

有没有办法让现有的文件系统对象继承其父目录新设置的默认 ACL 设置?

我需要这样做的原因是,我有一个用户通过 SFTP 连接到我的服务器。他们可以更改 FTP 客户端中的目录并查看根文件夹和服务器的其余部分。他们无权更改或编辑除自己的用户目录之外的任何内容,但我想阻止他们查看其他目录的内容。

有没有比 ACL 更好的方法?如果 ACL 是可行的方法,我假设根目录上的默认 ACL 是限制访问的最佳方法。然后我可以有选择地授予用户查看某些目录的权限。问题是默认 ACL 只能由新文件系统对象继承,而不能由现有对象继承。

答案1

-d(或 --default)用于设置目录的默认值,以便在其中创建的内容继承权限。

例如

setfacl -d --set u::rwx,u:tippy:rwx,u:axel:rx,g::rx,g:lensmen:rx,o::- MYDIR

以下是简要概述。http://www.vanemery.com/Linux/ACL/linux-acl.html#default

答案2

您必须手动设置现有目录的 ACL。这并不难:

find /path/to/ftp -type d -exec setfacl <acl spec> {} \;

正如 l1x 所提到的,您需要目录上的访问 ACL 和默认 ACL。

答案3

文件系统对象的当前访问权限称为访问 ACL。还定义了第二种类型,称为默认 ACL。它们定义文件系统对象在创建时从其父目录继承的权限。只有目录可以与默认 ACL 相关联。非目录的默认 ACL 毫无用处,因为非目录内不能创建其他文件系统对象。默认 ACL 在访问检查中不发挥直接作用。

相关内容