分类: 系统运维
2011-10-19 23:52:14
在Samba服务器的主配置文件/etc/Samba/smb.conf中,所有语句是由全局设置(Global Settings)和共享定义(Share Definitions)两个部分组成的。全局设置设置关于Samba服务整体运行环境的选项,针对所有共享资源;共享定义设置共享目录。设置完基本参数后使用“testparm”命令检查语法错误,如看到“Loaded services file OK”的提示信息,则表明配置文件加载正常,否则系统会提示出错的地方。本节先介绍全局设置部分。
前面说了,在长过几百行的Samba.conf默认配置文件中,可以分成两大部分,首先要配置的是全局参数。它的配置文件中以下面这行开始的。
#======= =====================Global Settings ================
截止于下面这行(共享定义)的前面:
#============================ Share Definitions ===============
在[global]项中的设置选项是一些主机的全局参数设置,包括工作群组、主机的NetBIOS名称、字符编码的显示、登录文件的设定、是否使用密码以及使用密码验证的机制等等。下面我把这部分的一些主要设置语句列出来,介绍设置方法。注意,在默认提供的Samba.conf配置文件中,用“#”开头的都是对下面的语句进行说明的文字,配置时不用管它。以“;”开头的行是语句配置范例,修改成自己的设置,并去掉前面的“;”才能使语句生效。另外,要注意,在语句设置中,赋值“=”两端必须留有一个空格。
l workgroup = MYGROUP
这个设置语句是来设置Windows网络工作组或者域名(如果是域,且工作模式为ads,则必须是DNS名称,否则为NetBIOS名称)。但要注意,这里的配置要与下面的“security”语句对应设置,如果设置了security = domain,则workgroup是用来指定Windows域名(domain模式为NetBIOS格式)。
l realm = MY_REALM
这是当Samba服务器设置为ads模式时专用一个语句,用于指定Windows 2000 Server或者Windows Server 2003域网络中用于进行身份验证的Kerberos服务器领域名称。
l netbios name = Sambaserver
这里用来设置Samba服务器的NetBIOS名称。如果没有这个语句,则在Windows计算机中显示的是默认的hostname名称。
l server string = Samba Server
这个设置语句其实用途不大,相当对当前Samba服务器的一个描述,可以任意,也可以直接采用默认的“Samba Server”设置。
l username map = /etc/samb/smbusers
此文件中提供了Windows系统用户登录名与本地Samba用户名的映射关系,若想要在Windows主机中直接用Windows账户访问共享目录就必须为其在/etc/samb/smbusers文件中映射为一个Samba账户,然后就能直接使用该Windows账户访问Samba服务器了。
这个语句不用更改配置,只是要把默认配置文件中该语句前面的“#”或者“;”删除掉。
l security = user
这是用来设置用户访问Samba服务器的安全模式。在Samba服务器中主要有五种不同级别的安全模式:share、user、server、domian和ads。具体参见上节介绍。
l hosts allow = 192.168.1. 192.168.2. 127.
这个语句是用来允许(关键字为allow)或者禁止(关键字为deny)访问Samba服务器的子网或主机的,各子网或主机IP地址间用空格分隔。默认配置文件中是仅允许了192.168.1.0/24、192.168.2.0/24这两个子网和127.0.0.0/8这个本地环路子网的,语句把凡是为0的八位组都省略了。
【经验之谈】当host deny和hosts allow语句同时出现,并定义的内容中有包含关系,且有相互冲突时,hosts allow语句优先。如host deny语句中禁止了C类地址192.168.1.0/24整个网段主机访问,而在hosts allow语句中又设置了允许192.168.1.10主机访问Samba服务器。则最终是192.168.1.10主机可以访问,但192.168.1.0/24网段中的其他主机仍不能访问。如果要允许,或者禁止所有用户访问,则可用“hosts allow = All”或“hosts deny = All”语句。
在hosts语句中其实还有一个关键字经常用到,那就是“except”(除……之外)。如“hosts allow = 192.168.0. except 192.168.0.1 192.168.0.10 192.168.1.20”语句表示允许192.168.0.0整个网段用户访问,但是192.168.0.1、192.168.0.10和192.168.1.20这台计算机除外。
另外要注意,hosts语句既可以全局设置,也可以局部设置。如果hosts语句是在[global]部分设置的,就会对整个Samba服务器全局生效,也就是对下面添加的所有共享目录生效,都采用相同的主机访问限制设置;而如果设置在具体的共享目录部分,则表只对该共享目录生效,更加灵活。
l log file = /var/log/Samba/%m.log
这个语句是来来设置Samba服务器为每个工作站主机创建一个独立的日志文件。保持默认设置即可。
l max log size = 50
这是用来设置每个日志文件的最大限制为50KB。一般来说保持默认设置即可。
【说明】如果用户对Samba服务器的安全模式为Server模式,则还需要配置“password server”选项,用来指出担当身份验证的服务器名称。本示例中采用的是Domain模式,直接使用域控制器作为身份验证服务器,所以无需配置此语句。
l load printers = yes | no
这个语句是用来设置是否允许自动加载财贸系统中其他地方的打印机,在企业网络中, 一般需要共享打印机,所以此语句保持默认的允许自动加载打印机设置即可。
l interfaces = 192.168.12.2/24 192.168.13.2/24
这个设置语句是用来设置在Samba服务器上有多块网卡,或者分配了多个IP地址时列出所有的IP地址,各IP地址间用空格分隔。注意这是以地址前缀方式表示的。有关地址前缀表示方法参见本系列教材的初级课程。
l local master = no | yes
这个语句是用来设置是否要把Samba服务器当作本地网络中主浏览器。本示例中主网络还是Windows Server 2003域网络,为了不使整个网络的浏览器管理混乱,禁止把Samba服务器当成主浏览器,保持默认配置即可。
l domain master = yes | no
这个语句与上面的“local master”功能类似,是用来设置是否把Samba服务器当作域网络主浏览器。本示例中的网络是Windows Server 2003域网络,域控制器才是主浏览器,所以要禁止这个选择,设置成如下格式:
local master = no
l domain logons = yes | no
这个语句是来用为早期不能加入到Window 2000 Sever和Windows Server 2003域的Windows 95系统专门设置的,配置为yes值后就可以使Windows 95用户使用Samba服务器作为域控制器来登录Window 2000 Sever和Windows Server 2003域网络。本示例的网络环境中没有这类用户,所以这个语句要修改为如下格式,或者直接删除不配置。
domain logons = no | yes
l logon script = %m.bat和logon script = %U.bat
这是两个语句,因为它们的用途类似,所以放在一起介绍。这是在启用域登录脚本时才需要配置的。logon script = %m.bat语句可以针对具体的工作站来设置登录脚本;logon script = %U.bat则是针对具体的用户来设置的登录脚本。本示例中Linux用户无需使用登录脚本,可以不用配置。
l config file = /etc/Samba/smb.conf.%U
这个语句是用来为不同用户的Samba服务器访问指定使用不同的配置文件。但此时的用户配置文件名中必须包括对应用户的完整账户名。当然这个配置文件需要管理员自己创建,不是自动生成的。可以通过复制主配置文件smb.conf来实现。如要为lycb用户指定单独的配置文件,则该配置文件名为/etc/Samba/smb.conf.lycb。
l guest account = pcguest
这是用来设置guest级别的来宾用户名,guest级别的用户可以不要密码就访问给定的Samba服务器。在此设置的帐号名都必须在/etc/passwd文件中。如果没有指定,服务器会当成“nobody”帐号进行处理。默认情况下不启用guest帐号,除非是share工作模式。
以上就是Samba服务器配置文件的主要全局配置选项,下面介绍共享定义部分设置选项。
本文摘自《(金牌网管师——大中型企业网络组建》第七章