第6章数据共享服务第6章数据共享服务如果网络中既有MSWindows主机又有Linux主机,使用Smaba服务无疑会带来很大的方便。因为Samba是使用SMB协议来共享网络中的文件和打印机的。SMB(ServerMessageBlock)是一种类似NFS和lpd的通信协议,它可以支持大多数的操作系统,如MSWindows、OS/2、和Linux等。使用Samba服务,最显著的好处是大大简化了MSWindows用户使用Linux系统的文件或打印机的操作。用户只需要打开MSWindows系统中的“网络邻居”就可以对Linux系统的文件或打印机进行操作。网络文件系统(NetworkFileSystem)实现了在异种网络下共享和装载远程文件系统,目前已经成为文件服务的一种标准。NFS可以将远程主机上的文件挂载到本地系统,从而可以像使用本地文件系统一样地使用远程文件。NFS提供了一种除Samba外另一种强大的文件共享方法。6.1Samba服务smb是一组通信协议,其运行于Unix、OS/2和MS-Windows系统之间,以实现文件共享与打印机共享服务。Samba使用NetBIOSoverTCP/IP,而由于TCP/IP已经在每一个操作系统上实现,因此Samba可以很好地使用大型的TCP/IP网络。查询系统是否已经安装了Smaba软件包:[root@localhsot~]#rpm-qa|grepsambasamba-client-3.0.23c-2samba-3.0.23c-2system-config-samba-1.2.39-1.el5samba-common-3.0.23c-2如果系统也看见了上面的信息,就说明系统已经安装了Samba软件包,读者可以略过这一节,直接进行Samba的配置了。如果没有安装,则Samba相关的软件包位于安装光盘中,用户可以自行安装,这里就不介绍了。6.1.1服务器管理在使用Samba服务的服务器上必须运行smb服务。可以使用如下命令来查看Samba守护进程的状态:[root@mysite/]#/sbin/servicesmbstatus使用以下命令来启动守护进程:[root@mysite/]#/sbin/servicesmbstart使用以下命令来停止守护进程:[root@mysite/]#/sbin/servicesmbstop如需在运行级别3、4、5上引导时启动smb服务,使用以下命令:[root@mysite/]#/sbin/chkconfig--level345smbon还可以使用ntsysv或服务配置工具来配置在引导时需要启动的服务。Ntsysv的用法请参见相关章节。6.1.2smb配置文件详解在安装好Samba后,还需要对其进行配置,使它能按照要求正常运行。Samba的主要配置文件是:/etc/samba/smb.conf。如果需要对其进行修改,请注意先创建一个备份文件:cp/etc/samba/smb.confsmb.conf~。一个完整的smb.conf一般由Globalsettings和shareDefinitions两部分组成。每部分由消息头和参数两部分构成。消息用“[]”标志,参数结构形式为:parameter=value。其中,parameter可以是一个或用空格分隔的多个单词,value可以是布尔值、数字或字符串。参数告诉smb提供何种服务。在smb.conf文件中,注释行以“#”开头,同时每项中英文字母不区分大小写,在一行最后字符尾加“\”,可将一行分成多行。下面来解释smb.conf的详细内容。1.Globalsettings(全局参数的设置)该部分由[global]段完成全局参数的设置,该部分提供了全局参数,对samba的功能具有很大的影响,主要用来设置整个系统规则。[global]段主要参数有:(1)workgroup=MYGROUP设置工作组名。设置为Linux主机所属的MSWindows工作组名或NT域名。(2)serverstring=SambaServer设置Linux主机的描述信息,这是一个可选的设置(3)security=user设置Samba服务的安全级别。主要有五种级别:share、user、server、domain、ads,默认设置是user。可以根据需要设置成其他的级别,请在设置后删除行首的“;”下同。①share:任何用户无需用户名和口令即可访问服务器上的资源。②user:samba的默认配置,在访问共享资源之前必须通过本地用户验证。③server:验证是通过另一台服务器进行的,如果失败,就退到user级。④domain:验证通过网络上的Windows主域控制器进行。后面三种安全级都要求“用户”在提供共享的Linux主机上设有帐户(4)passwordserver=NT-Server-Name设置验证服务器的服务器名。当security设为server或者domain的时候才有必要配置。该项的值可以是域名也可以是IP地址。通常是设置成Windows下的域控制器。(5)hostsallow=192.168.1.192.168.2.127.设置可以访问Samba服务器的IP地址范围,请注意默认是允许所有的IP地址,通过该项,可以使共享限制到部分可以信任的用户。(6)loadprinters=yes设置是否启用打印机共享,默认是启用的(7)printcapname=/etc/printcap设置存放打印机描述信息文件printcap的位置(8)printing=cups设置打印机的类型,通常默认设置即可。(9)cupsoptions=raw该项只能用于打印系统是cups时。(10)guestaccount=pcguest当用户或来宾用户要登录入samba服务器时,他们必须被映射到服务器上的有效用户。选择系统上的现存用户名之一作为来宾samba账号。当用户使用来宾账号登录入samba服务器,他们拥有和这个用户相同的特权。guestaccount选项就是配置来宾帐号的本地对应帐号的。(11)logfile=/var/log/samba/%m.log为登录samba服务器的不同用户建立不同的日志文件(12)maxlogsize=50设置日志文件的最大长度,单位:KB(13)realm=MY_REALM该项只用于security=ads时(14)passdbbackend=tdbsam设置使用哪个backend存放用户或组的相关信息,默认设置是smbpasswd(15)include=/usr/local/samba/lib/smb.conf.%m设置用户为每台计算机自定义的基本配置文件(16)interfaces=192.168.12.2/24192.168.13.2/24设置多个网络接口,如过计算机系统有多个网络接口,必须在这里列出。(17)localmaster=no设置nmbd是否尝试成为本地主浏览器,默认设置为yes(18)oslevel=33设置系统级别,用于决定成为本地主浏览器的优先情况(19)domainmaster=yes设置nmbd是否成为域主浏览器(20)preferredmaster=yes设置nmbd是否成为工作组里的首要的主浏览器(21)domainlogons=yes用于Windows95workstations的设置(22)logonscript=%m.bat(23)logonscript=%U.bat这两项设置的是登录脚本文件(24)winssupport=yeswinsserver=w.x.y.z设置是否启用WINS,默认是不启用。w.x.y.z为WINS服务器的地址。(25)winsproxy=yes设置是否启用WINS代理,默认是不启用(26)dnsproxy=no设置是否启用DNS代理(27)usernamemap=/etc/samba/smbusers指定包含来自服务器、客户端的用户名映射文件(28)下面这些行设置添加、删除于unix对应的用户adduserscript=/usr/sbin/useradd%uaddgroupscript=/usr/sbin/groupadd%gaddmachinescript=/usr/sbin/adduser-n-gmachines-cMachine-d/dev/null-s/bin/false%udeleteuserscript=/usr/sbin/userdel%udeleteuserfromgroupscript=/usr/sbin/deluser%u%gdeletegroupscript=/usr/sbin/groupdel%g2.ShareDefinitions(共享定义)(1)[homes]段在[homes]部分指定Windows共享的主目录,如果在Windows工作站登录的名字与Linux用户名相同,提供的口令也一致,那么打开网络邻居,双击共享目录图标,就可获得访问该目录的权力。从Windows访问Linux主目录时,用户名作为主目录共享名。[homes]段的主要参数有:①comment说明提供的服务为HomeDirectories服务。不影响操作,用户可以更改。②browseable指定其它用户能否浏览该用户主目录。一般置为no,禁止其它用户访问,确保数据安全。③writable使用户访问该目录时,是否具有写入主目录的权限,值为yes,具有写权限;只有读取权限时应置为no。(2)[printers]段[printers]部分用于指定如何共享Linux网络打印机,从Windwos系统访问Linux网络打印机时,共享应是printcap中指定的Linux打印机名。该段中主要参数有:①browseable若取值为yes,则允许其它用户访问打印机。否则限制其它用户的访问权。②printable应置为yes,才能实现打印。③public设置为no时,guest帐号不能使用打印机;置为yes,则允许guest帐号使用打印机。④writable打印机是输出设备,应置为yes。(3)[tmp]段该部分是为所有用户提供访问临时目录的方法。主要参数有:①path指定共享路径。通常为/tmp。②readonly置为no时,用户对/tmp有可读、可写和执行的权限。③public一般置为yes,以便让所有用户共享使用/tmp目录。(4)[public]段该部分提供了所有用户都可以共同访问的目录。除了那些属于维护人员具有读、写、执行权外,用户只具有读取的访问权限,主要参数有:①path指定公众共享目录路径。②public取值为yes,允许公众共享,即相当于guestok=yes,启用guest帐号。③writable取值为yes时,公众有可写权力。④printable取值为no时,无打印权限。⑤writelist指定具有可写权力的用户名单。6.1.3图形模式配置使用图形化界面来配置samba,可以使用samba服务器配置工具。samba服务器配置工具是用来管理samba共享、用户、以及基本服务器设置的图形化界面。它修改/etc/samba/目录中的配置文件。没有使用该工具进行的改变项都会被保留。要使用该程序,系统必须在运行X窗口系统,具备root权限,并且安装了system-config-sambaRPM软件包。要从桌面启动samba服务器配置工具,单击面板上的“系统”|“系统设置”|“服务器设置”|“samba服务器”,或在shell提示下键入system-config-samba命令。图6-1samba服务器配置工具1.配置服务器设置配置samba服务器的第一步是配置服务器的基本设置和几个安全选项。启动了应用程序后,选择“首选项”|“服务器设置”。其中“基本”选项卡如图6-2所示。图6-2服务器设置基本标签在“基本”选项卡上,指定计算机应在的工作组以及对计算机的