在复杂的主机与网络环境中,我们可能会接触到多种主机与操作系统,配合Windows Server 2008 R2的原生“NFS服务器”功能可以让这样的复杂操作系统更方便应用。

然而面对网络上众多的帮助指南和设置向导难免会造成一些操作不够全面,本博文进行相关尝试后对其中的匿名访问的少支持进行一些弥补,同时也欢迎诸多网友的指正。

微软官方网站上提供相应NFS服务器配置指南,如果您是初次使用可以参考这个链接:http://technet.microsoft.com/zh-cn/library/cc753312.aspx

本文涉及到的Unix客户端匿名访问Windows提供的NFS服务器属于较特殊方向,因此如果在没有较为安全的防护措施下还是非常建议您使用有身份验证授权的方式进行访问与连接;同时现有环境并没有使用域控进行统一授权与管理,因此操作中完全是按照独立主机的模式进行实践的。

以下内容是本人在亲自使用后总结的允许匿名访问后的常见问题。

问题一:Unix客户端进行挂载(mount)的时候出现 “Input/output error”是什么情况?

解答:客户端需要开启Protmap服务;同时服务端需要设置好相应的NFS访问权限(匿名访问权限需要设置GID=-2,UID=-2),安全策略中设置“网络访问: 将 Everyone 权限应用于匿名用户”为“已启用”,以及NFS权限对共享目录进行读写操作。

Figure 1问题一图示,设置NFS身份验证,确保匿名访问有效

Figure 2问题一图示,设置NFS权限,确保共享目录的可读写

问题二:客户端挂载后提示没有权限(“Permission Denied”)创建文件或文件夹

