我有一台机器“NFS-Server”,一台机器“Hybrid”和一台机器“TFTP-Client”,我想通过以下方式连接它们:
- NFS 服务器允许 Hybrid 安装到共享
- Hybrid 还拥有一个 TFTP 服务器,地址为
/var/lib/tftpboot
- TFTP-Client 从 Hybrid 获取文件
/var/lib/tftpboot
- 任何放置在 NFS 服务器共享中的文件都应该能够被 TFTP 客户端拉取,因此 NFS 挂载和 TFTP 服务器目录之间需要存在某种实时关系。
我到目前为止已经尝试过:
- 直接挂载
/var/lib/tftpboot
到共享。每当发生这种情况时,SELinux 都会将目录从 重新标记为 ,tftpdir_rw_t
这样nfs_t
TFTP 权限就会消失。我无法使用上下文选项进行挂载,也无法在挂载后更改上下文。 - 将不同的目录挂载到 NFS 共享,然后将该目录绑定到
/var/lib/tftpboot
。即使使用上下文选项/命令,结果也与上述相同。
我认为接下来可能采取的措施包括:
- 创建一个简单的服务,从已挂载的 NFS 共享执行 rsync
/var/lib/tftpboot
。这几乎肯定会起作用,但我觉得还有更好的方法。 - 创建自定义 SELinux 规则/策略/模块(语义有点混乱),这将提供
/var/lib/tftpboot
一个“混合”NFS/TFTP 上下文,允许它挂载并提供文件。这似乎更好,但令人困惑。
有人尝试过类似的事情吗?或者至少能指导一下更好的前进道路是什么?提前谢谢大家!