1、第五章 文件服务器Samba Windows基于SMB(server message block,服务器消息块)协议来实现文件、打印机以及其他资源的共享。Samba是SMB协议的一种实现方法,是Linux系统文件和打印共享服务器,可以与Linux和Windows客户机实现资源共享。5.2 配置配置Samba服服务器务器文件服务器文件服务器Samba5.3 Samba管理工具管理工具本章小结本章小结5.1 Samba简介简介5.4 从客从客户端访问户端访问Samba5.1 Samba简介 在Linux操作系统中可以通过SSH(secure shell)和NFS(network file syst
2、em)进行数据共享。而SSH和NFS服务在微软的Windows操作系统中不被支持,所以Linux默认不能与Windows系统集成。Samba的建立可以让Linux和Windows系统集成,进行资源共享。Samba可以运行在UNIX、Linux以及IBM System 390、OpenVMS等平台上,实现跨平台的文件、打印机共享。Samba是一个开放源码软件,用户可以方便得到,进行适当配置。Samba的软件体系结构主要包括以下几部分:SMB Server:提供与Windows体系文件与打印共享兼容的服务,从而支持各种SMB客户端,如Windows 9x,Windows NT等。NetBIOS名称
3、服务器:用于支持浏览器服务。通过浏览器服务,客户端可以快速定位服务器,例如可以在Windows系统的网上邻居中看到网络中的文件服务器。SMB客户端:这是一个基于字符界面客户端软件,使用方式与FTP命令类似。TAR工具扩展:使得用户可以使用命令方便地备份远程计算机。一系列的命令行工具:用于支持Samba的管理。Samba服务器包括两个核心守护进程:smbd和nmbd。smbd负责处理客户端的请求,当客户端请求到达Samba服务器时,由smbd检查该请求,并对用户进行身份验证,最终建立连接为客户提供服务。nmbd负责处理NetBIOS名称,可以作为WINS服务器以及WINS代理使用。5.2 配置S
4、amba服务器5.2.1 安装软件包 Red Hat Linux 9中的Samba软件包括五个软件包:软件包软件包 功能描述功能描述 Samba 基本的服务器软件包,用于提供SMB服务 Samba-client SMB客户端软件,可以使运行Linux计算机作为客户机访问Windows服务器或其他Samba服务器 Samba-common Samba的支持软件包,提供基本的配置文件以及相关的支持工具 Samba-Swat 基于Web界面的管理工具,使用户可以比较方便地精确调整Samba服务器 Redhat-config-Samba Samba的图形界面管理工具。使用简单,但在功能上不如Swat工
5、具完善 安装Samba,可以在安装Linux系统时就安装,可以使用光盘安装,步骤如下:(1)将光盘挂载到/mnt/cdrom文件下面,命令如下:rootlinux root#mount/dev/cdrom/mnt/cdrom(2)执行以下命令进入Samba软件包的文件夹目录:rootlinux root#cd/mnt/cdrom/RedHat/RPMS(3)依次执行以下命令安装Samba的各软件包:rootlinux RPMS#rpm ivh samba-2.2.7a-7.9.0.i386.rpmrootlinux RPMS#rpm ivh samba-client-2.2.7a-7.9.0.
6、i386.rpmrootlinux RPMS#rpm ivh samba-common-2.2.7a-7.9.0.i386.rpmrootlinux RPMS#rpm ivh redHat-config-samba-1.0.4-1.noarch.rpm检查Red Hat Linux是否安装了Samba软件包,可以使用如下命令:rootlinux root#rpm-qa|grep Samba显示结果如下,说明已经安装:Samba-common-2.2.7a-7.9.0Samba-client-2.2.7a-7.9.0Samba-2.2.7a-7.9.0RedHat-config-samba-1.
7、0.4-15.2.2 配置文件 Samba的主要配置文件是smb.conf,默认存放在/etc/Samba目录中。Samba服务器在启动时会读取这个配置文件,以决定如何启动,提供哪些服务以及向网络上的用户提供哪些资源。smb.conf文件分为全局配置和共享定义两个部分。全局配置部分包括一系列的参数,用于定义整个Samba服务器的工作规则。共享定义部分包括共享目录和打印机共享,分为多个小节,每一节定义一个共享项目。用户可以根据自己的需要添加共享项目。5.2.3 启动服务器启动服务器命令:rootlinux root#service smb start停止服务器命令:rootlinux root#
8、service smb stop如果修改了smb.conf文件,要重新载入配置文件,运行如下命令:rootlinux root#service smb reload如果服务器配置成功,可以看见如下结果:启动 SMB 服务:确定启动 NMB 服务:确定检查Samba是否启动,命令如下:rootlinux root#pstree|grep mbd结果如下:|-nmbd|-smbd如果出现这两句,表明启动成功。在服务器上设置共享目录:(1)把光标移动至配置文件的最后一行,在下面加入以下配置语句:#This is samba texttext comment=text path=/text Writa
9、ble=yes Public=yes(2)保存配置,然后运行以下命令重启Samba服务器:rootlinux root#service smb restart5.2.4 添加samba用户 Samba 使用Linux操作系统的本地用户账号提供服务,但是需要把系统账号添加到Samba的用户账号数据库/etc/Samba/smbpasswd中才能正常使用。基于安全的考虑,smbpasswd文件中存储的是加密信息,无法使用普通的文本编辑工具(如vi等)进行编辑。有两种方法把Linux用户账号添加到smbpasswd文件中:使用smbadduser命令和使用mksmbpasswd.sh脚本文件。1.使
10、用smbadduser命令 smbadduser命令的参数形式是:unixid:ntid,分别表示Linux系统中使用的用户名和Windows系统中使用的用户名。该用户账号必须存在于Linux系统中,但是不一定存在于Windows系统中。例如,把用户账号tea添加到smbpasswd文件中,可以运行如下命令:rootlinux root#smbadduser tea:tea 2.使用mksmbpasswd.sh脚本文件 使用mksmbpasswd.sh脚本文件可以将所有的Linux系统用户账号一次性添加到smbpasswd文件中,命令如下:rootlinux root#cat/etc/pass
11、wd|mksmbpasswd.sh/etc/Samba/smbpasswd 为了使新加入的smbpasswd中的用户账号可用,还需要为用户账号设置Samba密码,方法是使用smbpasswd命令,例如:rootlinux root#smbpasswd tea/为新用户设置密码5.3 Samba管理工具5.3.1 Swat工具 它是Samba的一个组件,以Web服务的形式提供一个用于配置Samba的图形界面,用户可以使用它通过Web浏览器来配置Samba服务器。Samba-Swat软件包安装成功后,可以使用xinetd服务启动Swat,并且在/etc/xinetd.d中产生一个默认的Swat服务
12、配置文件。通常只需要将该文件中的disable的值改为no,并且重新启动xinetd服务就可以启动swat了。在客户机上打开Web浏览器,在地址栏中输入:http:/sambasername:901或http:/samba服务器的IP地址:901就可以打开Swat的管理页面。除了配置Samba服务器,Swat还提供了实时查看Samba服务器工作状态的方法。在网页中单击“STATUS”图片链接,在打开的窗口中,可以看到用户与Samba服务器的活动连接,以及用户对共享的访问和用户打开的文件。5.3.2 其他管理工具 Samba提供了几个命令行工具如smbstatus、nmblookup。1.smb
13、status smbstatus是一个简单的工具,可以提示显示当前的Samba服务器上所有活动连接状态,可以不加任何选项运行,也可以使用以下几个选项:-b:只输出简要信息。-d:输出详细信息。-L:只列出锁定的内容。-P:只列出smbd进程。-S:只列出共享的内容。2.nmblookup nmblookup用于检查NetBIOS名称解析。可用选项有如下几个:-B:向指定的广播地址发送NetBIOS名称查询。-U:向指定的主机发送NetBIOS名称查询。-A:查询一个IP地址。-r:把UDP端口号设置为137,并在此端口发送/接收UDP数据包。-T:反向查询DNS,以得到指定IP地址的DNS名称
14、。5.4 从客户端访问Samba5.4.1 从Windows客户端访问Samba服务器 从Windows客户机访问Samba服务器的共享目录或打印机,需要先安装“Microsoft网络客户端”。打开“本地连接属性”对话框,在“此连接使用下列项目”列表框中查看计算机是否已经安装了“Microsoft网络客户端”,如果没有安装,可以选中该项后单击“安装”按钮,进行安装。从Windows客户即访问Samba服务器共享资源的方法非常多,主要包括以下方法:通过网上邻居直接找到Samba服务器进行访问。使用Windows搜索工具搜索要访问的Samba服务器。在Windows资源管理器的地址栏或者“开始”菜
15、单的“运行”中,输入要访问的共享资源的UNC路径进行访问。映射网络驱动器。5.4.2 从Linux客户端访问Samba服务器 Samba提供了命令行工具smbclient用于访问SMB/CIFS服务器的共享资源。smbclient命令验证对服务器和服务的访问是否有效,移动、修改文件和目录,在远程打印机上打印以及完成从NetBIOS名称到IP地址的转换。smbclient是一个命令行形式的客户端工具。该命令的语法格式为:smbclient servicename password options 其中servicename即为要访问的共享资源,表示方法为”/ServerName/ShareNam
16、e”。Password是提供给服务器用于身份验证的密码,如果不提供该选项,则用户会被提示输入密码。Options为选项,一般使用的选项是“-U username”,用于说明以哪个账号登录到服务器。可以通过“man smbclient”命令查看有哪些options。使用smbclient L localhost命令可以列出目标主机的共享资源,如下所示:rootlinux root#smbclient L localhost本章小结 Samba服务器用来实现Linux的文件和打印共享。在Linux操作系统中配置Samba服务器,可以实现与Windows系统的资源共享。Samba服务器的核心进程是smbd和nmbd,smbd用于处理资源共享访问请求,nmbd使客户机可以浏览Samba服务器。配置Samba服务器的主要方法是定制smb.conf文件,该文件包括两大部分:全局配置和共享定义。Samba-Swat软件包提供了简化Samba服务器配置的方法。习题5简答题简答题1Samba的软件体系结构中用来提供文件与打印共享的服务是什么?2Samba服务器的两个核心进程是什么?默认的安全级别是什么?各个安全级别有什么不同之处?3如何配置Samba服务器?如何使用smbclient访问SMB服务?