基于Samba的Linux与Windows互访

更新时间:2024-04-03 作者:用户投稿原创标记本站原创 点赞:5527 浏览:19690

摘 要:本文介绍了基于Samba的Linux与Windows互访研究,对Samba的安装与配置进行了探讨,分析了SWAT工具的技术特点,对启动与测试Samba进行了说明.

关 键 词 :Samba;Linux;Windows;互访研究

中图分类号:TP39 文献标识码:A

1.概述

随着因特网的发展,计算机得到大量的普及,而计算机上所搭载的操作系统也取得了长足的进步.在当今市面上,操作系统以Windows和Linux系列居多.作为商业上最成功的操作系统,Windows系列操作系统因其可靠性、安全性和良好的操作性为广大用户所认知并接受.Linux操作系统是成长最快的系统,随着对操作性、易用性的改进,它也逐步得到用户的青睐,与Windows系统的差距逐渐缩小.相较于封闭的Windows系统而言,Linux系统更加开放,它开放源代码的理念也更加受到广大IT工作者的认同.因为开源性能优秀且低廉,Linux系统在怎么写作器市场取得了很大的市场份额,并被看作是一个理想的怎么写作器操作系统.由于Windows和Linux在性能上各有千秋,双方市场发展侧重点也不同,因此在企业和公司内部往往存在大量的Windows与Linux系统,而对于Windows与Linux系统的相互访问和信息交换的需求也越来越多.如何将这两种异构操作系统统一管理并实现信息互访是一个非常有意义的研究课题.

操作系统间信息互访技术一直是研究热点,Windows系列操作系统利用CIFS(Common Inter File System)来实现,即网上邻居.网上邻居将局域网上的其它计算机显示出来并分享给用户.Linux系统通过NFS(Network File System)将其它计算机所分享的目录挂载进来,也可以完成Linux系统之间的相互信息访问.Windows与Linux系统之间的信息互访则相对复杂,虽然利用TCP/IP协议栈中的超文本传输协议HTTP(Hyper Text Traner Protocol)、文件传输协议FTP (File Traner Protocol)和 网 络 电 传TELNET (Teletype over the Network)等应用层协议也可以在Linux/Windows系统中构建相应的怎么写作器,向Windows 、Linux系统提供基本的资源共享怎么写作,但目前最流行的异构操作系统共享技术是Samba.利用Samba,Linux 用户就可以进入到 Windows 主机,可以在 Windows主机中创建和使用文件共享;同时,利用 Samba 怎么写作器还可以让 Windows 用户像访问 Windows 主机一样通过网上邻居来访问 Linux 怎么写作器.

2.关于Samba

Samba是由澳大利亚国立大学计算机科学实验室 Andrew Tridgell开发,其初衷是实现异构操作系统间的文件和打印机共享.随着时间的发展,Samba被越来越多的公司和企业所认同.利用Samba,可以非常便利的将Linux操作系统的文件目录与打印机等设备共享给Windows系统使用,同时也可以在Linux系统下访问Windows系统,进入Windows系统创建文件,备份Windows系统下的资源,共享Windows系统的打印机.

Samba的核心是B(Server Message Block)协议.B通信协议是微软和英特尔公司在1987年制定的协议,主要是作为微软Windows系统的通讯协议,用于Windows系统间共享文件、打印机等.而Samba则是通过逆向工程创建的与B兼容的软件,使得非Windows操作系统也能使用它.B是一种客户端/怎么写作器协议,以请求/响应方式作答,当客户端发出请求后,请求经过网络传送到怎么写作器端,怎么写作器端对这些消息进行解释,然后响应客户端.通过 B 协议,客户端应用程序可以在各种网络环境下读、写怎么写作器上的文件,以及对怎么写作器程序提出怎么写作请求.此外通过 B 协议,应用程序可以访问远程怎么写作器端的文件、打印机、邮件槽(mailslot)、命名管道(named pipe)等资源.

虽然常被用于局域网环境,但在 Inter环境下也可以使用Samba.通过 NetBIOS over TCP/IP技术,Samba主机可以与全世界的电脑分享资源.


启动Samba后,两个重要的后台守护进程会被开启:(1)bd 这个进程主要用来管理Samba主机分享的目录、档案和打印机等,并负责建立会话,对到达局域网上的消息块进行处理.当到达的消息块指定为一个文件,则该共享资源是一个文件;如果是一条打印机发送消息,则访问一台打印机.它主要利用TCP协议来传输数据,可靠安全,开放的端口为139和445.(2)nmbd 这个进程的主要任务是负责管理工作组,并对Samba怎么写作器的NetBIOS名字进行解析,将共享资源列表提供给Windows的网上邻居,使Samba怎么写作器的共享资源能够显示在Windows的网上邻居中.它主要利用UDP协议开启137、138端口来负责怎么写作器名的解析工作.

