如何获取 NFS 用户列表并终止连接

如何获取 NFS 用户列表并终止连接
  1. 我想获取 NFS 用户列表(客户端列表),例如smbstatus
  2. 我想查看哪个用户和 IP 正在使用哪个共享以及何时连接。
  3. 我想杀死 nfs 用户。
  4. 我想记录用户正在执行的操作,例如“创建、修改、删除”。

我想管理nfs用户,但找不到解决这个问题的信息和工具。

答案1

NFS 的结构与 SMB 非常不同,因此您的请求对于 NFS 来说没有意义。

  1. NFS 安装是按系统而不是按用户完成的。showmount -d如果服务器愿意透露该信息,可能会告诉您哪些系统具有从特定服务器挂载的 NFS 共享。在 Linux 上,如果rpc_pipefs安装了虚拟文件系统,它还会包含有关活动 NFS 连接的信息。在 Debian 9 和相关发行版上,典型的rpc_pipefs安装点是/var/lib/nfs/rpc_pipefs、 或。/run/rpc_pipefs您可以在 NFSv4 服务器的 上找到 NFSv4 客户端信息<rpc_pipefs mount point>/nfsd4_cb/clnt*/info,每个客户端主机都有一个客户端目录。
  2. 对于客户端 IP 地址,请参阅之前的答案。个人用户本身并不“连接”;即使有多个用户,每个已安装的文件系统也只有一个连接。因此,“连接时”仅告诉您系统上次启动的时间,或者系统管理员在客户端上安装 NFS 共享的时间,以较晚者为准。
  3. 更改共享文件系统上的权限或 ACL 以阻止用户的访问,或者连接到客户端、成为 root、用于lsof -N识别具有打开的 NFS 文件句柄的用户进程,然后终止它们。或者取消导出 NFS 共享以立即“杀死”所有 NFS 用户。
  4. NFS 服务器上的审核子系统可以完成这项工作,假设您可以确定服务器和客户端上的 UID/GID 编号相互匹配(NFSv2 或 v3)或者用户名已正确映射(NFSv4)。

对于 NFSv2 或 v3,NFS 服务器基本上信任 NFS 客户端代表服务器执行适当的用户识别和访问控制。这就是为什么标准建议是使用 NFS 仅在受信任的主机之间共享文件系统。

基于 Kerberos 的用户身份验证(以及可选的数据加密)是后来的附加组件:如果客户端和服务器都支持该选项,它可以与 NFSv2 和 NFSv3 一起使用,但“边带协议”(lockdmountd和)不会rquotadstatdt 使用认证信息。只有在 NFSv4 中,身份验证才完全集成以涵盖协议的所有方面;然而,它仍然是可选的。

相关内容