有没有办法让现有文件系统对象继承其父目录的新设置的默认 ACL 设置?
我需要这样做的原因是我有一个通过 SFTP 连接到我的服务器的用户。他们能够更改 FTP 客户端中的目录并查看根文件夹和服务器的其余部分。除了他们自己的用户目录外,他们无权更改或编辑任何内容,但我想阻止他们甚至查看其他目录的内容。
有没有比 ACL 更好的方法来做到这一点?如果 ACL 是可行的方法,我假设根目录上的默认 ACL 将是限制访问的最佳方式。然后我可以有选择地授予用户查看某些目录的权限。问题是默认 ACL 仅由新的文件系统对象继承,而不是现有的。
您必须在现有目录上手动设置 ACL。不难做到:
正如 l1x 所提到的,您的目录上需要一个访问 ACL 和一个默认 ACL。
-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
当前对文件系统对象的访问权限称为访问 ACL。还定义了称为默认 ACL 的第二种类型。它们定义了文件系统对象在创建时从其父目录继承的权限。只有目录可以与默认 ACL 关联。非目录的默认 ACL 没有用,因为在非目录中不能创建其他文件系统对象。默认 ACL 在访问检查中没有直接作用。