第10章Samba服务及其配置XX大学XX系XXX2019年10月17日本章提要samba简介Samba服务器的配置Samba服务的访问网络的目标是让用户更方便地共享信息。如果网络中既有Windows机器又有Linux机器,以及其他Unix类的机器,如要相互共享资源,使用Samba服务是很好的选择。Samba会允许文件和打印机被网络中的所有系统共享。Samba使用SMB(ServerMessageBlock)协议通过网络连接共享文件和打印机,支持该协议的操作系统包括MicrosoftWindows、OS/2、Linux和Unix。本章主要介绍Samba的配置和使用,以及相关的安全性问题。Samba简介SMB通信协议是Microsoft和Intel在1987年制定的协议,主要是作为Microsoft网络的通讯协议。通过“NetBIOSoverTCP/IP”使得Samba不但能在局域网内共享资源,而且能与Internet上的主机共享资源,这是因为Internet上的主机所使用的通讯协议就是TCP/IP。SMB工作在OSI参考模型的上面三层,是会话层(SessionLayer)、表示层(PresentationLayer)及小部分应用层(ApplicationLayer)的协议。SMB使用了NetBIOS的应用程序接口(ApplicationProgramInterface,简称API)。另外,它是一个开放性的协议,允许协议扩展—使得它变得更大而且复杂,大约有65个最上层的作业,而每个作业都超过了120个函数。最近微软又把SMB改名为CIFS(CommonInternetFileSystem,公共Internet文件系统),并且加入了许多新的特色,而Samba亦支持NTLanManager0.12等SMB的延伸协议,这使得Samba具有管理NT网域的能力。表10-1Samba服务器的组件组件名称含义smbdSMB服务器,给SMB客户提供文件和打印服务。nmbdNetbios名称服务器,提供Netbios名称服务和浏览支持,帮助SMB客户定位服务器。SmbclientSMB客户程序,用来存取SMB服务器上的共享资源。testprns测试服务器上打印机访问的程序。testparms测试Samba配置文件的正确性的工具。smb.confsamba的配置文件。smbstatus这个工具可以列出当前smbd服务器上的连接。make_smbcodepage这个工具用来生成文件系统的代码页。smbpasswd这个工具用来设定用户密码。swatsamba的Web管理工具。Samba的功能通过使用Samba,可以实现如下功能:1.提供WindowsNT风格的文件和打印机共享。当Windows98、Windows2000/XP、Windows2003及Vista等共享Linux操作系统的资源时,外表看起来和共享Windows的资源没有区别。2.解析NetBIOS名字。在Windows网络中,为了能够利用网上资源,同时自己的资源也能被别人所利用,各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别的主机提供检索情报的服务器就被称为浏览服务器。Samba可以有效地完成这项功能。在跨越网关的时候Samba还可以作WINS服务器使用。3.提供SMB客户功能。利用Samba提供的smbclient程序可以从Linux下以类似于FTP的方式访问Windows的资源。4.备份PC上的资源利用一个叫smbtar的Shell脚本,可以使用tar格式备份和恢复一台远程Windows上的共享文件。5.提供一个命令行工具,在其上可以有限制地支持NT的某些管理功能。6.支持Samba管理工具SWAT(SambaWebAdministrationTool)。7.支持加密传输SSL(SecureSocketLayer)。8.SAMBA服务器的安装和使用SAMBA服务器的安装在Fedora8安装时,可以选择安装SAMBA服务器,如果不确定系统是否安装了SAMBA服务器,可以使用以下方法判断:[root@Candyroot]rpm–qasambasamba-3.0.26a-6.fc8如上显示表明已经安装。如果在Fedora8安装时没有选择SAMBA服务器,那么需要先找出Fedora8安装光盘DVD中保存在/Packages目录下以samba开头的RPM包文件,然后输入以下指令,系统即会自动完成安装SAMBA服务器的任务:[root@Candyroot]#rpm–ivhsamba-3.0.26a-6.fc8.i386.rpm[root@Candyroot]#rpm–ivhsamba-common-3.0.26a-6.fc8.i386.rpm[root@Candyroot]#rpm–ivhsamba-client-3.0.26a-6.fc8.i386.rpmSAMBA服务器的启动和退出可以以多种方式启动Samba服务器。通过命令方式启动Samba[root@Candyroot]#/etc/rc.d/init.d/smbstart或[root@Candyroot]#servicesmbstart屏幕显示如图10-1所示。•图10-1Samba服务器的启动在XWindow下启动SAMBA选择“系统”|“管理”|“服务”,打开“服务配置”对话框,选中“smb”服务,然后单击工具栏上的“启动”按钮。如图10-2所示:图10-2在图形方式下启动Samba服务在系统启动时自动启动Samba通过命令chkconfig可设定在系统启动时自动启动Samba:[root@Candyroot]#chkconfig--level345smbon要停止Samba服务器,可以使用以下命令:[root@Candyroot]#/etc/rc.d/init.d/smbstop或者[root@Candyroot]#servicesmbstopSamba服务器的配置在启动Samba服务之前,首先需要完成Samba服务器的配置,本节将介绍Samba服务的配置。图形界面下配置Samba服务器可以使用图形界面的配置工具进行配置,进入Linux的GUI界面(如Gnome)后使用命令system-config-samba进入配置界面,如图10-3所示。在图形界面下可以配置常见的Samba功能。•图10-3Samba图形配置界面图形界面下配置Samba服务器1.配置Samba服务器的第一步是配置服务器的基本设置和安全选项。在图10-3所示的界面中,选择“首选项”|“服务器设置”。”基本”选项卡如图10-4所示。在“基本”选项卡上,指定计算机所属的工作组以及计算机的简短描述。它们与下文中文本界面配置文件smb.conf中的workgroup和serverstring选项相对应。•图10-4配置基本服务器设置图形界面下配置Samba服务器单击“安全性”选项卡,如图10-5所示。该包含以下选项:•图10-5配置安全服务器设置管理Samba用户Samba服务器配置工具要求在添加Samba用户之前,在充当Samba服务器的Fedora8系统上必须存在一个活跃的现存用户账号。Samba用户和这个现存的Linux用户账号相关联。要添加Samba用户,选择“首选项”|“Samba用户”,然后单击“添加用户”按钮。在“创建新Samba用户”窗口中的本地系统上的现存用户列表中选择“Unix用户名”。如果用户在Windows机器上有一个不同的用户名,并将从Windows机器上登录入Samba服务器,请在“Windows用户名”字段中指定Windows用户名。“服务器设置”首选项的“安全”选项卡上的”验证模式”必须被设置为“用户”才能使这个选项生效。管理Samba用户(续)还需要为Samba用户配置一个“Samba口令”,并再键入一次来确认这个口令。即便选择了为Samba使用加密口令,仍建议为所有用户设置的Samba口令不同于他们的Linux系统口令。要编辑某个现存用户,可以从列表中选择它,然后单击“编辑用户”。要删除某个现存的Samba用户,选择这个用户,然后单击“删除用户”按钮。删除Samba用户不会删除相关的Linux用户账号。如图10-6所示,选择UNIX用户名为“Bob”,并设置相应Samba密码。单击了“确定”按钮后,用户就会被立即修改。•图10-6管理Samba用户添加共享要添加共享,在图10-3所示的界面中单击“添加共享”按钮。“基本”选项卡配置以下选项:“目录”—通过Samba共享的目录。这个目录必须存在,这里配置为/home/Bob/myshare。“共享名”-共享的名称,通过该名称访问共享目录。“描述”—对共享的简短描述。在描述下面是用户访问该共享的基本权限。设置用户是应该能够读写共享目录中的文件还是仅仅只能读取。如图10-7所示。图10-7添加共享文本界面下配置Samba服务器Linux系统的特点在于其强大的命令管理功能,系统管理员更多的是使用文本界面下的配置工具进行配置。因此,以下主要介绍命令方式下Samba服务的配置。要配置Samba服务器,主要需要配置smb.conf文件。/etc/samba/smb.conf是Samba中最重要的一个配置文件,类似Windows的*.ini文件,通过他可以配置服务器的权限,共享目录、打印机和机器所属的工作组等各种选项,它主要由两个部分组成:GlobalSettings和ShareDefinitions。前者的设置都是与Samba整体环境有关的选项,这里的设置是全局设置,适合于每个共享目录;而后者是共享目录的个别设置。smb.conf的语法说明a.文件分为几个部分,每一部分都包括几个参数,用来定义samba共享及其详细信息。b.文件的每一段用一个方括号括起来,不区分大小写,如[global]、[home]等。c.每一段用“名称=值”的格式来设置参数,如netbiosname=Candy。d.行首加“#”、或“;”表示该行为注释行。下面先用一个实际的例子来说明smb.conf的配置:例,/etc/samba/smb.conf配置文件[global]workgroup=MYGROUPsecurity=user[homes]guestok=yespath=/tmp_sharereadonly=yes测试smb.conf一般设置好/etc/samba/smb.conf之后,需要用testparm命令检查文件中是否有错误。如果设置语法一切正确,则在执行testparm后系统出现的画面如图10-9所示。图10-9testparm命令运行情况[global]基本参数[global]部分是smb.conf配置文件中最重要的部分,它是Samba的整体环境设置部分,本部分参数主要有基本设置参数、安全设置参数、网络设置参数、文件设置参数、打印机设置参数、用户权限设置参数和日志设置参数等。Workgroup=MYGROUP设定Samba服务器要加入的工作组的名称,也即出现在Windows操作系统中“网络邻居”里面的名称。Netbiosname=Candy设定本机在网络邻居中显示的计算机名。Serverstring=SambaServer设定Samba服务器的文字说明,默认为“SambaServer”。Hostsallow=192.168.1.192.168.2.127.此功能在默认状态下不启用,它用于设定局域网中哪些主机允许存取Samba服务器。Printcapname=/etc/samba/printcap打印机配置文件。Loadprinters=yes表示是否要共享打印机。[global]基本参数(续)Printing=cups一般标准打印机类型不需要设置此项目。Guestaccount=nobody此项目功能在默认状态下不启用,如果希望建立一个客户帐号,则选择该项,同时需要在/etc/passwd