第10章-Samba服务器-Linux操作系统教程与实训电子教案课件_第1页
第10章-Samba服务器-Linux操作系统教程与实训电子教案课件_第2页
第10章-Samba服务器-Linux操作系统教程与实训电子教案课件_第3页
第10章-Samba服务器-Linux操作系统教程与实训电子教案课件_第4页
第10章-Samba服务器-Linux操作系统教程与实训电子教案课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章Samba服务器教学提示:

SMB协议是实现不同计算机之间共享文件和打印机的协议,Samba服务器是SMB协议在Linux系统的实现。本章涉及的内容主要有Samba服务器简介,Samba服务器安装与运行控制,Samba服务器配置。教学要求:学习完本章后,将了解SMB协议,能够在UbuntuLinux系统安装与运行Samba软件,针对实际情况配置Samba服务器。Samba服务器简介

Linux和Windows系统是目前比较流行的操作系统,在许多地方需要相互之间的访问和共享。要实现它们之间的相互访问,主要有两种方法:1)简单的通信方式:利用Telnet、FTP、HTTP服务实现网络间的通信;2)SMB协议:通过在Linux主机上安装支持SMB协议的服务器(Samba服务器)和客户端软件,可以方便的实现与Windows系统之间的通信。SMB(servermessageblock)协议是Microsoft公司基于NetBIOS(NetworkBasicInput/OutputSystem,网络基本输入输出)实现的一套网络文件/打印服务系统,是实现不同计算机之间共享文件和打印机的协议。

(1)如果在Windows系统之间实现了SMB协议,资源之间的共享就可以通过网上邻居实现。(2)通过在Linux主机上安装支持SMB协议的服务器(Samba服务器)和客户端软件,可以方便的实现与Windows系统之间的通信。1.SMB协议的作用在Ubuntu安装Samba软件非常简单,有命令安装与图形安装两种。1.图形安装—使用新立得软件包管理器使用新立得软件包管理器安装Samba软件过程如下。(1)点击“系统”-“系统管理”-“新立得软件包管理器”,打开新立得软件包管理器,在单击打开的窗口中上方的“搜索”按钮,查找名为samba的软件包,结果如图10.2所示。查找的结果显示在右侧窗口,在右侧窗口中软件包名称前为实心的表示系统已经安装了改软件包,由图发现Ubuntu系统还没有安装samba软件包。安装Samba服务器(2)在右侧窗口选中名为samba的软件包,选中右键菜单中的“标记以便安装”选项,如图10.3所示。(3)系统检测软件包依赖关系,将同时安装其它的相关软件包,以便符合依赖关系,如图10.4,这里将提示附加安装samba-commom软件包,单击“标记”按钮继续。(4)安装程序再次回到“新立得软件包管理器”主界面,并且表示所有安装samba必要的软件包,如图10.5所示。单击窗口中上方的“应用”按钮。(5)接着,如图如图10.6所示。安装程序要求再次确定安装的内容摘要。如果确定无误,单击“应用”按钮继续。(6)安装程序将开始下载所需要的软件包,如图10.7所示,此时需要等待一段时间,具体与所需软件包的大小与当地网络速度而定。(7)下载完所有samba相关软件包后,系统即进行安装所有软件包过程。2.命令安装samba软件使用这一命令将安装三个软件包samba、samba-common与smbclient。samba:服务器软件包,这个包主要包含了SAMBA的主要运行程序(smbd及nmbd)、SAMBA的文件档(document)及开机预设选项等;samba-common:根据依赖关系选定的,这个套件则主要提供了SAMBA的主要设定档(smb.conf)、smb.conf语法检验的测试程序(testparm)等等;smbclient:客户端软件包,这个包则提供了当Linux做为SAMBAClient端时,所需要的工具指令,例如挂载SAMBA档案格式的执行档smbmount等。提示:为了叙述方便,以后安装软件将以命令安装为主。student@Ubuntu:~$sudoapt-getinstallsambasmbclient┆将会安装下列额外的软件包samba-commonsmbclient┆下列【新】软件包将被安装:samba、samba-commonsmbclient┆Samba服务器的运行控制

Samba服务有两个守护进程,分别为SMB和NMB,Ubuntu系统中NMB默认已经运行,可以通过输入下面命令来控制Samba运行。(1)启动服务。student@Ubuntu:~$sudo/etc/init.d/sambastart(2)要停止服务。student@Ubuntu:~$sudo/etc/init.d/sambastop(3)要重新启动。student@Ubuntu:~$sudo/etc/init.d/sambarestartSamba服务器的运行控制

