我的 NFS 服务器是安装了 Microsoft Windows Services for Unix 的 Windows XP SP3 机器。
我在 C:\NFS 下配置了一个共享,其共享名称为 NFS,编码为 ANSI。
启用匿名访问,并将匿名 UID/GID 设置为 0/0。此外,我已将所有机器设置为读写,并选中允许 root 访问的复选框。
我的第一个 NFS 客户端是 Ubuntu 10.04,安装了 nfs-common。运行
sudo mount -t nfs 1.1.1.1:/NFS /home/user/NFS
成功,但是当我尝试查看该文件夹(即使以 root 身份)时,它告诉我我没有查看文件夹内容所需的权限。
我的第二个 NFS 客户端是运行 OS/400 V5R3 的 IBM iSeries 机器。我使用了以下 mount 命令:
MOUNT TYPE(*NFS) MFS('1.1.1.1:/NFS') MNTOVRDIR('/PARENT/NFS') OPTIONS('rw,nosuid,retry=5,rsize=8096,wsize=8096,timeo=20,retrans=2,acregmin=30,acregmax=60,acdirmin=30,acdirmax=60,soft') CODEPAGE(*BINARY *ASCII)
也可以成功挂载。尝试
WRKLNK '/PARENT/NFS'
并使用选项 5 进入目录会产生无权反对错误 - 尽管我是具有 *ALLOBJ 特殊权限的安全官员。
我的直觉告诉我这是 Windows 共享的问题,但我不知道可能是什么问题。您有什么建议吗?
答案1
有什么理由不直接使用桑巴在 *NIX 机器上?这样,您既可以从 Windows 访问 *NIX 机器上的共享,也可以在 *NIX 机器上安装 Windows 共享。
“Microsoft Windows Services for Unix”,不知怎的,光是读一下就让我感到心痛。
答案2
您是否已检查您是否拥有目录及其子目录的执行权限(在 Unix 中,应用于文件夹时表示“列出文件夹”)?可能有一些 Windows 特定设置可能等效,例如“列出文件夹”或“遍历文件夹”。将其授予所有人或任何 NFS 服务器正在运行的用户。无论您是超级用户/QSECOFR 还是客户方面,重要的是服务器的帐户 id 有权做什么,目录的权限是什么,您的客户端用户 id 映射到哪个服务器用户 id(如果是 id 映射,这里不是这种情况)。
这里不是这种情况:目录的权限多于导出的目录也可能导致类似的错误。例如,假设您导出了目录 c:\foo\bar\baz,并且 baz 上已授予所有适当的权限,但 foo 的权限不允许 NFS 服务器访问 baz。错误!
如果可能的话,打开服务器上的日志记录并查看日志。
答案3
我不确定 XP 是否如此。不过,我在 Windows Server 2012 上也遇到了类似的问题。解决办法是启用网络访问: 让每个人的权限应用于匿名用户政策制定安全设置\本地策略\安全选项。
我在这个页面上找到了解决方案:
http://technet.microsoft.com/en-us/library/hh509019%28v=ws.10%29.aspx