关于FUSE GitHub页面,我有一些问题:
下面的引用是否意味着 SSHFS做支持 ACL(如果
default_permissions
是)不曾用过?这是否意味着如果需要 ACL 支持和适当的安全性,则两者都不
default_permissions
应该allow_other
用作挂载选项? (很明显,如果allow_other
没有 则不应使用default_permissions
。)如果 #2 是正确的,这是否意味着 SSHFS 安装时不带
default_permissions
或不allow_other
带将正确地将服务器的文件权限和 ACL 传递给客户端?
来源:GitHub - libfuse/libfuse:FUSE(用户空间中的文件系统)接口 https://github.com/libfuse/libfuse
如果您打算使用allow_other挂载选项,请注意FUSE有一个未解决的安全错误:如果不使用default_permissions挂载选项,则只要被访问条目的inode存在于内核缓存中,文件系统对目录条目执行的第一次权限检查的结果将被重新用于后续访问 -即使权限已更改,并且即使后续访问是由不同的用户进行的。如果文件系统只能由挂载用户访问(无论如何都可以完全访问文件系统),那么这没什么问题,但当其他用户被允许访问文件系统时就会成为安全问题(因为他们可以利用这一点来执行操作)他们实际上没有权限的文件系统)。
这个 bug 需要在 Linux 内核中修复,并且自 2006 年以来就已为人所知,但遗憾的是尚未应用任何修复。如果您依赖于 FUSE 文件系统的正确权限处理,唯一的解决方法是使用默认权限(目前不支持 ACL),或者完全禁用目录项属性的缓存。
在我的环境中,所有客户端和服务器都运行 Linux,并且都使用 BTRFS(支持 ACL)。所有 GUID 和 UID 都匹配。