(4)除此之外,还可以用下面的命令来启动脚本:student@Ubuntu:~$sudoservicesambastart(5)重新加载配置文件。student@Ubuntu:~$sudo/etc/init.d/sambareload(6)如果想在Ubuntu系统启动的时候让samba服务自动启动,可以通过下面的设置实现:student@Ubuntu:~$sudorcconf在弹出的界面选择samba服务器即可。如果安装了图形化启动管理工具bum,直接点击“系统”―“系统工具”―“BootUp-Manger”也可设置开机启动samba。Samba服务器配置 Samba服务器也是依靠配置文件来实现特定功能的,它的配置文件是/etc/samba/smb.conf。对于samba服务器的配置,可以直接用文本编辑器创建配置文件smb.conf。smb.conf的语法

以下是smb.conf文件的一个简单示例:[global]workgroup=MYGROUPnetbiosname=linuxserverstring=sambaServerhostsallow=27.security=userencryptpasswords=yessmbpasswdfile=/etc/samba/smbpasswdunixpasswordsync=Yes[homes]comment=HomeDirectorybrowseable=nowritable=yesvalidusers=%Screatemode=0664directorymode=0775[printers]browseable=noguestok=yesprintable=yespasswords=yessmb.conf文件有一个清晰的语法结构,该文件被分成几部分,每一部分都包括几个选项,用来定义Samba输出的共享及其详细操作。每一部分都由一个被方括号括起来的标识开始(例如,[global]、[home]、[printers]),各个部分包括多种选项,每一个配置选项或是一个全局选项(影响或控制整个服务器),或是一个服务选项(影响或控制服务器提供的某项服务)。[global]workgroup=MYGROUPnetbiosname=linuxserverstring=sambaServerhostsallow=27.security=userencryptpasswords=yessmbpasswdfile=/etc/samba/smbpasswdunixpasswordsync=Yes[homes]comment=HomeDirectorybrowseable=nowritable=yesvalidusers=%Screatemode=0664directorymode=0775[printers]browseable=noguestok=yesprintable=yespasswords=yesglobal部分定义的选项用来控制Samba的总特性。除global部分外,其他每一部分都定义了一个专门的共享资源,包括文件共享资源、打印共享、光驱共享等。在每一配置部分,可以使用下面的语句来指定一个选项:

