- 我想获取 NFS 用户列表(客户端列表),例如
smbstatus
- 我想查看哪个用户和 IP 正在使用哪个共享以及何时连接。
- 我想杀死 nfs 用户。
- 我想记录用户正在执行的操作,例如“创建、修改、删除”。
我想管理nfs用户,但找不到解决这个问题的信息和工具。
答案1
NFS 的结构与 SMB 非常不同,因此您的请求对于 NFS 来说没有意义。
- 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
,每个客户端主机都有一个客户端目录。 - 对于客户端 IP 地址,请参阅之前的答案。个人用户本身并不“连接”;即使有多个用户,每个已安装的文件系统也只有一个连接。因此,“连接时”仅告诉您系统上次启动的时间,或者系统管理员在客户端上安装 NFS 共享的时间,以较晚者为准。
- 更改共享文件系统上的权限或 ACL 以阻止用户的访问,或者连接到客户端、成为 root、用于
lsof -N
识别具有打开的 NFS 文件句柄的用户进程,然后终止它们。或者取消导出 NFS 共享以立即“杀死”所有 NFS 用户。 - NFS 服务器上的审核子系统可以完成这项工作,假设您可以确定服务器和客户端上的 UID/GID 编号相互匹配(NFSv2 或 v3)或者用户名已正确映射(NFSv4)。
对于 NFSv2 或 v3,NFS 服务器基本上信任 NFS 客户端代表服务器执行适当的用户识别和访问控制。这就是为什么标准建议是使用 NFS 仅在受信任的主机之间共享文件系统。
基于 Kerberos 的用户身份验证(以及可选的数据加密)是后来的附加组件:如果客户端和服务器都支持该选项,它可以与 NFSv2 和 NFSv3 一起使用,但“边带协议”(lockd
、mountd
和)不会rquotad
。statd
t 使用认证信息。只有在 NFSv4 中,身份验证才完全集成以涵盖协议的所有方面;然而,它仍然是可选的。