当前位置:Linux教程 - Linux - 双机互连--LINUX&WIN98

双机互连--LINUX&WIN98



        

    原作者:范春梅 李鲲程
    来源:昆明169


    有些Linux开发设计人员更习惯Win 9x中的编辑环境,每次编完程序后要把程序FTP到服务器端再进行测试,如果有问题就要改完再FTP过去,这样很麻烦,如果能象Win 98组织的局域网那样可以轻易地从网上邻居实现资源共享就太方便了。为实现Linux和Win 98之间的资源共享,Linux提供了一套资源共享程序Samba,它不但适用于局域网,也适用于双机对接的对等网,这就为编程和系统测试提供了方便。但它也有一定的局限性,它不允许系统root从Win 98访问Linux,只能以普通用户的身份进行访问,通过这种方法创建的文件和路径只具有644(rw-r--r--)权限,也就是其他人只能读不能写,这虽有利于系统安全,但不利于文件的完全共享。

      一、Linux端的设置

      Samba的运行与以下几个文件的配置有关:
      1./etc/services
      ……
      netbios-ns 137/udp
      ……
      netbios-ssn 139/tcp
      ……
      2./etc/inetd.conf
      这个文件用于加载系统启动时要运行的一些后台程序,Samba可以通过这个文件来启动,但要有下面这两行:


    netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
    netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd


      inetd.conf文件格式如下:
      〈服务类型〉 〈sock类型〉 〈协议〉 〈标识〉 〈用户〉 〈服务程序路径〉 〈参数〉
      但有些Linux的启动方法是使用/etc/rc.d/rc. Samba或/etc/rc.d/rc.local来启动,所以/etc/inetd.conf中的上面两行被(用#)注释掉了或根本没有这两行(RedHad 6.0中就没有这两行)。
      3./etc/rc.d/rc.samba或/etc/rc.d.rc.local
      这是Samba的真正启动位置,在其中加入下面几行:
      if [ -f /usr/sbin/smbd -a -x /usr/sbin/nmbd ] ; then
       /usr/sbin/smbd -D
       /usr/sbin/nmbd -D
      fi
      说明:-f 参数表示先判断文件是否存在,如果存在则执行下面的语句。
      4./etc/lmhosts
      它的功能和/etc/hosts相似,是用来把一台计算机和其名称对应起来的,文件的格式是:
      IP地址 计算机名
      例如:
      127.0.0.1 server
      192.168.0.22 lkch
      5./etc/smb.conf
      这是Samba资源共享的设置文件,包括两部分:Global Setting、Share Defination,其中“#”注释说明部分,“;”注释配置内容,具体设置方法见表1。
      这个文件配置好后用户可以用下面的命令测试一下配置参数是否正确:
      shell〉testparm
      Load smb config files from /etc/smb.conf
      Processing section \"[homes]\"
      Processing section \"[printers]\"
      Processing section \"[apache]\"
      Processing section \"[data]\"
      Loaded services file OK.
      Press enter to see a dump of your service definitions
      ……
      用户也可以用下面的命令察看资源共享的情况:
      shell〉smbclient -L localhost
      Domain=[SERVER] OS=[Unix] Server=[Samba 2.0.3]
      Sharename Type Comment
      ------ ---- --------------------
      apache Disk Temporary file space
      data Disk Temporary file space
      IPC$ IPC IPC Service
       (Samba Server)
      Server Comment
      --------- -------
      SERVER Samba Server
      Workgroup Master
      --------- -------
      MIIPTISI PTSNPDC
      PTISI PTISIPDC
      除了上述的两个程序外,还有一些有用的程序:
      smbstatus:显示Samba Server 的连接状态。
      smbpasswd:改变Samba Server的用户密码。
      smbmount:Samba文件系统装载程序,它使Linux可以使用Win 98的共享资源,但是只能使用在lmhosts文件中指明的计算机的共享资源。而且在不同版本的Linux中这条命令的语法还有些差别,如在Redhat Linux6.0中为
      Shell〉 smbmount \"\\\\lkch\\lkch\" -c \mount /mnt/lkch\
      Added interface ip=192.168.0.3 bcast=192.168.0.255 nmask=255.255.255.0
      Server time is Tue Apr 4 00:21:08 2000
      Timezone is UTC-4.0
      security=share
      
      注意:因为在Linux中“”是转意字符,因此字符串中“\\”表示实际的“”,-c参数表示执行独立的系统命令。
       smbumount:Samba文件系统卸载程序。
      Shell〉smbumount /mnt/lkch
      *捷径*
      如果您和我一样不喜欢在配置文件上改来改去,那么在RedHat中给您提供了一种很好的方法来配置Samba服务,运行netconf(它是Linux进行网络配置的程序)。在图1界面中选择Samba File Server,在图2中default是基本共享设置,Default setup for users\s home是用户主目录共享设置,Default setup for printers是打印机设置,Disk shares是共享目录设置,每一项设置基本相同,只要根据其要求填写即可(见图3)。设置完毕后返回界面见图4,设置生效。

      图1

      二、Win 98端的设置

      1.网络设置
      用鼠标右键点网上邻居,选“属性”就会弹出图5所示的窗口,添加网络适配器→网卡驱动程序;添加Microsoft TCP/IP协议,在Linux中几乎一切网络通讯都要用到TCP/IP协议;然后再添加NetBEUI,这是Win 98系统中实现资源共享必不可少的协议;要实现文件和打印机的共享,还要添加文件和打印机的共享服务。必要的协议和服务添加完后,重新启动计算机使设置生效。

      图2
      2.Win 98注册表的更改
      在HKEY_LOCAL_MACHINE

      图3
      SystemCurrentControlSet
      ServicesVxDVNETSUP中增加一个键名为EnablePlainText
      Password、类型为DWORD的主键,键值设为1,重新启动计算机使设置生效。这样设置后,当用户从网上邻居访问 Linux时,Linux就会把Win 98的登录用户名、口令作为系统用户来验证,通过则可以访问,否则拒绝访问。为此还要做下面的设置。

      图4
      3.Win 98用户名口令的设置
      Win 98登录的用户名和口令必须与Linux中的用户名口令相一致,换句话说就是要在Linux中增加一个用户,它的用户名和口令与Win 98的相同。

      图5
      做了上面的设置后,Win 98就可以从网上邻居访问Linux的共享资源了。
      
      
      表1
      #====Global Setting====
      [global]
      workgroup = groupname #指定工作组
       serverstring = Samba Server #SambaServer的说明
       hosts allow = 192.168.0. 192.168.1. #允许访问Samba Server的用户的IP地址
       guest account = guest #Samba Server 的guest在Linux系统中的用户名为:guestx
      guest ok = yes #允许用户以guest 身份访问Samba Server
       log file = /var/log/samba/log.%m #log文件的记录位置是/var/log/samba/,文件名是log.用户名
      security = user #安全级别
      ; password server = PTSNPDC #指定密码验证主机,如果这一项有效,security必须设置为server
      #==== Share Definitions ====
      [homes]#用户的主目录,共享给用户自己使用
       comment = Home Directories
       browseable = no #其他用户不可以浏览
       writable = yes #用户自己可写
      [apache]#共享内容
       comment = Share file space
       path = /usr/local/apache/htdocs #共享路径
       valid users = zypan lkch zcx zjian zhaoxinxin shengw #允许访问这一路径的用户
       read only = no #是否只读
       public = yes #是否共享
      [printers]
      comment = All Printers
       path = /var/spool/samba #打印机队列,用户需自己建立目录
       browseable = no
      guest ok = no 是否让guest账号使用
      writable = no
      printable = yes

    发布人:netbull 来自:奥索网