1、第第1010章章 SambaSamba服务器服务器第第10章章 Samba服务器服务器 教学提示:教学提示:SMB协议是实现不同计算机之间共协议是实现不同计算机之间共享文件和打印机的协议,享文件和打印机的协议,Samba服务器是服务器是SMB协议在协议在Linux系统的实现。本章涉及的内容主要系统的实现。本章涉及的内容主要有有Samba服务器简介,服务器简介,Samba服务器安装与运服务器安装与运行控制,行控制,Samba服务器配置。服务器配置。教学要求:教学要求:学习完本章后,将了解学习完本章后,将了解SMB协议,协议,能够在能够在Ubuntu Linux系统安装与运行系统安装与运行Samb
2、a软软件,针对实际情况配置件,针对实际情况配置Samba服务器。服务器。第第1010章章 SambaSamba服务器服务器Samba服务器简介服务器简介 Linux和和Windows系统是目前比较流行的操作系统,在许多系统是目前比较流行的操作系统,在许多地方需要相互之间的访问和共享。要实现它们之间的相互访问,地方需要相互之间的访问和共享。要实现它们之间的相互访问,主要有两种方法:主要有两种方法:1)简单的通信方式:利用)简单的通信方式:利用Telnet、FTP、HTTP服务实现网络间的通信;服务实现网络间的通信;2)SMB协议:通过在协议:通过在Linux主机上安装支持主机上安装支持SMB协议
3、的服务器协议的服务器(Samba服务服务器器)和客户端软件,可以方便的实现与和客户端软件,可以方便的实现与Windows系统之间的通信。系统之间的通信。SMB(server message block)协议是)协议是Microsoft公司基于公司基于NetBIOS(Network Basic Input/Output System,网络基本输入输出)实现,网络基本输入输出)实现的一套网络文件的一套网络文件/打印服务系统,是实现不同计算机之间共享文件打印服务系统,是实现不同计算机之间共享文件和打印机的协议。和打印机的协议。第第1010章章 SambaSamba服务器服务器(1)如果在Window
4、s系统之间实现了SMB协议,资源之间的共享就可以通过网上邻居实现。(2)通过在Linux主机上安装支持SMB协议的服务器(Samba服务器)和客户端软件,可以方便的实现与Windows系统之间的通信。1SMB协议的作用协议的作用第第1010章章 SambaSamba服务器服务器第第1010章章 SambaSamba服务器服务器第第1010章章 SambaSamba服务器服务器在Ubuntu安装Samba软件非常简单,有命令安装与图形安装两种。1图形安装使用新立得软件包管理器使用新立得软件包管理器安装Samba软件过程如下。(1)点击“系统”“系统管理”“新立得软件包管理器”,打开新立得软件包管
5、理器,在单击打开的窗口中上方的“搜索”按钮,查找名为samba的软件包,结果如图10.2所示。查找的结果显示在右侧窗口,在右侧窗口中软件包名称前为实心的表示系统已经安装了改软件包,由图发现Ubuntu系统还没有安装samba软件包。安装安装Samba服务器服务器第第1010章章 SambaSamba服务器服务器(2)在右侧窗口选中名为samba的软件包,选中右键菜单中的“标记以便安装”选项,如图10.3所示。第第1010章章 SambaSamba服务器服务器(3)系统检测软件包依赖关系,将同时安装其它的相关软件包,以便符合依赖关系,如图10.4,这里将提示附加安装samba-commom软件包
6、,单击“标记”按钮继续。第第1010章章 SambaSamba服务器服务器(4)安装程序再次回到“新立得软件包管理器”主界面,并且表示所有安装samba必要的软件包,如图10.5所示。单击窗口中上方的“应用”按钮。第第1010章章 SambaSamba服务器服务器(5)接着,如图如图10.6所示。安装程序要求再次确定安装的内容摘要。如果确定无误,单击“应用”按钮继续。(6)安装程序将开始下载所需要的软件包,如图10.7所示,此时需要等待一段时间,具体与所需软件包的大小与当地网络速度而定。(7)下载完所有samba相关软件包后,系统即进行安装所有软件包过程。第第1010章章 SambaSamba
7、服务器服务器2命令安装命令安装samba软件软件使用这一命令将安装三个软件包samba、samba-common 与smbclient。samba:服务器软件包,这个包主要包含了 SAMBA 的主要 运行程序(smbd 及 nmbd)、SAMBA 的文件档(document)及开机预设选项等;samba-common:根据依赖关系选定的,这个套件则主要提供了 SAMBA 的主要设定档(smb.conf)、smb.conf 语法检验的测试程序(testparm)等等;smbclient:客户端软件包,这个包则提供了当 Linux 做为 SAMBA Client 端时,所需要的工具指令,例如挂载
8、SAMBA 档案格式的执行档 smbmount 等。提示:提示:为了叙述方便,以后安装软件将以命令安装为主。studentUbuntu:$sudo apt-get install samba smbclient 将会安装下列额外的软件包将会安装下列额外的软件包samba-common smbclient下列【新】软件包将被安装:下列【新】软件包将被安装:samba、samba-common smbclient第第1010章章 SambaSamba服务器服务器Samba服务器的运行控制服务器的运行控制Samba服务有两个守护进程,分别为SMB和NMB,Ubuntu 系统中NMB默认已经运行,可以
9、通过输入下面命令来控制Samba运行。(1)启动服务。studentUbuntu:$sudo/etc/init.d/samba start(2)要停止服务。studentUbuntu:$sudo/etc/init.d/samba stop(3)要重新启动。studentUbuntu:$sudo/etc/init.d/samba restart第第1010章章 SambaSamba服务器服务器Samba服务器的运行控制服务器的运行控制(4)除此之外,还可以用下面的命令来启动脚本:studentUbuntu:$sudo service samba start(5)重新加载配置文件。studentU
10、buntu:$sudo/etc/init.d/samba reload(6)如果想在Ubuntu系统启动的时候让samba服务自动启动,可以通过下面的设置实现:studentUbuntu:$sudo rcconf在弹出的界面选择samba服务器即可。如果安装了图形化启动管理工具bum,直接点击“系统”“系统工具”“BootUp-Manger”也可设置开机启动samba。第第1010章章 SambaSamba服务器服务器Samba服务器配置服务器配置Samba服务器也是依靠配置文件来实现特定功能的,它的配置文件是/etc/samba/smb.conf。对于samba服务器的配置,可以直接用文本编
11、辑器创建配置文件smb.conf。第第1010章章 SambaSamba服务器服务器smb.conf的语法的语法以下是smb.conf文件的一个简单示例:global workgroup=MYGROUP netbios name=linux server string=samba Server hosts allow=192.168.1.192.168.2.127.security=user encrypt passwords=yes smb passwd file=/etc/samba/smbpasswd unix password sync=Yeshomes comment=Home Di
12、rectory browseable=no writable=yes valid users=%S create mode=0664 directory mode=0775 printers browseable=no guest ok=yes printable=yes passwords=yes第第1010章章 SambaSamba服务器服务器smb.conf文件有一个清晰的语法结构,该文件被分成几部分,每一部分都包括几个选项,用来定义Samba输出的共享及其详细操作。每一部分都由一个被方括号括起来的标识开始(例如,global、home、printers),各个部分包括多种选项,每一个配
13、置选项或是一个全局选项(影响或控制整个服务器),或是一个服务选项(影响或控制服务器提供的某项服务)。global workgroup=MYGROUP netbios name=linux server string=samba Server hosts allow=192.168.1.192.168.2.127.security=user encrypt passwords=yes smb passwd file=/etc/samba/smbpasswd unix password sync=Yeshomes comment=Home Directory browseable=no writa
14、ble=yes valid users=%S create mode=0664 directory mode=0775 printers browseable=no guest ok=yes printable=yes passwords=yes第第1010章章 SambaSamba服务器服务器global部分定义的选项用来控制Samba的总特性。除global部分外,其他每一部分都定义了一个专门的共享资源,包括文件共享资源、打印共享、光驱共享等。在每一配置部分,可以使用下面的语句来指定一个选项:name=VALUEname可以是一个单词或者用空格隔开的多个单词。VALUE可以是布尔值(tur
15、e或false;yes或no;1或0)、数字或字符串。在smb.conf文件中,注释以分号开头,可以单独一行,也可以跟在一条语句之后。通过在一行的最后一个字符后加反斜杠“”可以将一行分成多行。每一部分的名字和选项都不区分大小写,例如,选项browseable=yes与browseable=YES是完全等价的。global workgroup=MYGROUP netbios name=linux server string=samba Server hosts allow=192.168.1.192.168.2.127.security=user encrypt passwords=yes sm
16、b passwd file=/etc/samba/smbpasswd unix password sync=Yeshomes comment=Home Directory browseable=no writable=yes valid users=%S create mode=0664 directory mode=0775 printers browseable=no guest ok=yes printable=yes passwords=yes第第1010章章 SambaSamba服务器服务器smb.conf的配置说明的配置说明 1global全局配置选项在 global 段中主要设置
17、主机名称,主机所在的工作组名称和浏览时可看到的对本机的描述。安全参数告诉 Samba 使用“用户级别”的安全保护方式。global 段中还定义了日志文件目录和锁定文件的位置。日志文件在解决故障和完善系统时是很有用的,锁定文件可以阻止多个用户同时修改相同的文件。具体说明如下:workgroup=WORKGROUP:定义该samba服务器所处的工作组或域(如果下面的security=domain的话)。netbios name=STUDENT:定义该samba服务器的名称,默认为主机名。server string=SAMBA:设定samba服务器的描述,当通过网上邻居访问时可以在备注里面看到。第第
18、1010章章 SambaSamba服务器服务器smb.conf的配置说明的配置说明 1global全局配置选项Hosts allow=192.168.1.192.168.2.127.表示允许来自网段192.168.1.0和192.168.2.127的访问,一定要注意,在网段地址后面一定要加上一个点“.”,多台主机间用空格隔开,单台主机后面也要加一个点。security=user:定义Samba的安全级别,按验证方式从低到高分为四级:share,user,server,domain。l 提示:Samba的安全级别说明:l share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的
19、资源。l user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。l server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。l domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。后面三种安全级别都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。第第1010章章 SambaSamba服务器服务器smb.conf的配置说明的配置说明 1global全局配置选项 encrypt passwords=y
20、es:设置是否对密码进行加密,samba本身有一个不同于 Linux系统的密码文件/etc/samba/smbpasswd,如果不对密码进行加密,则在验证会话过程中客户机和服务器之间传递的就是明文。由于Windows2000以后的系统不支持明文密码,因此此处一般设置为yes。smb passwd file=/etc/samba/smbpasswd:表示smb用户信息存放在不同于Linux系统用户信息的位置,即smbpasswd中,这也是我们建立smb用户时系统默认存放所产生的用户信息的地方。unix password sync=yes:当为yes的时候,允许在smb口令修改的时候同时更改其对应
21、的Linux用户口令,这需要有根用户权限。第第1010章章 SambaSamba服务器服务器2home主目录共享设置home部分是一个专用的部分,它的设置允许用户从window访问Linux系统中对应的主目录。comment:名称的说明。browseable:用来控制在浏览列表(如网上邻居)或者在Windows命令行下执行net view时是否能够看到自己的主目录。拓展:这里说明一下什么是浏览(Browse)。在SMB 协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在Windows下使用网络邻居查看可以访问的计算机),这个机制就被称为浏览(Browse)。虽然SMB协议中
22、经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。只有必要的时候,才重新查找资源,例如使用Windows下的查找计算机功能。但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为Browser,这些Browser通过记录广播数据或查询名字服务器来记录网络上的各种资源。第第1010章章 SambaSamba服务器服务器2home主目录共享设置 writable=yes
23、:表示用户对目录具有写权限。当然并不是说此处设为yes,用户就可以通过网络进行写操作了,还要设定此用户的本地权限为“写”才行。valid users=s:表示所有的用户都可以通过Windows访问其相应的主目录。create mode=0664:指文件建立时的默认权限。director mod=0775:指目录建立时的默认权限。第第1010章章 SambaSamba服务器服务器3public普通目录共享设置如果要建立对所有用户的共享设置,则要配置public部分。path:设置要共享的目录。public:public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有
24、的配置文件中出现guest ok=yes其实和public=yes是一样的。write list:设置具有写权限的组,例如staff组和user组。valid users:设置具有访问权限的用户,比如valid user=stuent1 stuent2。invalid users:指定不能够使用该共享资源的用户和组。第第1010章章 SambaSamba服务器服务器4printers打印机共享设置printers部分用于设置共享打印机的设置。guest ok:设置是否允许用户使用打印机。printable:设置是否允许打印,如果为no,则无法打印。第第1010章章 SambaSamba服务器服
25、务器5关于变量注意到上面示例中home部分一个比较有趣的设置valid users=%S,其中%S就是Samba里面的变量,%S 表示当前服务名,由于valid users表示允许的使用者,valid users=%S表示所有的用户都可以通过Windows访问其相应的主目录。常用的变量:%S=当前服务名(如果有的话)%g=当前用户说在的主工作组%U=当前对话的用户名%H=当前服务的用户的Home目录%v=Samba服务的版本号。%d=当前服务进程的ID%I=客户机的IP%T=当前日期和时间第第1010章章 SambaSamba服务器服务器添加添加Samba用户用户当采用用户级的samba安全性
26、的时候(Security=user),需要为每个通过Windows系统访问Linux的用户指定一个账号,这个账号首先必须在/etc/passwd存在,只有在/etc/passwd才可以添加为Samba用户。示例:添加SAMBA用户(1)如果没有/etc/samba/smbpassed,手动添加文件;studentUbuntu:$sudo touch/etc/samba/smbpassed(2)添加linux用户student1;studentUbuntu:$sudo useradd student1(3)把linux用户添加为Samba用户。studentUbuntu:$sudo smbpas
27、sed a student1(4)当然也可以一次性把Linux所有用户都添加为Samba用户。studentUbuntu:$sudo cat/etc/passwd|/usr/bin/mksmbpasswd.sh /etc/samba/smbpasswd第第1010章章 SambaSamba服务器服务器演示演示没有限制的SAMBA共享设置:任何人都可访问共享文件1 配置文件:2 测试配置文件:testparm3 重启SAMBA:/etc/rc.d/init.d/smb restart4 查看重启结果5 客户端测试:Linux客服端测试:smbclient L 127.0.0.1 windos客服
28、端测试:网上邻居第第1010章章 SambaSamba服务器服务器问题:问题:前面演示了在SAMBA怎样设置没有安全设置的共享,但是在实际中,出于安全的需要,一般要求登录者提帐号与密码,而且要求登录者只能访问自己的工作目录,这种方案怎么实现?设置需要用户登录的设置需要用户登录的SAMBA第第1010章章 SambaSamba服务器服务器添加添加SambaSamba用户用户当采用用户级的samba安全性的时候(Security=user),需要为每个通过windows系统访问Linux的用户指定一个账号,可以使用下面的命令:1)以根用户身份,添加账号:)以根用户身份,添加账号:useradd m
29、 zhang2)为新建的用户)为新建的用户zhang添加口令:添加口令:passwd zhang3)因为)因为samba用户的口令文件不同于用户的口令文件不同于Linux系统的口令文件,所以系统的口令文件,所以需要输入下面需要输入下面的命令来创建的命令来创建samba口令文件(口令文件(smbpasswd)cat/etc/passwd|/usr/bin/mksmbpasswd.sh /etc/samba/smbpasswd第第1010章章 SambaSamba服务器服务器4)为用户设置smb口令smbpasswd student为每一个需要通过windows系统访问Linux的人员重复以上步骤
30、建立相应的账号。设置完成后,每个用户都可以登录Linux系统并重新运行passwd和smbpasswd命令来设置口令。第第1010章章 SambaSamba服务器服务器演示演示需要用户登录的需要用户登录的SAMBA,并且每个用户有自己的主目录与共享目录,并且每个用户有自己的主目录与共享目录1 配置文件:配置文件:2 测试配置文件:测试配置文件:testparm3 添加添加SAMBA用户用户3.1 如果没有如果没有/etc/samba/smbpassed,添加文件添加文件3.2 添加添加linux用户:用户:student3.3 把把linux用户添加为用户添加为smb用户:用户:smbpass
31、ed a student4 重启重启SAMBA:/etc/rc.d/init.d/smb restart4 查看重启结果查看重启结果5 客户端测试:客户端测试:Linux客服端测试:客服端测试:smbclient L 127.0.0.1 windos客服端测试:客服端测试:网上邻居网上邻居第第1010章章 SambaSamba服务器服务器一、选择题1Samba服务器的启动方式有_。A.#/etc/init.d/smb start B.#service smb start C.#/etc/init.d/smbs start D.#/etc/init.d/smb reload2在Samba服务的配
32、置文件中,如果允许来自所有网段192.168.1.0内若有主机的访问,其配置应该是_。A.192.168.1.0 B.192.168.1.0.C.192.168.1.D.192.168.1第第1010章章 SambaSamba服务器服务器二、填空题1Linux和Windows系统之间的相互访问方式有_和_。2SMB协议是实现_的协议。3Samba服务的配置文件是_。4Samba服务的配置文件创建方式一种是通过手工创建,另外一种是_。第第1010章章 SambaSamba服务器服务器三、简答题1Samba服务器的主要作用是什么?2在创建Samba用户的时候,cat命令的作用是干什么?为什么要这么做?3怎样为Windows系统创建Samba客户机?