免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1080 | 回复: 0
打印 上一主题 下一主题

Windows客户端访问Linu服务器NFS [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-30 22:03 |只看该作者 |倒序浏览
在现今的企业环境中,既存在广泛在办公环境中使用的Windows系列,还存在工业环境中广泛使用的Hp-ux,SCO,Solaries,AIX等,还
有数不清的Linux分发版,在这样一个复杂的异构环境中实现无缝的互连互访,肯定伤透不少人的脑筋,Windows用户通过网络邻居实现互访是很简单的
事,但在不同的操作平台实现互访却不太容易,当然不是没有办法,Samba就是一款优秀的提供Unix与Windows之间互连互通的工具,但用户需要许
多Unix系统下的系统管理经验,所以今天的主角却不是它。
我的工作环境面对的困境:
    不同的产品生产线中有不同类型的Unix,运行着不同的测试程序,测试日志要提交给数据服务器,而数据服务器却是Windows系统
(2000/2003),最初Unix上装有Samba,每次服务器上的程序通过Samba访问Unix上的文件时,总是有找不到路径的错误,映射成本地
盘或者UNC路径也好,都有同样的问题.
也许是对方的系统管理人员的配置的问题吧,但我们无法改变对方,所以求人不如求已,了解到几乎所有类Unix平台都有NFS(Network file
system),这是一个Unix共享网络文件和程序的方法,所以能有一个在Windows提供一个NFS服务器的东东多好,这里就介绍一款跨平台通讯的
工具集SFU.
    SFU,全称是Services For
Unix,是M$是一个挖Unix墙角的工具,有需要的可以从M$的官方网站下载http:
//download.microsoft.com/download/a/1/c/a1ca7af1-a6e3-46e7-874a-4c5d8c0fb3b7/SFU35SEL_EN.exe
下面先来了解下SFU是什么东东(官方文摘--Start--)
Microsoft® Windows® Services for UNIX (SFU) 3.5允许Windows和UNIX的计算机之间共享数据、安全信任。 而且 SFU 3.5技术为Unix应用程序和脚本提供了在Windows环境下高效执行的机制。
IT管理者正在寻找无缝地在他们的Windows和UNIX系统之间整合混杂网络和共享信息的解决方案。 当用户在网络中不同操作系统之间计算机漫游时,不应该遇到障碍。 企业也正在寻找在Unix应用、资源及专有的技术上不断发展的最小投资方案。
基 于Windows计算机技术解决方案的拥有总成本(TCO)是无法抗拒的。Microsoft® Windows XP and
Microsoft® Windows Server
2003已经增加新的特性,并且已经对操作系统的安全性、可靠性、可用性进行了巨大改进。随着CPU的处理性能以指数的比率在提升、IA架构解决方案性价
比的大大提高,使得IA架构解决方案逐渐进入企业应用的高端服务器平台的领域。基于Windows/Windows
Server的企业应用已经逐渐渗透到传统地基于UNIX的网络应用环境中, 基于Windows/Windows
Server的应用已经与基于Unix的应用同样重要和可靠,甚至在某些应用领域已经成为Unix应用的替代方案。
很多企业已经在基于
Unix和Windows的应用、数据库、商业逻辑等进行了很大的投入,而在这两种应用体系下的应用之间存在广泛的集成关系,企业的职员熟练掌握了其中一
种技术后,还需要花费大量的精力将他的经验和知识转移到另一种技术。SFU提供一种框架,包括在两种环境下协同的工具、执行环境、管理架构,使经验和知识
的转移尽量的简单化
Name Mapping 和 Services for UNIX NFS 支持操作系统技术指南

默认情况下,NFS 协议使用 UNIX 用户标识进行访问控制。这种用户标识通常由用户标识符 (UID) 和组标识符 (GID) 组成。基于
Windows 的 NFS 服务器必须从 NFS 请求中识别出 Windows 名称空间中的请求用户。由于基于 Windows 的计算机和域不
使用 UID 和 GID 进行标识,因此需要从 NFS 请求中包含的 UID 和 GID 到 Windows 用户名进行映射。基于
Windows 的 NFS 客户机需要在转发 NFS 请求之前先将请求的 Windows 用户的用户名映射到 UID/GID。
访问基于 UNIX 的 NFS 资源的 Windows 用户需要提供 UNIX 标识 (UID/GID)。这就要求 Windows 用户使用他们的 UNIX 用户名和密码在 UNIX 网络中验证自己的身份。
User Name Mapping
是 Services for UNIX 的一个组件。该组件提供在基于 Windows 的网络用户名和基于 UNIX 的网络用户名之间进行相互映射
的功能。对于那些在基于 Windows 和基于 UNIX 的域中具有不同身份的用户,这是将两个网络中的用户名关联起来的一种方法。该组件的设计目标
如下:
在网络间共享一套用户名映射。Client for NFS、Server for NFS 和 Gateway for NFS 的多个实例应只使用一套映射。这将使用户在使用任意计算机上的任意 NFS 产品时可以进行一致的访问。
减轻维护提供 NFS 服务或远程 Shell 程序服务 (Remote Shell Service) 的所有 Windows 计算机上的映射管理任务。
使 Windows 用户通过一次注册即可访问基于 UNIX 的 NFS 资源。用户不必记住两套用户名和密码,也不必分别对两个操作系统进行注册。
Services for UNIX 定位
SFU的主要目的要提供对使用者、管理者和开发者克服在 UNIX 和Windows之间的互通性工具,允许企业信息资源在它们之间无缝地分享。对资源的访问取决于企业的安全策略。
SFU 的设计目标是:
    * 无缝的在Windows和 UNIX 网络协议之间数据分享
    * 采用现有的Unix惯例和协议,对Windows和Unix进行远程命令行访问
    * 混杂网络管理, 包括通常的目录管理和用户密码同步
    * 完整支持UNIX脚本, 包括shell,公用程序, 文件联接和根文件系统
    * 为关键企业应用提供高效率的应用开发和执行环境
    * 简单、集成的安装过程
    * 所有的SFU系统管理和维护简单化
SFU和Windows架构:

Services for UNIX特点
    * Interix是基于Windows 内核之上的子系统, 而不是一个Unix的仿真环境,Interix
子系统是一个基于Windows
NT/2000/XP之上的完全整合的POSIX系统。它在Windows操作系统上对Unix应用的编译和运行提供完全的支持,它为Unix开发人员对
运行于Unix之上的应用提供了超过
1,900个API和已有的Shell脚本的完整支持,其他Unix应用从而可以简单快速的重新部署到Interix上。
    * SFU提供UNIX和Windows之间共享文件:
          o NFS客户机
          o NFS服务机
          o NFS网关
    * SFU提供UNIX和Windows之间远程命令行方式进行访问:
          o Telnet 客户机
          o Telnet 服务机
    * SFU提供一致的跨Unix操作系统平台脚本执行的能力:
          o Korn Shell
          o C Shell
          o 超过350常用的UNIX命令和应用
          o 在NTFS 和NFS文件系统下支持文件联接
          o 单一根文件系统结构
    * 采用Microsoft® Windows Active Directory® service(活动目录服务)的NIS服务器功能提供对网络管理功能
    * 在Windows和Unix之间提供用户信息(包括口令)的同步
    * SFU安装采用Windows提供的安装工具。
    * 对SFU的部件和服务的管理采用Windows的Microsoft Management Console (MMC)和Windows Management Instrumentation (WMI)管理工具,或者采用命令行脚本方式管理

(官方文章--End--)
如果这正是你想要的,那就先去上面的下载地址下载,一边下载一边来看这篇文章,节省您宝贵的时间。
下面正式开始吧:
1. 安装:下载SFU安装文件到本地服务器,这个东东有217M呢,幸亏最近网速还好,运行解压,再安装吧,3.5版的不要选择默认安装,反正我第一次默认安装时,是没有通过。累的很郁闷。详细安装步骤如下:
1.1
     将远程Linux机器的/etc/passwd和/etc/group文件复制到本地C:\盘。
1.2
    运行SFU35BETA_EN.exe,这是一个自解压文件,指定一个目录,释放压缩的文件。
    在释放目录中,运行SfuSetup.msi,出现Micorsoft Windows Services for UNIX Setup wizard窗口。
    点击Next,出现Customer Information窗口。
    点击Next,出现License and Support Information窗口,选中“I accept the agreement”。
    点击Next,出现Installation Options窗口。
    选择Custom Installation,点击Next,出现Selecting Components窗口。
1.3
    全部安装就可以了,但估计你会和我一样,出现You can't install both client for unix and
gateway for unix这们的错误信息,那只好把gateway for unix取消掉,事实证明,这个东西,你根本也用不到.
1.4
   点击Next,出现User Name Mapping窗口,选中Password and group files。这一步相当重要。
点击Next,在Password file path and name下的空白栏中输入C:\passwd,在Group file path and name下的空白栏中输入C:\group。
点击Next,出现Installationg Location窗口,选择安装位置。
点击Next,开始安装(约21MB)。最后选择Finish,结束安装。
1.5
     安装后要重 启电脑,痛苦中...安装后程序会自动在管理工具中加入一个MMC,这也是M$软件的一个共性吧,当然你也可以从命令行启动它。
2.设 定NFS Server,从管理工具里打开SFU控制台,或者运行sfumgmt.msc,我这里主要是它的Server for
NFS,所以只用设一下Server for NFS,我没了下它的Logging和Server
Settings,在Logging里可以设值你想要的审计日志,我选了All,保存到L:\SFU\Log\sfusvr.log,如下图:

    在Server Settings的设定里,解释一下Directory cache
size的作用,因为缺省的数据块是1K,这样一个数据块正好放入一个数据包,因为NFS是一种不可靠的协议,丟了一个数据包再发一个数据包是很非常方便
的,但对于当今的网络来讲,性能已经很可靠了,大家把这个值设大一点吧,缺省是128KB,设完后记得Apply:

3. 打开资源管理器,选择你想要共享的目录,右击,再选择Sharing和Security,这时属性页会有一个NFS
Sharing页,如果没有或者是灰色的,可能是你的NFS服务没有启动,到服务控制台启动它下面两个服务Server for NFS和Client
for NFS,我设了一个共享名为Test目录,Encoding为ANSI,因为许多老Unix可能还不支持Unicode,如下图,在权限
perimissions里改为Read-Write,这样NFS的客户端可以放数据到这个目录了。确定推出。

 

4.好了,现在我们可以在服务器上测试一下NFS了,在[开始]-[运行]里敲入CMD,点击OK,在命令行里敲入下面的命令:
    mount testserver:/Test *
   
转到资源管理器看看,是不是多了一个网络盘,咦,这个mount是什么,对于只用过Windows系统的人来说,肯定见得太少了,不过,在Unix系统里
却是基本命令,现在只要知道用就行了,它的作用是把在一个名为testserver服务器上的通过NFS共享的Test目录映射成一个本地盘,*意味着让
系统自动分配一个盘符,更多的应用就留着以后学习吧,
5.现在来设设Unix客户端,这些Unix机器最好是和NFS服务器位于同一子
网,这里假定你的所有机器位于同一网段吧,NFS服务器的IP是192.168.0.1,NFS服务器名为testserver,先Ping一下:
ping 192.168.0.1
嗯,可以Ping通,好的,接着设一下/etc/hosts文件,用vi或者emacs或者你喜欢的文本编辑器打开/etc/hosts文件,在最后加入
一行:
    192.168.0.1    testserver
保存推出,看看Unix机器有没有启动NFS,rpcinfo -p,输出里有没有nfs字样呢,没有的话,启动一下:
# /etc/rc.d/init.d/nfs start 
这前面的#是表示root用户,可以用ksysv命令激活nfs,这样下次系统开机nfs会自动启动。注意,不同的unix发行版本命令sysv可能会一点点不同.
建立一个映射目录:
# mkdir /home/common
在终端里再mount一下: 
# mount testserver:/Test /home/common/
嗯,现在再试试看/home/common能不能用呢,这个目录的物理位置实际在我们的服务器的Test目录
# ifconfig >> /home/common/ifconfig.txt
什么,访问被拒绝,那么回到我们的NFS服务器里,在命令行里打入命令:
cd  T: (假设你先前的Test目录在目录盘下)
ls -l
看是不是有这样的字样输出,这里不关心*****,只看前面的drwx******的东东,
drw-rw-rw- ********************************** Test
如果不是这样,敲入下面的命令:
T:> chmod 666 Test
这里的 chmod 是改变Test目录的授权模式,666表示用户,用户所属组,others都有读写权限。在Unix系统里,权限是下面这样来表示的:
0400 用户可读
0200 用户可写
0100 用户可执行和列出
0040 用户组可读
0020 用户组可写
0010 用户组可执行和列出
0004 others可读
0002 others可写
0001 可以被others执行列出
还有SetGUID更高级的选项就不列出了。有兴趣的可以参看Unix用户手册
再  # ifconfig >>
/home/common/ifconfig.txt试试,到/home/common目录下看看,是不是有ifconfig这个文件,也到我们的NFS
服务器的T;\Test目录下确认下是不是有这个文件,这个是命令相当于windows下的ipconfig /all
>>表示重定向/home/common/ifconfig.txt这个文件,而不是输出到终端。
好了,关于用SFU实现Unix和Windows互访就到这里了,值得注意的是,上面的讲到的Unix和Windows的服务器及客户端是可以互相转换角色的。也就是说在Unix机器上可以设成NFS服务器,Windows的NFS服务器可以设成NFS客户.
SFU文档及下载地址:
http://www.microsoft.com/technet/interopmigration/unix/sfu/default.mspx
另外一款类似的软件Cygwin:
   
http://www.cygwin.com
    Cygwin 是一个在windows平台上运行的unix模拟环境,是cygnus
solutions公司开发的自由软件(现已被Redhat收购)。Cygwin是一个全功能的Win32应用,它是UNIX应用的一个Porting
层,完全兼容于Win32(包括目前使用的Windows
95/98/NT)。该项目启动于1995年,主要目的是将GNU开发工具移植到Win32系统上来
   
Samba官方地址:
   
http://www.samba.org
    关于Samba的使用文章网上多的是,这里就不介绍了。
参考文献
http://www.cnblogs.com/kipling/archive/2006/04/26/385996.html
http://www.it101.cn/list2/Linux/20060929/31088.html
http://popbbs.yesky.com/topic/143/1624156.html
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/30647/showart_240568.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP