我在使用 FreeBSD 时遇到了一个奇怪的问题,这让我很惊讶。
我创建了一个共享,并在该共享中创建了一个名为的子目录subdir
。当我打开 smbclient 并将当前目录 = 共享根目录时,subdir
目录列表中未列出。但是,当我在另一个窗口中通过 SSH 授予everyone@:full_set:allow
ACE(而没有其他任何权限)时subdir
,smbclient 会话现在可以在“ls”列表中看到该目录。
事实上,即使everyone@:a:allow
ACE(而不是其他任何东西)设置在子目录足以使子目录在其父目录中列出。(感谢@grawity 的提示)
我知道桑巴能如果 ACL 不允许对其父目录的读取权限,或者如果它是否决文件/目录,或者设置了隐藏文件,或者如果它以其他方式通过名称明确隐藏,则隐藏客户端的文件,但这些文件未被使用 - 我刚刚创建了目录并共享,我还没有创建任何与隐藏它相关的引用或属性。
否则,据我所知,查看目录中的文件的能力严格受父目录的“r”属性的控制……不是吗?
我得到的结果是:a
在子级上添加 ACE -> 子级在父级目录列表中可见。a
从子级中删除 ACE -> 不显示在父级目录列表中。
我是不是漏掉了什么,或者发生了什么?为什么似乎需要在 上设置 ACEchild
才能在 内看到它ls <parent>
?为什么孩子的 ACE 很重要?