Samba怎么写作器应用相当广泛,可以依照不同的网域联机方式和不同的用户管理方式来进行分类.最常见的局域网联机模式有两种:(1) 对等模式(peer to peer),在对等模式下,局域网中的每部计算机地位相等.它们都可以在自己的计算机上管理与,同时每部计算机都可以独立运作,只是通过网络将所有的计算机连接起来而已.这种架构在小型的局域网中应用的比较多.它的好处是每部计算机都可以独立运行,不受其它计算机的影响,但无法应用在大规模的局域网里,因为在每台计算机上都要存储所有的用户名与.(2) 主控模式(domain model),在该模式下,所有的与都放置在一部主控怎么写作器上面,当用户想要访问任何计算机时,均需要在屏幕上面输入相应的用户名和,只有通过主控怎么写作器认证后,才能给予权限访问该计算机.不同的用户具有不同的计算机访问权限.这种架构比较适合大规模的企业架构,当系统管理员要管理员工对计算机的使用权限时,只需要对主控怎么写作器进行修改即可,不需要对网络下的每部计算机都进行改动.对于系统管理员来说,使用这种架构来管理资源,他的工作量会减小许多,且网络的可靠性会增加很多. 3 Samba的安装与配置

一般来将,Linux的各个发行版本里都包含Samba软件包.当然,也可以到.samba.网站上下载最新的源代码并在本地机器上编译.在Linux上可以使用入如下命令来安装:sudo apt-get install samba.apt-get命令适用于deb包管理式的操作系统,可以自动的从互联网的软件仓库中搜索、安装、升级、卸载软件,非常方便.

Samba安装好后,会在/etc目录下生成一个Samba子目录,而该Samba子目录下也有一个默认的Smb.conf文件.该文件就是Samba的配置文件,Samba的主要配置信息都放在这个文件里.在该配置文件下,有多个不同的配置字段,例如[global]、[homes]、[printers]等.[global]字段主要用于配置Samba怎么写作器的全局参数,包括工作组、字符编码的显示、登录文件的设定、是否使用等.[homes]字段用于配置Samba怎么写作器上用户自己的共享主目录,当用户登录Samba成功后,Samba怎么写作器就会建立共享资源并将该资源指定到用户的主目录上.[printers]字段则主要用于设定共享打印机时的一些参数.在Smb.conf配置文件中,有一部分配置选项被注释掉了,不会起到任何作用.另外一些配置选项选取默认值时即可让Samba正常工作起来.在对Samba进行配置时,最重要的参数是security.Security可以选择三种设定值,分别为share、user、domain.它们分别代表:

share: 在这种模式下,共享的数据并没有设置,任何用户都可以访问它,虽然便捷但极不安全.

user: 这种模式下,使用Samba怎么写作器本身的数据库.任何用户访问Samba的共享目录时,Samba怎么写作器都会首先去确认该用户是不是合法用户,以决定是否允许访问.

domain: 这种模式下,使用PDC(主域控制器)来完成认证.如果选择了这个设定值,还需要提供[password server 等于 ip]的设定值.

下面提供一个示例:

[global]

workgroup 等于 WORKGROUP

display charset 等于 UTF-8

unix charset 等于 UTF-8

Security 等于 user

dos charset 等于 cp936

bios name 等于 sambaok

server string 等于 sambaok test server

hosts allow 等于 192.168.2.1

log file 等于 /var/log/samba/samba.log

max log size 等于 50

encrypt passwords 等于 yes

b password file 等于 /etc/samba/bpasswd

load printers 等于 yes

[homes]

ment 等于 Home Directories

browseable 等于 no

writeable 等于 yes

[share]

ment 等于 My Share

path 等于 /home/user/share

public 等于 yes

writable 等于 yes

valid users 等于 aa

create mask 等于 0700

directory mask 等于 0700

force user 等于 nobody

force group 等于 nogroup

printable 等于 no

ailable 等于 yes

browseable 等于 yes

[printers]

ment 等于 All printers

path 等于 /usr/spool/samba

browseable 等于 no

guest ok 等于 no

writable 等于 no

printable 等于 yes

配置信息分为四部分:第一部分是全局参数区,这里主要设置了Linux、Windows端的显示字符集,并将Samba怎么写作器的安全模式配置成user模式.第二部分是用户主共享目录设置区,这里将其设置成只有登录用户才能看到自己主目录的模式,增强安全性.并赋予了用户对该共享目录的写权限.第三部分是共享目录的设置,包括目录路径以及写权限等.第四部分完成对打印机共享的设置.

可以使用testparam来测试该配置文件.testparam是Samba套件提供的一个命令工具 ,可以自动对配置文件进行测试.如果配置文件有语法错误,它就会显示出来,如果没有错误,就会列出可装载的怎么写作项.对sam.conf进行任何改动后,最好都使用testparam进行一下测试.

对sam.conf完成配置后,需要为Samba怎么写作器添加用户.因为在这里将Samba的安全模式设置成user,所以Samba用户必须首先是Linux系统用户.在Linux系统下,以root身份登录,使用命令adduser b添加系统用户.然后使用命令bpasswd –a b将该用户添加到Samba怎么写作器中,并设定用户的. 4 使用SWAT工具

