通过 NFSv4 和 Samba 共享文件夹

通过 NFSv4 和 Samba 共享文件夹

我在获取通过 samba 共享的文件夹的正确访问权限时遇到了一些问题nfs. 连接方式如下:

┌────────────┐    ┌──────────────┐    ┌──────────────┐
│ NFS-Server ├────┤ NFS Client   ├────┤ Samba Client │
│            │    │ Samba Server │    │              │
└────────────┘    └──────────────┘    └──────────────┘

中间的机器是一台共享开发机器(运行 Linux)。Samba 客户端通常是 Windows。之所以这样连接,是因为网络策略/防火墙。强烈建议不要直接通过 Samba 访问 NFS 服务器。

此外,此设置的副作用是每个人都可以通过 Samba 访问开发机器。

导出的 NFS 资源应由特定组读取/写入。我使用 Unix ACL 实现了这一点。当直接通过开发机器(NFS 客户端)访问共享时,这已经给我带来了麻烦。似乎没有mask妥善保存。

我在网上找到了一些涉及该主题的资源,但我仍然无法理解为什么/如何发生这种情况。

我还遇到了与使用设置的 ACL 不同的 NFSv4 ACL setfacl。我也尝试过尝试这些 ACL,但运行命令时出现了错误:

[11:24:32] michel@BBS-extractor coftp $ nfs4_getfacl .
Operation to request attribute not supported.

我以为这可能是与挂载选项有关的问题。但是,底层 FS 是一个ext4卷。这与 NFS 无关……对吗?

有人能向我解释一下这里发生了什么吗?为什么mask使用 NFS 时会忽略默认值?

作为一个实际的例子,让我给你根文件夹的 ACL:

[11:30:26] michel@BBS-extractor coftp $ getfacl .
# file: .
# owner: coftp
# group: coftp
# flags: -s-
user::rwx
group::rwx
group:coftp:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:coftp:rwx
default:mask::rwx
default:other::r-x

test在远程计算机上创建一个名为的文件夹后,我得到了这个:

[11:30:26] michel@BBS-extractor coftp $ getfacl test
# file: test
# owner: michel
# group: coftp
# flags: -s-
user::rwx
group::rwx                      #effective:r-x
group:coftp:rwx                 #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:coftp:rwx
default:mask::rwx
default:other::r-x

这表明,组“coftp”不具有对此文件夹的写访问权限,尽管在根文件夹的 ACL 中,它应该具有该权限。原因是mask。根文件夹指定了一个默认掩码,但在通过 NFS 访问文件夹时,它似乎被忽略/更改了。

相关内容