Unix和Windows共存的异构环境下互访的又一方便方法
在现今的企业环境中,既存在广泛在办公环境中使用的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$的官方网站下载到,也可从文章最后的连接快速导航到下载地址,不过,要成功下载,必需要有一个微软的Passport认证,如果你有MSN或者Hotmail那是再好不过的事了,要不你不得不注册一个。
下面先来了解下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提供一种框架,包括在两种环境下协同的工具、执行环境、管理架构,使经验和知识的转移尽量的简单化
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版的可以选择默认安装就可以了。安装后要重启电脑,痛苦中...安装后程序会自动在管理工具中加入一个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为GB2312-80,因为许多老Unix可能还不支持Unicode,如下图,在权限perimissions里改为Read-Write,这样NFS的客户端可以放数据到这个目录了。用户选择“匿名”确定推出。
4.好了,现在我们可以在服务器上测试一下NFS了,在[开始]-[运行]里敲入CMD,点击OK,在命令行里敲入下面的命令:
mount testserver:/Test *
转到资源管理器看看,是不是多了一个网络盘,咦,这个mount是什么,对于只用过Windows系统的人来说,肯定见得太少了,不过,在Unix系统里却是基本命令,现在只要知道用就行了,它的作用是把在一个名为testserver服务器上的通过NFS共享的Test目录映射成一个本地盘,*意味着让系统自动分配一个盘符,更多的应用就留着以后学习吧,
此外:在管理工具-》本地安全设置-》本地策略-》安全选项:
有关匿名的设置中:网络访问:允许匿名SID/名称 转换设置为“启用”
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
最好把/etc下的passwd文件和group文件copy到nt上,同时在下图中设置
保存推出,看看Unix机器有没有启动NFS,rpcinfo -p,输出里有没有nfs字样呢,没有的话,启动一下:
好像IBM不需要启动NFS服务
# /etc/rc.d/init.d/nfs start
这前面的#是表示root用户,可以用ksysv命令激活nfs,这样下次系统开机nfs会自动启动。注意,不同的unix发行版本命令sysv可能会一点点不同.
建立一个映射目录:
# mkdir /home/common
在终端里再mount一下:
# mount testserver:/Test /home/common/
(要是不想mount了,取消的名令是 umount)
嗯,现在再试试看/home/common能不能用呢,这个目录的物理位置实际在我们的服务器的Test目录
# ifconfig >> /home/common/ifconfig.txt
什么,访问被拒绝,那么回到我们的NFS服务器里,在命令行里打入命令:
cd T: (假设你先前的Test目录在目录盘下)
ls -l
看是不是有这样的字样输出,这里不关心*****,只看前面的drwx******的东东,
drw-rw-rw- ********************************** Test
如果不是这样,敲入下面的命令:
T:> chmod 666 Test
#chmod 777 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的使用文章网上多的是,这里就不介绍了。
在aix环境下,启动nsf 用下面的命令
startsrc -g nfs
注意:1、安装好sfu 后,如果在共享页面没有出现NSF共享,则说明SFU没有启动,如果SFU启动失败,可以查看服务,Server for NSF 服务应该启动。
2、如果权限不够,可以从安全设置中,把匿名用户加上,使之权限等同于exveyone。
3、需要重新启动机器。 有时还需要修改本地安全策略的一些属性(仍待研究)
首先把/trakcare/web 目录复制到小机上
1:#mount 172.16.1.17:/scripts_gen /trakcare/web/scripts_gen
172.16.1.17 webserver地址
2:#umount /trakcare/web/scripts_gen
3:察看某机可安装的设备
showmount –a 192.168.1.1
4:在webserver安装SFU完成后,使用命令行mount到本机作测试,如:
mount 192.168.1.18:/test * (系统会自动分配一个盘符),
5:重新启动安装SFU的计算机
本文转自秘飞虎51CTO博客,原文链接: http://blog.51cto.com/mifeihu/402510,如需转载请自行联系原作者