name=VALUEname可以是一个单词或者用空格隔开的多个单词。VALUE可以是布尔值(ture或false;yes或no;1或0)、数字或字符串。在smb.conf文件中,注释以分号开头,可以单独一行,也可以跟在一条语句之后。通过在一行的最后一个字符后加反斜杠“\\”可以将一行分成多行。每一部分的名字和选项都不区分大小写,例如,选项browseable=yes与browseable=YES是完全等价的。[global]workgroup=MYGROUPnetbiosname=linuxserverstring=sambaServerhostsallow=27.security=userencryptpasswords=yessmbpasswdfile=/etc/samba/smbpasswdunixpasswordsync=Yes[homes]comment=HomeDirectorybrowseable=nowritable=yesvalidusers=%Screatemode=0664directorymode=0775[printers]browseable=noguestok=yesprintable=yespasswords=yessmb.conf的配置说明1.[global]—全局配置选项在[global]段中主要设置主机名称,主机所在的工作组名称和浏览时可看到的对本机的描述。安全参数告诉Samba使用“用户级别”的安全保护方式。[global]段中还定义了日志文件目录和锁定文件的位置。日志文件在解决故障和完善系统时是很有用的,锁定文件可以阻止多个用户同时修改相同的文件。具体说明如下:workgroup=WORKGROUP:定义该samba服务器所处的工作组或域(如果下面的security=domain的话)。netbiosname=STUDENT:定义该samba服务器的名称,默认为主机名。serverstring=SAMBA:设定samba服务器的描述,当通过网上邻居访问时可以在备注里面看到。smb.conf的配置说明1.[global]—全局配置选项Hostsallow=27.表示允许来自网段和27的访问,一定要注意,在网段地址后面一定要加上一个点“.”,多台主机间用空格隔开,单台主机后面也要加一个点。security=user:定义Samba的安全级别,按验证方式从低到高分为四级:share,user,server,domain。提示:Samba的安全级别说明:share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。后面三种安全级别都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。smb.conf的配置说明1.[global]—全局配置选项encryptpasswords=yes:设置是否对密码进行加密,samba本身有一个不同于Linux系统的密码文件/etc/samba/smbpasswd,如果不对密码进行加密,则在验证会话过程中客户机和服务器之间传递的就是明文。由于Windows2000以后的系统不支持明文密码,因此此处一般设置为yes。smbpasswdfile=/etc/samba/smbpasswd:表示smb用户信息存放在不同于Linux系统用户信息的位置,即smbpasswd中,这也是我们建立smb用户时系统默认存放所产生的用户信息的地方。unixpasswordsync=yes:当为yes的时候,允许在smb口令修改的时候同时更改其对应的Linux用户口令,这需要有根用户权限。2.[home]—主目录共享设置[home]部分是一个专用的部分,它的设置允许用户从window访问Linux系统中对应的主目录。comment:名称的说明。browseable:用来控制在浏览列表(如网上邻居)或者在Windows命令行下执行netview时是否能够看到自己的主目录。拓展:这里说明一下什么是浏览(Browse)。 在SMB协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在Windows下使用网络邻居查看可以访问的计算机),这个机制就被称为浏览(Browse)。虽然SMB协议中经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。只有必要的时候,才重新查找资源,例如使用Windows下的查找计算机功能。但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为Browser,这些Browser通过记录广播数据或查询名字服务器来记录网络上的各种资源。2.[home]—主目录共享设置writable=yes:表示用户对目录具有写权限。当然并不是说此处设为yes,用户就可以通过网络进行写操作了,还要设定此用户的本地权限为“写”才行。validusers=%s:表示所有的用户都可以通过Windows访问其相应的主目录。createmode=0664:指文件建立时的默认权限。directormod=0775:指目录建立时的默认权限。3.[public]—普通目录共享设置如果要建立对所有用户的共享设置,则要配置[public]部分。path:设置要共享的目录。public:public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guestok,所以有的配置文件中出现guestok=yes其实和public=yes是一样的。writelist:设置具有写权限的组,例如staff组和user组。validusers:设置具有访问权限的用户,比如validuser=stuent1stuent2。invalidusers:指定不能够使用该共享资源的用户和组。4.[printers]—打印机共享设置[printers]部分用于设置共享打印机的设置。guestok:设置是否允许用户使用打印机。printable:设置是否允许打印,如果为no,则无法打印。5.关于变量注意到上面示例中[home]部分一个比较有趣的设置validusers=%S,其中%S就是Samba里面的变量,%S表示当前服务名,由于validusers表示允许的使用者,validusers=%S表示所有的用户都可以通过Windows访问其相应的主目录。常用的变量:%S=当前服务名(如果有的话)%g=当前用户说在的主工作组%U=当前对话的用户名%H=当前服务的用户的Home目录%v=Samba服务的版本号。%d=当前服务进程的ID%I=客户机的IP%T=当前日期和时间添加Samba用户当采用用户级的samba安全性的时候(Security=user),需要为每个通过Windows系统访问Linux的用户指定一个账号,这个账号首先必须在/etc/passwd存在,只有在/etc/passwd才可以添加为Samba用户。示例:添加SAMBA用户(1)如果没有/etc/samba/smbpassed,手动添加文件;student@Ubuntu:~$sudotouch/etc/samba/smbpassed(2)添加linux用户student1;student@Ubuntu:~$sudouseraddstudent1(3)把linux用户添加为Samba用户。student@Ubuntu:~$sudosmbpassed–astudent1(4)当然也可以一次性把Linux所有用户都添加为Samba用户。student@Ubuntu:~$sudocat/etc/passwd|/usr/bin/mksmbpasswd.sh>/etc/samba/smbpasswd演示没有限制的SAMBA共享设置:任何人都可访问共享文件1配置文件:2测试配置文件:testparm3重启SAMBA:/etc/rc.d/init.d/smbrestart4查看重启结果5客户端测试: Linux客服端测试:smbclient–L\\ windos客服端测试:网上邻居问题: 前面演示了在SAMBA怎样设置没有安全设置的共享,但是在实际中,出于安全的需要,一般要求登录者提帐号与密码,而且要求登录者只能访问自己的工作目录,这种方案怎么实现?设置需要用户登录的SAMBA添加Samba用户 当采用用户级的samba安全性的时候(Security=user),需要为每个通过windows系统访问Linux的用户指定一个账号,可以使用下面的命令:1)以根用户身份,添加账号: useradd–mzhang2)为新建的用户zhang添加口令: passwdzhang3)因为samba用户的口令文件不同于Linux系统的口令文件,所以需要输入下面的命令来创建samba口令文件(smbpasswd) cat/etc/passw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论