解答:这里面提到的没有权限多数是因为在NFTS的权限策略无法创建,因为使用的是Windows下本身不存在的Unix匿名账户ID=-2的这个“用户”,我们需要将这个特殊的用户ID添加到对应的NTFS访问控制权限(ACL里面,这里面我们借助nfsfile命令(该命令需要在NFS服务角色安装好之后方可使用)来完成。

帮助命令很简单,下表展示内容即为帮助文件信息:

操作 NFS 文件的服务属性。

NFSFILE [/v] [/s] [/i[[u=<uid>]|[g=<gid>]|[wu=<account>]|[wg=<account>]]] [/r[[u=<uid>]|[g=<gid>]|[m=<mode>]]] [/c[w|x]] <filespec>

/? - 此消息

/v - 详细

/s - 扫描子目录查找匹配的文件

/i - 包括与指定标准相匹配的文件

u <uid> - NFS 所有者 SID 匹配<uid>

g <gid> - NFS 组 SID 匹配<gid>

wu <account> - NFS 所有者 SID 匹配<account>

wg <account> - NFS 组 SID 匹配<account>

/r - 替换文件上指定的选项

u <uid> - 设置 uid

g <gid> - 设置 gid

m <mode> - 将模式位设置为<mode>

wu <account> - 设置 Windows 所有者帐户

wg <account> - 设置 Windows 组帐户

/c - 转换文件依据

w - Windows 样式 ACL (已映射)

x - Unix 样式 ACL (未映射)

实例:

nfsfile /v /ru=-2 /rg=-2 /s /cx e:\testaa

Figure 3添加匿名用户(组)-2进入共享文件夹

此时在通过客户端Unix访问这个共享目录,即可创建文件(夹)了。

问题三:如果遇到通过手工自行修改过ACL的文件夹,在设置了NFS共享后无法在客户端创建文件夹该如何操作?

回答:首先通过问题一与问题二进行一下设置,一般来说只要设置好了NFTS的权限与NFS的权限就可以进行客户端的访问与写入操作了。但是如果有一个要设置NFS共享的文件夹之前被做过多次的ACL的设置导致了ACL的权限出现的错乱,使得共享之后无法创建相应的文件夹与文件,此时有两种比较好的方法:

方法一:在这个已经进行了NFS共享的文件夹下创建一个子文件夹,并且使用nfsfile设置相应的权限映射,以后对这个子文件夹进行操作即可。

方法二:停止之前的NFS共享,创建一个新的文件夹并设置好NFS权限,最后按照问题二中的操作使用nfsfile进行全新设置,然后将原始的文件夹下的内容拷贝(剪切)到新文件夹下即可解决。

问题四:这种映射的原理是什么?

回答:先看一下nfsfile设置好映射权限后的文件夹acl属性

Figure 4左侧是Windows下的文件夹所有者,右侧的显示是Mount到Unix客户端之后的这个文件夹的所有者

可以很清楚的看到相应的-2用户组对应的Unix编号为4294967294(-2转换为32位二进制后再转换成十进制后的呈现),而这样的ACL在Windows 的表现是什么样的?

Figure 5通过PowerShell的Get-Acl命令捕获到的访问列表,因为我并没有设MODE SID,所以上面显示阻止了所有控制权;Owner与Group ID均为4294967294,且有可读权限,Owner同时还具有全部控制权限;Other ID允许读的权限

Figure 6这是一张微绘制的UNIX客户端用户信息与NTFS下ACL信息的对应图

Figure 7 Linux下面的User和UserID的对应关系,其中nfsnobody对应的UserID=65534,他的目的是用作匿名(Anonymous)共享

同样的在一些商用存储中对于这个匿名映射使用的也是-2来实现的,只不过由于使用的字节长度不同,所表现出来的数值是不一样的。

Figure 8一款NatApp的NAS提供的匿名共享所映射过去的匿名用户是UID=65534,实际上是另一种-2(16位带符号运算)

Figure 9 16位带符号的-2

Figure 10十进制的-2

Figure 11 32位带符号的-2

附录:

关于4294967294 用户可以参考MSDN的文章,Who's 4294967294? http://blogs.msdn.com/b/sfu/archive/2007/04/19/who-s-4294967294.aspx

NFS_Account_Mapping_in_Windows_Server_2008_R2.doc 的下载地址 http://download.microsoft.com/download/F/5/0/F5062BD4-4B9D-4D00-ACB6-D94D2E2DABEA/NFS_Account_Mapping_in_Windows_Server_2008_R2.docx

-=EOB=-

Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题的更多相关文章

  1. Windows Server 2008 R2 配置Exchange 2010邮件服务器

    windows server 服务器系统搭建邮件服务器一般两种情况: 1:Winmail server 软件 2:Exchange 参考教程:http://www.cnblogs.com/zhongw ...

  2. windows Server 2008 R2 添加新用户时密码不满足密码策略的要求

    ---------------------------本地用户和组---------------------------在计算机 WINSERVER2008R2 上创建用户 lintx 时,出现了以下 ...

  3. Windows server 2008 R2搭建主域控制器 + 辅域控制器

    一:实验模拟环境: Zhuyu公司是一个小公司,随着公司状大,公司越来越重视信息化建设,公司考虑到计算机用户权限集中管理及共享资源同步管理, 需要架设一套AD域控服务器,考虑到成本和日后管理问题,计划 ...

  4. Windows Server 2008 R2 FTP无法从外部访问的解决方法

    在Windows Server 2008 R2中配置好FTP服务器后,可以在本机访问,但是无法从另一台电脑访问.原因就是在于防火墙没有配置好. 1.首先检查服务器管理器中的入站规则,确保已启用FTP服 ...

  5. Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:

    Windows Server 2008 R2中IIS7.5配置完网站权限不足问题的解决办法:常见问题:HTTP 错误 500.0 - Internal Server Error无法显示页面,因为发生内 ...

  6. Windows Server 2008 R2 备份与恢复详细实例

    Windows Server 2008 R2中Windows Server Backup备份与恢复 本实验是在虚拟机操作,因公司的需求,将备份存储到另一台服务器,于是我在现有linux备份服务器搭建了 ...

  7. Windows Server 2008 R2 服务器内存使用率过高几乎耗光

    系统环境: Windows Server 2008 R2 Enterprise 搭建有 web服务器(iis) 和  文件服务   问题描述: Windows Server 2008 R2系统内存耗光 ...

  8. windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。

    如何通过Windows Server 2008 R2建立NFS存储服务? 通过Windows Server 2008 R2,我们可以很容易地将其作为一台NFS存储服务器,得到一个NFS软存储,轻松解决 ...

  9. Windows Server 2008 R2常规安全设置及基本安全策略

    这篇文章主要介绍了Windows Web Server 2008 R2服务器简单安全设置,需要的朋友可以参考下 用的腾讯云最早选购的时候悲催的只有Windows Server 2008 R2的系统,原 ...

随机推荐

  1. spark 大数据 LR测试

    #!/bin/bash size="120Y*10W"date1=`date +%F_%H-%M-%S`config="spark-submit \ --jars /da ...

  2. *HDU1848 博弈

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  3. CF2.BC

    B. Arpa's obvious problem and Mehrdad's terrible solution time limit per test 1 second memory limit ...

  4. MyBatis的经典案例

    1.首先我们先了解Mybatis的一些jar包 ---和项目框架 2.接下来就看看mybatis的配置文件(mybatis-config.xml) <?xml version="1.0 ...

  5. myeclipse连接数据库sql server

    1.打开数据库Microsoft sql server2008,输入以下命令: 此时可是看到端口号为1619,记住此端口号,等会儿会用到. 2.打开myeclipse2014,找到最上方的myecli ...

  6. ABP理论学习之MVC视图

    返回总目录 本篇目录 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc Nuget包集成了MVC视图.因此你可以像常规那样创建MVC视图. AbpWebViewPage基 ...

  7. Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  8. ReactNative与NativeScript对比报告

    综合这段时间对ReactNative(下称RN)和NativeScript(下称NS)的简单学习了解,分别从不同方面分析对比二者的优缺点. 页面结构 NS一个页面的目录结构: RN的一个页面一般就是一 ...

  9. Andrew Ng机器学习公开课笔记 -- 学习理论

    网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/va ...

  10. Laravel5.0学习--03 Artisan命令

    本文以laravel5.0.22为例. 简介 Artisan 是 Laravel 内置的命令行接口.它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动.利用它, ...