有没有办法让现有的文件系统对象inheritance新设置的父目录的默认ACL设置?
我需要这样做的原因是我有一个用户通过SFTP连接到我的服务器。 他们能够更改他们的FTP客户端中的目录,并查看根文件夹和服务器的其余部分。 他们没有权限来更改或编辑除自己的用户目录之外的任何内容,但是我想阻止他们查看其他目录的内容。
有没有比ACL更好的方法呢? 如果ACL是要走的路,我假设根目录下的默认ACL将是限制访问的最佳方式。 然后,我可以select性地授予用户查看某些目录的权限。 问题是默认的ACL只能被新的文件系统对象inheritance而不存在。
-d(或–default)用于设置目录的默认值,以便在其中创build的东西inheritanceperms。
例如
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。 不难做到:
find /path/to/ftp -type d -exec setfacl <acl spec> {} \;
正如前面提到的,你需要在你的目录上使用访问ACL和默认ACL。
文件系统对象的当前访问权限称为访问ACL。 另一种称为默认ACL的types也被定义。 它们定义文件系统对象在其创build时从其父目录inheritance的权限。 只有目录可以与默认的ACL关联。 非目录的默认ACL是没有用的,因为没有其他文件系统对象可以在非目录内创build。 默认ACL在访问检查中不起直接作用。