SWAT(Samba Web Administration Tool)是Samba的图形化管理工具.不妨通过浏览器利用swat工具来设置Samba.在swat中每一个Samba参数都有相应的帮助文件或解释文件,很容易学习.SWAT工具嵌套在xid超级守护进程中,要通过启用xid进程来启用swat.因此要先安装xid工具包,然后安装swat工具包.

安装好swat工具包后,编辑其配置文件:

service swat

{

port 等于 901

# only_from 等于 127.0.0.1

only_from 等于 0.0.0.0

user 等于 root

server 等于 /usr/sbin/swat

# disable 等于 yes

disable 等于 no

}

将“only_from”设置为0.0.0.0而不是127.0.0.1,这样怎么写作器就可以监听所有的来访IP.将disable设置成no而不是yes,这样swat子进程就可以随xid超级守护进程一起启动.swat默认使用tcp901端口.

通过web来配置Samba,默认使用root进入.swat的执行程序默认在/usr/sbin目录下.

因为swat是xid的子进程,所以只要启用了xid,那么swat也就会伴随xid启动.使用命令service xid restart.

Swat启动后,就可以通过Web浏览器登入swat配置界面.由于swat的默认端口是901,所以通过Web登入swat的地址是http://192.168.0.1:901.其中该IP地址为Linux怎么写作器的IP地址.在用户登入后,会弹出一个提示框,要求用户输入登陆的用户名和.只有登录用户名和正确,才能登入swat配置界面.默认的用户是root,是登入Linux怎么写作器的,这些都可以在swat的配置文件中定义.

进入swat配置界面后,可以看到有8个配置选项,每个选项可以配置不同的功能.HOME主要是Samba的相关程序及文件说明,GLOBALS用于设置Samba的全局参数.SHARES配置Samba怎么写作器的文件共享参数.PRINTER设置Samba怎么写作器的打印机共享参数.WIZARD是Samba配置向导.STATUS用于查看和设置Samba的状态信息.VIEW界面可以查看Samba的文本配置文件,即b.conf.PASSWORD管理Samba用户的设置,可以修改,新建删除用户.

5.启动与测试Samba

Samba的启动非常简单,打开系统的终端窗口,输入/etc/init.d/bd restart 命令,Samba就会被启动.同理,输入/etc/init.d/bd stop 命令,Samba就会被停止.Samba启动后,如果运行正常,Linux与Windows就可以互相访问了.

5.1 Windows访问Linux怎么写作器共享资源

在Windows下访问Linux怎么写作器共享资源需要通过Windows系统的网上邻居来实现.Windows系列操作系统的网上邻居的主要功能是通过 B 协议来传输文件数据,并且网上邻居具有自己的主机名称解析系统.

首先,进入Windows系统,进入“网上邻居”,找到Linux主机所在的工作组,双击进入该工作组,就会看到该Linux主机.

双击该主机,就会弹出一个如图1所示的登录窗口.在该窗口输入登录用户名与.这里使用的登录名与是之前在Samba怎么写作器中所添加的.必须与其一致,否则会在登录时提示登录用户名和错误.

登录成功后就能看到该Linux主机上的共享主目录与其他的共享资源了.如图2,其中,share为用户登录后的主目录,该目录只有具有访问权限的用户才看的到.

5.2 Linux访问Windows怎么写作器共享资源

想要在Linux下访问Windows怎么写作器上的资源,必须借助几个Samba套件提供的工具:

(1)nmblookup

Nmblookup通过查询广播地址,能够显示一台主机的NetBIOS主机名,通常显示的结果是一个IP地址.因为主机存在虚拟IP地址的关系,有时候也会显示多个IP地址.在一个局域网中,一台主机只能拥有一个NetBIOS主机名,这样,通过nmblookup命令查到IP地址后 ,就可以与其进行连接.Nmblookup命令也可以用来查询所有在局域网中活动的主机IP.

(2)bclient

Smbclient主要用来显示或者访问共享文件夹.Linux客户端访问Windows怎么写作器上的共享文件主要通过两种方法:1)用mount命令挂载Windows中的共享目录到本地磁盘,命令如下:mount –t bfs –o username等于user,password等于pwd //192.169.1.1/share /localdir ;2)使用bclient命令.Smbclient命令由Samba套件提供,用到的主要参数包括-L、-o、-U等.命令是bclient //serverIP/share –u name password.需要注意的是最好使用对方怎么写作器IP来进行登录,这样会更加快速.

在Linux下访问Windows怎么写作器上的共享资源时,首先使用nmblookup命令查询Windows主机名所对应的IP地址.查询到IP地址后使用ping命令探测该Windows主机是否与Linux主机网络互通.如果连接超时,通常是防火墙的设置问题,建议最好关闭Linux与Windows端的防火墙.在探测网络为相通后,就可以开始访问.本文使用bclient命令.输入命令bclient //192.168.2.103/share –U username后,出现如图3界面,输入,就登录了远端Windows系统的共享目录,如图4.在该目录,可以使用ls命令来显示共享目录的所有文件,也可以使用cd命令跳转到其他的共享目录,如图5.