使用Windows客户端访问EDA环境的NFS共享

在IC设计环境中, 也总是会有Windows操作系统的开发服务器或者客户端需要使用IC设计平台中Linux主机使用的NFS服务器。 使用者也是IC设计团队中的一员,可能出于设计工具的原因, 他/她的部分工作必须在Windows中完成, 同时也需要保持NFS目录的权限体系,不能为了这少量的Windows用户而放弃NFS中原有的权限配置。 本文解释了如何优雅的实现这个目标。

修改注册表的AnonymousUid

  1. Windows主机安装Client For NFS

  2. 修改注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default

    添加两个32位DWORD项:AnonymousUidAnonymousGid, 配置其中的值为10进制的对应的Linux系统中的uid和gid

  3. 重启Client for NFS服务或者Windows主机

  4. 访问NFS服务器共享

    mount \\nfs-server-ip\share-path z:
    或者直接像打开SMB共享一样打开 \\nfs-server-ip\share-path 
    
    在三种方法中,这是唯一一种可以直接用SMB共享的打开方式一样打开NFS共享的,剩下的两种只能使用mount命令把NFS共享挂载成一个盘符
    
  5. 在Windows Terminal中执行mount命令可以显示当前的链接是通过哪个uid和gid进行的。

    这种方法的缺点是 一台Windows主机只能用一个uid和gid去访问nfs服务器,如果这是一台多人同时使用的Windows Server,它仍然是使用同一个uid和gid去访问NFS共享,缺乏灵活性。

本地文件

对于没有加域的Windows计算机,或者整个IC设计环境并不是使用的AD管理身份认证的,反正Windows客户端也没有办法加域,就可以使用这种方法。 在C:\Windows\system32\drivers\etc目录下, 创建和编辑passwd和group两个文件

# passwd文件内容
# username:x:uid:gid::家目录:shell
owl:x:1001:5001::/home/owl:/bin/tcsh


# group文件内容
# groupname:x:gid:username1, username2, username3
developers:x:5001:owl

Windows主机仍然要安装Client For NFS, 重启服务或者Windows主机后可以测试访问

mount \\nfs-server-ip\share-path z:
不能直接像打开SMB一样打开共享了,只能用mount

AD集中认证的环境下

Windows主机加域了

Windows和Linux主机都通过AD来管理(Windows可以不用AD管理), Linux通常会使用SSSD, Windows自然正常的加域即可。 在这种情况下, 其实还是有两种选择

  1. sssd自动管理mapping

    这种情况下,可以使用“本地文件”配置法。

  2. 手动管理mapping

    Windows AD中的用户是需要配置uidnumber和gidnumber的attribute,以对接Linux的。

本节就假定管理员是手动维护windows AD账户的uidNumber, gidNumber, UnixHomeDirectory, LogonShell这一些属性。

实现方法如下:

  1. 在Windows上安装Client for NFS服务

  2. 重启Client For NFS服务或者重启Windows服务器/客户端,因为Windows已经加域, 查询uid和gid的动作会自动的向AD索取

  3. 挂载

    mount \\nfs-server-ip\share-path z:
    
    不能直接像打开SMB一样打开共享了,只能用mount
    

Windows主机没有加域

但是又想去AD里面取uid和gid信息, 实现方法如下:

  1. 在Windows上安装Client for NFS服务

  2. 使用PowerShell启用NFS的Mapping 功能,这个功能就是说让NFS客户端去AD里面找Identity的Mapping , 当然, ldapserver的主机名要能被解析到。

    Set-NfsMappingStore -EnableADLookup $True -ADDomainName “owl.local” -ldapserver "shadc01.owl.local,shadc02.owl.local"
    
  3. 重启Client For NFS服务或者重启Windows服务器/客户端

  4. 挂载

    mount \\nfs-server-ip\share-path z:
    
    不能直接像打开SMB一样打开共享了,只能用mount
    
posted @ 2025-09-18 19:18  陈大玉  阅读(90)  评论(0)    收藏  举报