3.4.2 Samba主配置文件基本信息
Samba使用/etc/Samba/smb.conf作为它的配置文件,需要注意的是修改配置文件前先要备份该文件。如果改变了这个配置文件,这个改变直到使用service smb restart命令重启Samba守护进程后才会生效。
实例3-8 备份smb.conf文件
配置Samba文件的工作是比较烦琐的,大约有170条配置项出现在smb.conf文件中。smb.conf文件有一个清晰的语法结构,与Windows的*.ini文件十分类似。
文件被分隔成若干节,每一节都有一个被方括号起来的标识开始(例如,[global]、[home]、[printers]),每一个配置参数是一个全局参数(影响或控制整个服务器),或是一个服务参数(影响或控制服务器提供的某项服务)。
global部分定义的参数用来控制Samba总的特性。除global部分外,每一部分定义了一个专门的服务。
可以使用下面语句来制定一个参数:
name可以是一个单词或者用空格隔开的多个单词。VALUE可以是布尔值(true或false;yes或no;1或0)、数字或字符串。
注释以分号开头,可以单独一行,也可以跟在一条语句之后。
通过在一行的最后一个字符加反斜杠“\\”可以将一行分成多行。
每一部分的名字和参数都不分区分大小写,例如,参数browseable=yes与browseable=YES是完全等价的。
1.smb.conf文件的功能
smbd和nmbd这两个守护进程启动时(通常为系统引导时)读配置文件smb.conf,这一配置文件向这两个进程说明输出什么共享、共享输出给谁以及如何进行输出等。
因为安全问题是最重要的,所以必须指定哪些计算机可以访问这一共享,smb.conf文件可以灵活地明确指定每一服务有哪些用户可以访问。随着Linux网络的增大,这一控制越来越重要。
2.smb.conf文件结构
smb.conf文件包括3部分:
其中,global参数用来设置整个系统的规则;[home]部分和[printer]部分是服务特定例程,services(服务)是共享或输出的目录和打印机的Samba术语。这些服务定义了哪些用户可以访问这些目录和打印机,以及如何访问这些目录和打印机。
3.使用vi命令查看smb.conf文件具体配置信息
实例3-9 smb.conf文件配置实例
实例3-9允许用户tom和jsrry从Samba客户中读写Samba服务器上的目录/home/share。
以下是Samba系统提供的标准的配置文件。为方便大家学习,本小节对配置文件添加了解释。
实例3-10 smb.conf配置文件详解
#允许自动加载打印机列表,而不需要单独设置每一台打印机。
load printers=yes
#是否希望覆盖原有的printcap文件。
;printcap name=/etc/printcap
#对于SystemVxitong,如果将printcap名设置为lpstat将允许从SystemV的spool中自动获得打印表。
;pringcap name=lpstat
#除非打印机不是标准型号,否则没有必要指定打印机类型。
#目前支持的打印系统包括:bsd,sysv,plp,lprng,aix,hpux,qnx
;printing=bsd
#如果希望建立客户账号,去掉下面语句前面的分号“;”,激活此选项。同时必须在/etc/passwd文件中加入这个账号的定义,否则使用用户“nobody”作为客户账号。
;guestaccount=pcguest
#此选项将为每一个与服务器连接的机器定义一个单独的日志文件。
log file=/usr/local/Samba/var/log.%m
#此选项设置最大的日志文件的大小(以KB为单位)
max log size=50
#定义安全模式。大多数人都喜欢用户级安全模式,详细内容参考security_level.txt
Security=user
#只有当安全模式设置为服务级(security=server)时,才定义下面的选项。
;password server=<NT-Server-Name>
#如果用户使用加密口令的话,请参阅ENCRYPTION.txt、Win95.txt和WinNT.txt文件,请在阅读以上文件后使用下面选项。
;encrypt password=yes
#请使用此选项允许对每一个机器使用不同的配置。%m将被替换成与服务器请求连接的NetBIOS名。
;include=/usr/local/Samba/lib/smb.conf.%m
#大多数人会发现此项目将显著提高服务器的执行效率,请参阅speed.txt和用户手册以了解更多细节。
socket options=TCP_NODELAY
#配置Samba来使用多个网络界面,如果有多个网络界面,那么必须按照下面格式在这里列出。请参阅用户手册以获得更多的细节。
;interface=192.168.12.2/24 192.168.13.2/24
#浏览控制选项
#如果不想使Samba服务器成为局域网内部的主浏览器,将此项设为no
;local master=no
#os Lever决定了该服务器在局域网内的访问优先权。
;os level=33
#Domain Master将Samba服务器定义为主浏览器。此选项将允许Samba在子
网列表中进行浏览。如已经有Windows NT域控制器,不要使用此选项。
;domain master=yes
#preferred master使Samba在启动时选择一个本地浏览器并给它获得选择的较高机会。
;preferred master=yes
#仅当网络中有一台在安装时设置为主域控制器时使用此选项。
;domain controller=<NT-Domain-Controller-SMBName>
#如果想使Samba成为Windows 95工作站的登录服务器,则使用此选项。
;domain logons=yes
#如果允许域登录服务,那么也许希望每台机器或每个用户的登录脚本运行一个特定的登录批处理文件。
;logon script=%m.bat
#运行一个特定的用户名登录批处理文件。
;logon script=%U.bat
#放置roving profiles文件的位置(仅用于Win95和WinNT),%L代表该服务器NetBIOS
#名,%U是用户名,必须取消后面定义的[Profiles]前面的注释号。
;logon path=\\\\%L\\Profiles\\%U
#Windows的Internet名服务支持记录部分。
#WINS Server选项告诉Samba的nmbd进程作为WINS的客户机。注意:Samba可以成为一个WINS服务器或者客户机,但是不能同时选择两个身份。
;wins server=w.x.y.z
#wins proxy代表一个非WINS客户通知Samba响应的IP地址解析请求。要使此项正常工作必须保证网络中至少有一台WINS服务器。默认值是no。
;wins proxy=yes
#dns proxy选项决定Samba是否通过DNS的nslookup去解析主机的NetBIOS名。对于1.9.17以前的版本内置值是yes,对于1.9.18之后的版本内置值是no。
dns proxy=no
#[第二部分]
#==========================定义共享服务Share Definitions=================
#所有使用者的home目录
[homes]
Comment=Home Directories
#当一个客户程序列出本服务器的共享服务时,不列出home服务。
#但是本机用户创建的主目录服务仍使用[global]设置的browseable。
browseable=no
writable=yes
#如果要创建一个netlogon目录则取消下面的注释。
;[netlogon]
;comment=Network Logon Service
;path=/usr/local/Samba/lib/netlogon0
;gust ok=yes
;writable=no
;share modes=no
#如果要提供一个特定的共享roving profile则取消下面的注释。
#默认值是使用用户的home目录。
;[Profile]
;path=/usr/local/Samba/profiles
;browseable=no
;guest ok=yes
#注意:如果有一个BSD风格的打印系统,则不需要单独定义每台打印机。
[printers]
comment=All Printers
path=/usr/spool/Samba
browseable=no
#设置public=yes将允许以guest账号登录的用户使用打印机。
guest ok=no
writable=no
printable=yes
#此选项定义网络用户共享文件的临时目录。
;[tmp]
;comment=Temporary file space
;path=/tmp
;read only=no
;public=yes
#一个用户共享目录,除了在“staff”组里的用户有写的权限之外,对其他用户是只读的。
;[public]
;comment=Public Stuff
;path=/home/Samba
;public=yes
;writable=yes
;printable=no
;write list=@staff
#其他例子:
#
#下面定义了一台只有fred可以使用的私人打印机。Spool数据放在fred的home目录里。
#注意:fred必须对Spool目录有写的权限,不管这个目录在什么位置。
;[fredsprn]
;comment=Fred\’s Printer
;valid users=fred
;path=/home/fred
;printer=freds_printer
;public=no
;writable=no
;printable=yes
#下面定义一个只有用户fred才能使用的私人目录。fred必须对这个目录拥有写的权限。
#
;[fredsdir]
;comment=Fred\’s Service
;path=/usr/somewhere/private
;valid users=fred
;public=no
;writable=yes
;printable=no
#下面定义的是对每个域服务器的机器有不同的目录的服务。这将允许用户对于不同的机器使用不同的配置,同样也可以使用%U想为每个用户使用不同的配置。%m在连接时将被替换为客户机的主机名。
;[pchome]
;comment=PC Directories
;path=/usr/pc/%m
;public=no
;writable=yes
#下面定义一个所有用户都可以读写的共享目录。注意用户在这个目录中创建的文件都将归默认用户所有。所以任何可以访问这个目录的用户都可以删除别的用户在这个目录里放置的文件。显然,这个目录对于默认用户必须是可写的。当然,也可以指定某个用户,这时,该目录的所有文件将为此用户所有。
;[public]
;path=/usr/somewhere/else/public
;public=yes
;only guest=yes
;writabie=yes
;printable=no
#下例说明了如何定义让两个用户共享一个目录,他们在这个目录里放置的文件归他们各自所有。在此例中,这两个用户对该目录都有写的权限。当然文件的保护应该设置恰当。很显然,这个例子可以扩展到适合于多个用户的情况。
;[myshare]
;comment=Mary\′s and Fred\′s stuff
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。