- 在 RHEL 7.9、samba-4.10.16-19、nfs-utils-1.3.0、
- 服务器 A 和服务器 B 都有 SELINUX 作为强制执行
- 从服务器 A,该文件夹
/data
是 NFS 导出的。 - 在服务器 B 上,
mount A:/data /data
成功安装为 NFS v4.1。 - 在服务器B上,如果我samba共享出
/data
挂载的nfs,则无法访问它直到我setenforce 0
在服务器 B 上执行此操作。 - 在服务器 A 上,
/data
具有samba_share_t
标签并将 samba 从服务器 A 共享出去。 - 在
/data
安装了 nfs 的服务器 B 上,它有nfs_t
标签,但我无法samba_share_t
使用semanage fcontext -a -t samba_share_t "/data(/.*)?"
正如我所描述的,关于 samba 共享文件夹、NFS 和 SELINUX,该做什么和不该做什么?我真的希望能够通过 samba 共享服务器 B 上的 nfs 安装文件夹,因为这是所有用户帐户和权限信息所在的位置,每个人在服务器 B 上都有一个用户帐户,可以在其下创建数据,/data
但他们在服务器上没有帐户A/data
物理驻留位置,我不想在服务器 A 上创建用户帐户。
答案1
关于 samba 无法使用 NFS 安装的文件夹...
getsebool -a | grep samba
默认情况下 samba_share_nfs已关闭。
做一个setsebool -P samba_share_nfs on
解决这个问题。这-P
是为了持久化,否则重启后又会消失。
答案2
使用 Samba 共享 NFS 挂载并不是一个好主意,因此我不建议您这样做。 NFS 使用 nfsv4 acl,而 Samba 不使用。