smb.conf是Samba组件的配置文件,包含Samba程序运行时的配置信息.smb.conf被设计成可由swat (8)程序来配置和管理.本文件包含了关于smb.conf的文件格式和可能出现的选项的完整描述以供参考.html
本文件由一系列段和选项构成.一个段由一对方括号中的段名开始,直到下一个段名结束.包含在段中的选项按如下格式定义:node
选项名 = 选项值mysql
本文件是基于文本行的.这就是说,每个以换行符结束的行描述了一个项目(注释,段名,或选项).react
段名和选项名是不区分大小写的.linux
只有选项设置中的第一个等号才有意义.第一个等号先后的空格会被忽略.段名和选项名的先后以及中间包含的空格是无关的.选项值先后的空格会被忽略.选项值中包含的空格会原样保留.ios
全部以';'和'#'符开头的行都会被忽略,就象只有空格的行那样.git
按照UNIX上的惯例,以''符号结尾的行续下一行.(也就是说:''是续行符,若是一行写不下,能够在行尾以''结束,在下一行继续写--译注)算法
等号后面跟的是字符串(无需引号)或者逻辑值(能够是yes/no,1/0,或者true/false 来表示).逻辑值是不区分大小写的.字符串值则原样保留了输入的大小写.某些选项 (例如create modes)的值是数值型的.sql
配置文件的每一段([global]段除外)描述一项共享资源.段名就是共享名,段内的选项设置肯定了该共享资源的属性.shell
三个特殊段([global],[homes],[printers])将在后面'special sections'单独说明,如下的内容是普通段的说明.
一个共享资源由一个文件目录和用户对此目录的操做权限的说明构成.另外,还列入了一些用于内部管理的选项.
每一段定义了一项文件服务(客户端能够把它看做其本机文件系统的延伸)或打印服务(客户端能够经过它来使用服务器提供的打印服务).
段能够定义成guest服务类型,在这种状况下,客户无需口令就能够访问该资源.一个特定的UNIX系统下的guest account一般用来指定这种状况下的客户访问权限.
除了guest服务类型之外,其余类型的段定义的共享资源都须要口令才能访问.用户名是由客户端提供的.因为某些老的客户端只提供口令,没有用户名,你须要在共享定义中使用"user="选项来指定一个用户列表,以便根据这个用户列表进行口令验证.对于象Windos95/98和WindowsNT这样的现代客户端程序,这个选项是不须要的.
注意,对于资源的操做权限还取决于主机系统赋予指定用户或来访者帐户的权限.samba提供的服务权限不能超出主机系统指定的权限范围.
下面的示范段定义了一项文件服务,用户拥有对/home/bar目录进行写操做的权限.这个共享资源是经过共享名"foo"来访问的.
[foo] path = /home/bar read only = no
下面示范段定义了一项打印服务,此共享资源是只读的,可是能够进行打印操做.也就是说,惟一容许的写操做只能是打开、写入并关闭一个打印假脱机文件.其中的guest ok选项定义意味着容许以缺省的guest用户(在别处定义的)权限进行访问.
[aprinter] path = /usr/spool/public read only = yes printable = yes guest ok = yes
这一段中定义的选项是服务器的全局性设置,若是在其余段中没有再对这些选项进行从新设置的话还能够做为它们的缺省选项.更多的说明请参阅'PARAMETERS'部分的内容.
若是配置文件中包含名为'homes'的段,就能够创建客户到本身在服务器上的我的目录的链接.
当服务器收到链接请求时,首先在已定义的段中搜索,若是段名与被请求的共享资源名一致,则该段的内容就被采用.若是没有找到匹配的段,则被请求的资源就被看成是一个用户名,同时服务器查看本地的口令文件.若是该用户名在口令文件中存在且用户给出了正确的口令,服务器就会复制[homes]段的内容来生成一个共享资源(供该用户访问).
对新建共享会作如下修改:
若是要在[homes]段中定义访问路径path=,宏%S也许对你颇有用.举例以下:
path = /data/pchome/%S
若是你的PC 有与UNIX服务器上我的目录不一样的目录,象上面这样的设置会颇有用的.
这是为大量用户提供对他们我的目录的访问的一种快速简洁的办法.
若是被请求访问的共享资源名就是'homes',那么,除了共享名不被改变为发出请求的用户名外,其余处理过程和前面提到的过程是相似的.这种方式适合于不一样用户共享一台终端的状况.
在[homes]段中能够定义全部普通段中能够使用的选项,但是有些选项更有意义.下面是一个实用的、典型的[homes]段的例子:
[homes] read only = no
注意,很重要的一点是:若是在[homes]段中定义了容许以guest帐户访问的话,任何人均可以无须口令而访问全部帐户的宿主目录.也许在某些特殊状况下,这正是想要的结果,在这种状况下,你最好同时把[homes]段设置成只读.
注意,自动的宿主目录共享资源的可浏览标志是从[global]段继承来的,而不是[homes]段.这样,当在[homes]段中设置browseable=no时,用户就看不到单独的'homes'共享,但能够看到自动的宿主目录.
这一段很象[homes]段,不过是用于设置共享打印机的.
若是在本配置文件中存在[printers]段,用户就能够链接到在主机上的printcap文件中指定的任一打印机.
当服务器收到链接请求时,首先在已定义的段中搜索,若是有段名与被请求的共享资源名一致,则该段的内容就被采用.若是没有找到匹配的段,且在配置文件中存在[homes]段,则按照前面所说的方式处理.不然,被请求的资源就被看成是一个打印机名,服务器在适当的printcap文件中查找,检验被请求的共享资源名是不是有效的打印机共享名.若是共享名匹配,服务器就会复制[printers]段的内容来生成一个共享打印服务.
对新建共享的修改:
注意,[printers]段必须设置为可打印,若是你不这样设置,服务器会拒绝装载配置文件.
指定的典型路径应该设为一个公用的可写假脱机目录(spooling)而且设置sticky标志.一个典型的[printers]段以下所示:
[printers] path = /usr/spool/public guest ok = yes printable = yes
上台打印机在printcap文件中列出的全部别名都是服务器相关的有效打印机名.若是你系统的打印子系统的工做方式不是这样,你就必须设置一个伪printcap文件,其中包含一行或多行以下格式的设置:
别名1|别名2|别名3|别名4...
每一个别名必须是你的打印子系统能够接受的打印机名.在[global]段中指定这个新文件做为你的printcap文件.这个伪printcap文件能够包含任何你要的别名,而服务器只识别在此文件中列出的名字.这个技术能够很方便的用于限制对本地打印机子集的访问.
顺便提一下,printcap文件中的别名用每一个记录第一项的任何部分来定义.记录由换行进行分隔.若是一条记录中有多个部分,中间用"|"符号分隔.
注意,在SYSV系统中,用lpstat能够肯定系统中安装了什么样的打印机.你能够设置"printcap name = lpstat"来自动得到打印机列表.详情参见"printcap name"选项.
选项定义了每一个段的属性.
有些选项是在[global]段中设定的(好比有关安全特性的设置),有些能够用在任何段中的(好比创建方式 ),剩下的就只能用在普通的段中了.在如下的描述中,[homes]和[printers]段被看做是普通段.标记(G)表示此选项只能在[global]段中使用,标记(S)表示此选项能够在服务定义段中使用.注意,有(S)标记的选项也能够用在[global]段中,在这种状况下,这个选项设置被看成全部其余段的缺省设置.
选项的详细说明是按照字母顺序排列的,这样也许不是最好的分类方式,但至少保证你能够找获得他们.若是有多个同义词,那么咱们只对首选的那个做详细说明,其余的同义词都只指明参阅那个首选的选项名.
在配置文件中能够用不少字符串进行替换.例如,当用户以john的名称创建链接后,选项"path = /tmp/%u"就被解释成"path = /tmp/john".
这些置换会在后面的描述中说明,这里说明一些能够用在任何地方的通用置换.它们是:
Note that this parameter is not available when Samba listens on port 445, as clients no longer send this information
The following substitutes apply only to some configuration options(only those that are used when a connection has been established):
灵活运用这些置换和其余的smb.conf选项能够作出很是有创造性的事情来.
Samba支持"名称修正",这样dos和windows客户端就能够使用与8.3格式不一致的文件.也能够用来调整8.3格式文件名的大小写.
有一些选项能够控制名称修正的执行,下面集中列出来.对于缺省状况请看testparm程序的输出结果.
全部这些选项均可以针对每一个服务项单独设置(固然也能够设为全局变量).
这些选项是:
缺省状况下,Samba3.0与Windows NT相同,就是不区分大小写但保持大小写形式.
用户有多种链接到服务项的方式.服务器按照下面的步骤来肯定是否容许客户对指定服务的链接.若是下面步骤所有失败,则拒绝用户的链接请求.若是某一步经过,余下的检验就再也不进行.
若是被请求的服务项设置为guest only = yes,而且,服务运行在共享级安全模式(security = share) ,则跳过1--5步检查.
如下列出了全部的全局选项,各选项的详细说明请参看后面的相应段落.注意,有些选项的意义是相同的.
如下列出了全部关于服务项的选项,各选项的详细说明请参见后面的相应段落.注意,有些选项的意义是相同的.
This command will be run as user.
缺省设置: None.
示例: abort shutdown script = /sbin/shutdown -c
缺省设置: acl compatibility = Auto
示例: acl compatibility = win2k
This option is only required when using sam back-ends tied to the Unix uid method of RID calculation such as smbpasswd. This option is only available in Samba 3.0.
缺省设置: add machine script = <空字符串>
示例: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
For a Samba host this means that the printer must be physically added to the underlying printing system. The add printer command defines a script to be run which will perform the necessary operations for adding the printer to the print system and to add the appropriate service definition to the smb.conf file in order that it can be shared by smbd(8).
The addprinter command is automatically invoked with the following parameter (in order):
printer name
share name
port name
driver name
location
Windows 9x driver location
All parameters are filled in from the PRINTER_INFO_2 structure sent by the Windows NT/2000 client with one exception. The "Windows 9x driver location" parameter is included for backwards compatibility only. The remaining fields in the structure are generated from answers to the APW questions.
Once the addprinter command has been executed, smbd will reparse the smb.conf to determine if the share defined by the APW exists. If the sharename is still invalid, then smbd will return an ACCESS_DENIED error to the client.
The "add printer command" program can output a single line of text, which Samba will set as the port the new printer is connected to. If this line isn't output, Samba won't reload its printer shares.
参见 deleteprinter command, printing, show add printer wizard
缺省设置: none
示例: addprinter command = /usr/bin/addprinter
When executed, smbd will automatically invoke the add share command with four parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the new share.
pathName - path to an **existing** directory on disk.
comment - comment string to associate with the new share.
This parameter is only used for add file shares. To add printer shares, see the addprinter command.
参见 change share command, delete share command.
缺省设置: none
示例: add share command = /usr/local/bin/addshare
一般,samba服务器须要为全部访问服务器上文件的用户创建UNIX用户帐号.可是在使用Windows NT帐号数据库做为主用户数据库的站点,创建这些用户并在与NT的主域控制器保持用户列表同步是一件很麻烦的事情.这个选项使smbd能够在用户访问时根据须要自动生成UNIX用户帐号.
为了使用这个选项,smbd必须被设置成security=server或者security=domain,而且add user script必须设为用%u参数来创建unix账号的脚本文件的全路径,%u扩展成创建的unix账号名.
当windows用户尝试访问samba服务器时,在登录时(创建SMB协议会话),smbd与口令服务器联系,并尝试验证用户名和口令.若是成功,smbd就会根据unix的口令文件试着将这个windows用户映射成一个unix用户.若是查找失败,但设置了add user script ,smbd就会以root的身份调用这个脚本,将%u扩展成该要创建的用户帐号.
若是这个脚本执行成功,smbd就认为这个用户已经存在.用这种方式,能够动态创建UNIX用户帐号并匹配已有的NT帐号.
参见 security, password server, delete user script.
缺省设置: add user script = <空字符串>
示例: add user script = /usr/local/samba/bin/add_user %u
缺省设置: add user to group script =
示例: add user to group script = /usr/sbin/adduser %u %g
当心使用该选项,由于在这个名单里的用户能够对共享资源做任何他们想作的事.
缺省设置: 没有 admin users
示例: admin users = jason
缺省设置: afs share = no
示例: afs share = yes
The mapped user name must contain the cell name to log into, so without setting this parameter there will be no token.
缺省设置: none
示例: afs username map = %u@afs.samba.org
Setting this option to a larger value could be useful to sites transitioning from WinNT and Win2k, as existing user and group rids would otherwise clash with sytem users etc.
All UIDs and GIDs must be able to be resolved into SIDs for the correct operation of ACLs on the server. As such the algorithmic mapping can't be 'turned off', but pushing it 'out of the way' should resolve the issues. Users and groups can then be assigned 'low' RIDs in arbitary-rid supporting backends.
缺省设置: algorithmic rid base = 1000
示例: algorithmic rid base = 100000
若是你只须要在域中对成员提供服务资源的话这个选项是很是有用的.举例来讲,假设有两个域DOMA和DOMB,DOMA已经向DOMB进行了委托,而samba服务器位于DOMA中.在一般状况下,在DOMB中有帐号的用户能够用一样的samba服务器帐号名访问UNIX上的资源.而无须他在DOMA上有帐号.不过这样就使安全界线更难分清了.
缺省设置: allow trusted domains = yes
缺省设置: announce as = NT Server
示例: announce as = Win95
缺省设置: announce version = 4.9
示例: announce version = 2.0
Each entry in the list attempts to authenticate the user in turn, until the user authenticates. In practice only one method will ever actually be able to complete the authentication.
Possible options include guest (anonymous access), sam (lookups in local list of accounts based on netbios name or domain name), winbind (relay authentication requests for remote users through winbindd), ntdomain (pre-winbindd method of authentication for remote domain users; deprecated in favour of winbind method), trustdomain (authenticate trusted users by contacting the remote DC directly from smbd; deprecated in favour of winbind method).
缺省设置: auth methods = <空字符串>
示例: auth methods = guest sam winbind
缺省设置: available = yes
对于名字服务,它将使nmbd 绑定到'interfaces'选项里列出的网络接口的137和138端口上.为了读取广播消息,nmbd也会绑定到"全部地址"接口(0.0.0.0)的137和138端口上.若是没有设置这个选项,nmbd将在全部的接口上响应名字服务请求.若是设置了"bind interfaces only",那么nmbd将在广播接口上检查任何分组的源地址,丢弃任何不匹配interfaces选项所列接口之广播地址的分组.当在其它接口上收到单播分组,此选项使nmbd拒绝对任何不是是interfaces选项所列接口来发送分组的主机的服务.IP源地址哄骗能够使这个简单的检查失效,因此不要将nmbd安全功能用于严肃场合.
对于文件服务,该选项使smbd(8)只在'interfaces'选项所列的网络接口上绑定.这就限制smbd 只响应那些接口上发出的分组.注意,不该该在PPP和时断时续的机器上或非广播网络接口上使用这个选项,由于它处理不了非永久链接的接口.
若是设置了bind interfaces only,除非网络地址127.0.0.1被加到interfaces选项的列表中,不然smbpasswd(8)和swat(8) 可能不会象咱们所指望的那样工做,缘由以下:
为了改变用户SMB口令,smbpasswd缺省状况下会以smb客户端的身份链接本地主机地址localhost - 127.0.0.1,发出更改口令请求.若是设置了bind interfaces only,smbpasswd在缺省状况下将会链接失败,除非127.0.0.1已被加入到interfaces选项.另外,能够用-r remote machine选项指定本地主机的主网络接口ip地址,这样smbpasswd就会强制使用本地的主ip地址.
swat的状态页面会在127.0.0.1尝试链接smbd和 nmbd,以肯定它们是否正在运行.若是不加入127.0.0.1,将会使smbd和nmbd 总表示没有运行甚至实际状况并非这样.这就阻止了 swat启动/中止/重启动smbd 和nmbd进程.
缺省设置: bind interfaces only = no
若是设置了这个选项,锁定范围请求不能当即知足的话,samba将会在内部对请求进行排队,而且周期性地尝试得到锁定,直到超时.
若是这个选项设置为no,samba就会同之前版本那样,在锁定范围没法得到时当即使锁定请求失败.
缺省设置: blocking locks = yes
Changing this parameter may have some effect on the efficiency of client writes, this is not yet confirmed. This parameter was added to allow advanced administrators to change it (usually to a higher value) and test the effect it has on client write performance without re-compiling the code. As this is an experimental option it may be removed in a future release.
Changing this option does not change the disk free reporting size, just the block size unit reported to the client.
缺省设置: browseable = yes
缺省设置: browse list = yes
缺省设置: case sensitive = no
缺省设置: change notify timeout = 60
示例: change notify timeout = 300
这将把扫描时间改成每5分钟一次.
When executed, smbd will automatically invoke the change share command with four parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the new share.
pathName - path to an **existing** directory on disk.
comment - comment string to associate with the new share.
This parameter is only used modify existing file shares definitions. To modify printer shares, use the "Printers..." folder as seen when browsing the Samba host.
参见 add share command, delete share command.
缺省设置: none
示例: change share command = /usr/local/bin/addshare
The LANMAN encrypted response is easily broken, due to it's case-insensitive nature, and the choice of algorithm. Clients without Windows 95/98 servers are advised to disable this option.
Disabling this option will also disable the client plaintext auth option
Likewise, if the client ntlmv2 auth parameter is enabled, then only NTLMv2 logins will be attempted. Not all servers support NTLMv2, and most will require special configuration to us it.
Default : client lanman auth = yes
If enabled, only an NTLMv2 and LMv2 response (both much more secure than earlier versions) will be sent. Many servers (including NT4 < SP4, Win9x and Samba 2.2) are not compatible with NTLMv2.
Similarly, if enabled, NTLMv1, client lanman auth and client plaintext auth authentication will be disabled. This also disables share-level authentication.
If disabled, an NTLM response (and possibly a LANMAN response) will be sent by the client, depending on the value of client lanman auth.
Note that some sites (particularly those following 'best practice' security polices) only allow NTLMv2 responses, and not the weaker LM or NTLM.
Default : client ntlmv2 auth = no
缺省设置: client plaintext auth = yes
缺省设置: client schannel = auto
示例: client schannel = yes
When set to auto, SMB signing is offered, but not enforced. When set to mandatory, SMB signing is required and if set to disabled, SMB signing is not offered either.
缺省设置: client signing = auto
缺省设置: client use spnego = yes
若是想设置机器名后的说明文字请参考 server string 命令.
缺省设置: No comment string
示例: comment = Fred's Files
因为这个缘由,若是在加载这个选项的时候发现配置文件名变化了,就会重新的配置文件里从新加载选项.
这个选项做为经常使用的替换很是有用.
若是这个配置文件不存在,那么就不会被加载.(容许你特殊地处理少数客户的配置文件)
示例: config file = /usr/local/samba/lib/smb.conf.%m
这个特性容许创建一个服务的'模版',能够很容易的生成类似的服务.注意,被拷贝的服务在配置文件里必须先于拷贝的服务出现.
缺省设置: no value
示例: copy = otherservice
当生成一个文件的时候,须要知道从dos模式映射到unix下的文件权限.最后的结果用这个参数进行逐位的与运算获得.这个选项能够理解成unix下文件的位掩码.在生成文件的时候,任何没有设置的位将会从建立模式中去掉.
这个选项的缺省值是从unix的文件建立模式中去掉组和其余用户的写和执行标志位.
根据这个规则,samba将会把这个选项生成的unix文件建立模式和由force create mode设置的选项进行逐位的或运算,force create mode 的缺省选项是000.
这个选项不会影响目录建立模式.细节参见directory mode .
参考force create mode以进一步了解在建立文件时设置的特殊位.关于建立目录模式参见directory mode选项.参见 inherit permissions parameter.
Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the security mask.
缺省设置: create mask = 0744
示例: create mask = 0775
These values correspond to those used on Windows servers.
For example, shares containing roaming profiles can have offline caching disabled using csc policy = disable.
缺省设置: csc policy = manual
示例: csc policy = programs
这能够保护服务器不被过多的发呆链接耗尽资源.
多数客户端有链接断开后的自动重连功能,因此大多数状况下,这个选项对用户应该是透明的
对多数系统建议使用较短的发呆超时的选项.
发呆超时选项被设为0意味着不会自动断开链接..
缺省设置: deadtime = 0
示例: deadtime = 15
注意要使用这个选项,必须打开 debug timestamp选项.
缺省设置: debug hires timestamp = no
注意要使用这个选项,必须打开 debug timestamp 选项.
缺省设置: debug pid = no
缺省设置: debug timestamp = yes
Note that the parameter must be on for this to have an effect. 注意要使用这个选项,必须打开 debug timestamp选项.
缺省设置: debug uid = no
缺省设置: default case = lower
Most problems with serving printer drivers to Windows NT/2k/XP clients can be traced to a problem with the generated device mode. Certain drivers will do things such as crashing the client's Explorer.exe with a NULL devmode. However, other printer drivers can cause the client's spooler service (spoolsv.exe) to die if the devmode was not created by the driver itself (i.e. smbd generates a default devmode).
This parameter should be used with care and tested with the printer driver in question. It is better to leave the device mode to NULL and let the Windows client set the correct values. Because drivers do not do this all the time, setting default devmode = yes will instruct smbd to generate a default one.
For more information on Windows NT/2k printing and Device Modes, see the MSDN documentation.
缺省设置: default devmode = no
这个选项没有缺省值. 若是没给出这个选项的话,对不存在的服务的请求将返回错误.
缺省服务通常是那些容许guest ok, read-only的服务.
外在的服务名可能被替换成请求的服务名,这样就能够用象%S这样的宏来作一个通用的服务.
注意在缺省服务选项指定的服务名里, 字符'_'被映射为'/'. 这样可能会出现有趣的事情.
示例:
[global] default service = pub [pub] path = /%S
For a Samba host this means that the printer must be physically deleted from underlying printing system. The deleteprinter command defines a script to be run which will perform the necessary operations for removing the printer from the print system and from smb.conf.
The deleteprinter command is automatically called with only one parameter: "printer name".
Once the deleteprinter command has been executed, smbd will reparse the smb.conf to associated printer no longer exists. If the sharename is still valid, then smbd will return an ACCESS_DENIED error to the client.
参见 addprinter command, printing, show add printer wizard
缺省设置: none
示例: deleteprinter command = /usr/bin/removeprinter
这个选项对于rcs这样的应用颇有用,在这种状况下,unix文件的属主不容许改变权限,dos文件只读.
缺省设置: delete readonly = no
When executed, smbd will automatically invoke the delete share command with two parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the existing service.
This parameter is only used to remove file shares. To delete printer shares, see the deleteprinter command.
参见 add share command, change share command.
缺省设置: none
示例: delete share command = /usr/local/bin/delshare
缺省设置: delete user from group script =
示例: delete user from group script = /usr/sbin/deluser %u %g
当远程客户使用'User Manager for Domains' 或是 rpcclient 从服务器上删除一个用户时执行此操做。
这个脚本删除给定的unix用户。
缺省设置: delete user script = <空字符串>
示例: delete user script = /usr/local/samba/bin/del_user %u
若是这个选项被设为了 yes,Samba将试图递归删除在被禁止目录里的任何文件和目录.这对于整合象NetAtalk这样的文件服务系统颇有用,它一般会在目录里生成Dos/windows用户看不见的中间文件(e.g. .AppleDouble).
设置delete veto files = yes 使那些有权限的用户能够在删除父目录的时候透明的删除子目录.
参见 veto files 选项.
缺省设置: delete veto files = no
这个设置容许用外部程序代替内部程序来计算总共的磁盘空间和可用的磁盘空间.下面的例子给出了一个能完成这个功能的脚本.
这个外部程序的输入是文件系统里一个须要计算的目录,典型的包括./字符串.以ascii码返回两个整数.第一个是总共的磁盘空间(以块为单位),第二个是可用块树.可选的第三个返回值能够以字节为单位给出块的大小.缺省的块的大小是1024字节.
注意:这个脚本应该属主为root,只有root可写,而且不能带有用户标识位和组标识位(setuid or setgid)!
缺省设置: 缺省用内部程序来计算磁盘容量和可用空间.
示例: dfree command = /usr/local/samba/bin/dfree
以下这个dfree脚本必须是可执行的.
#!/bin/sh df $1 | tail -1 | awk '{print $2" "$4}'
在Sys V一类的系统上多是:
#!/bin/sh /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
注意在特定的系统上可能须要给出相应的带有全路径的命令.
当生成一个路径的时候,必须指定的目录权限从dos模式映射到unix模式,而后这个结果和这个选项进行逐位的与运算.这个选项能够理解成unix模式下的位掩码.这个选项里任何没有设置的位在生成unix下的目录时将会被去掉
缺省状况下,这个选项把组和其余用户的写权限位去掉,只容许目录的属主对目录进行修改.
Samba将把这个选项和force directory mode的选项进行逐位的或运算,这个选项缺省时设置为000(也就是不加额外的限制).
Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the directory security mask.
在生成目录时若是须要设置特殊的模式位,参见force directory mode选项.
关于生成文件时的模式位参见create mode 选项和directory security mask选项.
Also refer to the inherit permissions parameter.
缺省设置: directory mask = 0755
示例: directory mask = 0775
这个选项以掩码来实现改变权限位,因此在修改时要防止不在掩码中涉及的那些位.实际上,在这个掩码中的位0能够使用户没法改变任何东东.
若是没有明确设定的话,这个选项会用与directory mask选项一样的值.要容许用户在目录中能够修改全部的user/group/world权限,能够把这个选项设为0777.
注意,能访问samba服务器的用户经过其它方法也能够很容易地绕过这个限制,因此对独立工做的系统来讲这个选项是最根本最有用的.不少系统管理的管理员都会把它设为默认的0777.
参见 force directory security mode, security mask, force security mode 选项。
缺省设置: directory security mask = 0777
示例: directory security mask = 0700
Note that clients that only support netbios won't be able to see your samba server when netbios support is disabled.
缺省设置: disable netbios = no
示例: disable netbios = yes
See also use client driver
Default : disable spoolss = no
缺省设置: display charset = ASCII
示例: display charset = UTF8
注意,NetBISO名的最大长度是15个字符,因此DNS名(或DNS别名)一样最多只能有15个字符.
nmbd 在作DNS名查询的时候将自身复制一份,由于域名查询是一个阻塞的动做.
参见 wins support 。
缺省设置: dns proxy = yes
缺省设置: domain logons = no
注意,windows NT主域控制器默认状况老是占有这个在工做组中的特殊的NetBIOS名,宣称本身是工做组的主域浏览器(也就是说,没有什么方法能够阻止一个Windows NT主域控制器这样作). 这样若是设置了这个选项,而且nmbd 在Windows NT以前向工做组宣称了这个特殊的名字,那么跨子网的浏览行为会变得奇怪,而且可能会失败.
If domain logons = yes , then the default behavior is to enable the domain master 选项。 If domain logons is not enabled (the default setting), then neither will domain master be enabled by default.
缺省设置: domain master = auto
注意,Samba对'dont descend'选项的输入格式十分挑剔.例如他也许要求你输入./proc而不是仅仅是/proc.实践是最好的策略.
缺省设置: none (也就是说,全部目录的内容会正常的传递给客户端)
示例: dont descend = /proc,/dev
The default depends on which charsets you have installed. Samba tries to use charset 850 but falls back to ASCII in case it is not available. Run testparm(1) to check the default on your system.
缺省设置: dos filemode = no
这个选项的主要用于解决Visual C++与Samba的兼容性问题.当共享文件被锁定时(oplocks选项被设置为容许),Visual C++使用两个不一样的读取时间的函数调用来检查文件自从最后一次读操做以来是否有改变.其中一个函数使用1秒的时间尺度,而另外一个则使用2秒的时间尺度.因为使用基于2秒的方法要舍去任何的奇数秒,当文件的时间记录是奇数秒时,Visual C++的两次函数调用结果就会不一致,Visual C++就会老是认为文件被改变.设置这个选项能够使得两次函数调用的结果一致,Visual C++会很高兴的接受这一切.
缺省设置: dos filetime resolution = no
缺省设置: dos filetimes = no
缺省设置: enable rid algorithm = <yes>
想要使加密口令能正确的工做, smbd(8)必须能访问本地的smbpasswd(5)文件(如何正确设置和维护这个文件,请参阅smbpasswd(8)手册),或者,设置选项security= [server|domain|ads],这样设置将使得smbd依赖其它的服务器来帮它鉴别口令.
缺省设置: encrypt passwords = yes
The first enhancement to browse propagation consists of a regular wildcard query to a Samba WINS server for all Domain Master Browsers, followed by a browse synchronization with each of the returned DMBs. The second enhancement consists of a regular randomised browse synchronization with all currently known DMBs.
You may wish to disable this option if you have a problem with empty workgroups not disappearing from browse lists. Due to the restrictions of the browse protocols these enhancements can cause a empty workgroup to stay around forever which can be annoying.
In general you should leave this option enabled as it makes cross-subnet browse propagation much more reliable.
缺省设置: enhanced browsing = yes
缺省设置: no enumports command
示例: enumports command = /usr/bin/listports
这个选项的主要用于解决Visual C++与Samba的兼容性问题.Visual C++生成makefiles文件时, 包含目标文件所依赖的目的目录. 包含创建目录的规则. 一样的, 当NMAKE比较时间属性时, 它检查目录创建时间. 目标目录不存在的话, 会创建一个;若是存在,它的创建时间老是比它所包含的目标文件的创建时间早.
UNIX的时间规则意味着只要有文件在共享目录中创建或删除,Samba将更新关于该目录创建时间的报告. NMAKE将发现目录中除了最后创建的文件之外的全部目标文件都过时了(与目录的创建时间相比较), 而后从新编译目标文件.设置这个选项值将保证目录的创建时间早于它里面的文件,NMAKE就可以正常工做.
缺省设置: fake directory create times = no
当你设置fake oplocks = yes后,smbd(8)老是容许oplock请求, 而无论到底有多少的客户端在使用这个文件.
在一般状况下, 使用真实的oplocks支持老是比使用这个选项好.
若是你使用这个选项在一些只读的共享上(例如: CDROM共享),或者你知道这个共享只可以被一个客户端所访问(例如: 客户主目录). 你将会注意到性能上的重大提高. 若是你将这个选项用在多个客户端均可以读写的共享上, 因为客户可能同时访问一个共享文件, 这样会形成文件损坏. 请必定当心使用.
缺省设置: fake oplocks = no
这个选项缺省是容许(也就是, smbd将容许访问符号连接)
缺省设置: follow symlinks = yes
参见 create mask 来得到关于创建文件时的掩码的详细资料。
另外也参见 inherit permissions 参数.
缺省设置: force create mode = 000
示例: force create mode = 0755
这个例子中, 将迫使全部被创建的文档对"同组/其它(用户)"有读和执行权. 对用户本身有读/写/执行权力.
参见 directory mask 来得到关于创建目录时的掩码的详细资料。
另外也参见 inherit permissions参数.
缺省设置: force directory mode = 000
示例: force directory mode = 0755
这个例子中, 将迫使全部被创建的目录对"同组/其它(用户)"有读和进入权. 对用户本身有读/写/进入权力.
此选项以掩码('or')来实现权限位的改变,因此它强制了任何掩码中用户能够更改的位.实际上,当在修改目录的安全性时,这个掩码中的一个0位能够做为一组用户已经设为'on'的位来看待.
若是没有明确设定的话,这个选项会用与force directory mode选项一样的值.要容许用户在目录中能够修改全部的user/group/world权限,能够把这个选项设为0000.
注意,能访问samba服务器的用户经过其它方法也能够很容易地绕过这个限制,因此这个参数只对独立工做的应用系统来讲有用.不少系统管理的管理员都会把它设为默认的0000.
参见 directory security mask, security mask, force security mode 参数。
缺省设置: force directory security mode = 0
示例: force directory security mode = 700
在samba 2.0.5及更新的版本中这个选项已经按下面的方法有了一些扩展功能.若是在此列出的组名有一个'+'字符加在名称前的话,当前用户正在访问的共享资源只有初始组被缺省分配到这个组中,而可能的状况是用户已是其它组成员了.这样,管理员能够决定只有在特殊组里的用户才能以设定的组身份创建文件,更有益于全部权分配管理.例如,设定force group = +sys的话,只有在sys组里的用户才能在访问samba共享资源时拥有缺省的初始组标识.而其它全部用户保留他们原始的组标识.
若是又设定了 force user选项的话,force group选项中指定的组将会越过在 force user中指定的初始组. If the force user parameter is also set the group specified in force group will override the primary group set in force user.
参见 force user选项.
缺省设置: no forced group
示例: force group = agroup
此选项以掩码('or')来实现权限位的改变,因此它强制了任何掩码中用户能够更改的位.实际上,当在修改目录的安全性时,这个掩码中的一个0位能够做为一组用户已经设为'on'的位来看待.
若是没有明确设定的话,这个选项会用与force create mode选项一样的值.要容许用户在文件上能够修改全部的user/group/world权限,能够把这个选项设为000.
注意,能访问samba服务器的用户经过其它方法能够很容易地绕过这个限制,因此这个选项对独立工做的系统来讲才有用的.不少系统管理的管理员都会把它设为默认的0000.
参见 force directory security mode, directory security mask, security mask 参数。
缺省设置: force security mode = 0
示例: force security mode = 700
这个选项只有当一个链接创建起来后才有用. 在创建链接的使用, 用户仍是必须有合法的用户名和口令. 一旦链接创建起来, 全部的操做将强迫以这个名字进行, 而无论它是以什么名字登陆的.
samba 2.0.5和更新的版本中这个选项会致使用户的初始组被做为全部文件操做的初始组.2.0.5之前的初始组被容许做为联接用户的初始组(这是个bug)
参见 force group 选项。
缺省设置: no forced user
示例: force user = auser
缺省设置: fstype = NTFS
示例: fstype = Samba
This parameter should specify the path to a script that queries the quota information for the specified user/group for the partition that the specified directory is on.
Such a script should take 3 arguments:
directory
type of query
uid of user or gid of group
The type of query can be one of :
1 - user quotas
2 - user default quotas (uid = -1)
3 - group quotas
4 - group default quotas (gid = -1)
This script should print its output according to the following format:
Line 1 - quota flags (0 = no quotas, 1 = quotas enabled, 2 = quotas enabled and enforced)
Line 2 - number of currently used blocks
Line 3 - the softlimit number of blocks
Line 4 - the hardlimit number of blocks
Line 5 - currently used number of inodes
Line 6 - the softlimit number of inodes
Line 7 - the hardlimit number of inodes
Line 8(optional) - the number of bytes in a block(default is 1024)
参见 set quota command 选项。
缺省设置: get quota command =
示例: get quota command = /usr/local/sbin/query_quota
缺省设置: getwd cache = yes
在某些系统上,缺省的访问用户名"nobody"帐户可能不能打印.若是遇到这种状况,请使用其它的帐户名(例如ftp)。想要测试这种状况,能够试着用来访帐户登陆(能够用su -命令),而后,使用系统打印命令lpr(1)或lp(1).
这个参数不接受%宏,由于Samba系统的不少组件要正确工做都须要这个值是一个常量。
缺省设置: 编译时指定,一般是"nobody"
示例: guest account = ftp
这个选项抵消了设置 restrict anonymous = 2 的好处。
参见下面的 security来得到更多信息。
缺省设置: guest ok = no
参见下面的 security 参数来得到更多信息。
缺省设置: guest only = no
缺省设置: hide dot files = yes
每一个条目必须以"/"分隔以便容许在条目中使用空格.能够使用DOS风格的通配符"*"和"?"匹配多个目录和文件。
每个条目必须使用UNIX格式的路径,而不是DOS格式的路径,同时,不能包含UNIX路径分隔符"/".
注意:大小写敏感的特性也适用于隐含文件.
设置这个选项会影响Samba的性能,它会迫使系统检查全部的文件和目录以肯定是否与它的所要寻找的项目匹配.
参见 hide dot files, veto files 和 case sensitive.
缺省设置: 没有隐藏文件
示例: hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
上面的例子中的文件从Thursby共享出来,给Macintosh的SMB客户端(DAVE),供内部使用,仍然隐藏了"."打头的文件.
缺省设置: hide local users = no
缺省设置: hide special files = no
缺省设置: hide unreadable = no
缺省设置: hide unwriteable = no
username server:/some/file/system
程序从":"号前取得服务器名字.未来也许会有更好的解释系统来处理不一样的映射格式,固然,也包括Amd(另外一种自动装载方式)映射.
须要系统中有一个运行的NIS客户来使这个选项工做。
参见 nis homedir , domain logons .
缺省设置: homedir map = <空字符串>
示例: homedir map = amd.homedir
参见 msdfs root share level 选项。 For more information on setting up a Dfs tree on Samba, refer to ???.
缺省设置: host msdfs = no
缺省设置: hostname lookups = yes
示例: hostname lookups = no
这个选项是一个由逗号,空格或者tab字符隔开的一组主机名.列入其中的主机才容许访问.
若是该选项出如今[global]段中,它会做用于全部服务而忽略单个服务所做的不一样设置.
你能够用ip地址或主机名来指定主机.好比,你能够用相似 allow hosts = 150.203.5. 来限定只容许访问在这个c类子网中的主机.hosts_access(5)中详细描述了关于这个选项设置的完整语法.注意到你的系统中也许没有这个参考手册,这里也做一个简单的说明.
注意,本机地址127.0.0.1 老是容许链接,除非在hosts deny 选项中加以禁止.
你也能够使用子网号/子网掩码对来指定主机.若是你的网络支持网络组,你还能够用网络组名来指定组内的主机.EXCEPT(除了...)关键字能够在使用了通配符的状况下起到限定做用.
Example 1: 容许150.203.*.* 中除了一台机器以外的全部IP访问
hosts allow = 150.203. EXCEPT 150.203.6.66
Example 2: 容许知足给定的子网号/子网掩码的IP访问
hosts allow = 150.203.15.0/255.255.255.0
Example 3: 容许一系列主机访问
hosts allow = lapland, arvidsjaur
Example 4: 容许NIS网络组"foonet"访问,可是禁止其中的一台主机
hosts allow = @foonet
hosts deny = pirate
注意,访问时仍是须要有适当的用户级口令.
参见testparm(1) 来检测主机是否能够按照你但愿的方式被访问.
缺省设置: none (也就是说,全部机器均可以访问)
示例: allow hosts = 150.203.5. myhost.mynet.edu.au
缺省设置: none (没有禁止访问的主机)
示例: hosts deny = 150.203.4. badhost.mynet.edu.au
不要把这个选项和hosts allow 搞混了,那是关于控制主机对服务的访问的,用于管理对来访者的服务.而 hosts equiv是用于支持那些不对samba提供口令的NT客户的.
注意:使用hosts equiv 可能会成为一个很大的安全漏洞.这是由于你相信发起访问的PC提供了正确的用户名.找一台PC来提供一个假的用户名是很容易的.我建议你只有在彻底明白你在干什么的状况下才使用hosts equiv选项,或者在你本身的家里(那里有你能够彻底信任的配偶和孩子)使用它.仅仅是在你彻底能够信任他们的时候才用 :-)
缺省设置: no host equivalences
示例: hosts equiv = /etc/hosts.equiv
缺省设置: idmap backend = <空字符串>
示例: idmap backend = ldap:ldap://ldapslave.example.com
The availability of an idmap gid range is essential for correct operation of all group mapping.
缺省设置: idmap gid = <空字符串>
示例: idmap gid = 10000-20000
缺省设置: idmap uid = <空字符串>
示例: idmap uid = 10000-20000
它支持标准替换,除%u , %P 和 %S之外.
缺省设置: 没有包含其余文件
示例: include = /usr/local/samba/lib/admin_smb.conf
缺省设置: inherit acls = no
New directories inherit the mode of the parent directory, including bits such as setgid.
New files inherit their read/write bits from the parent directory. Their execute bits continue to be determined by map archive , map hidden and map system as usual.
Note that the setuid bit is never set via inheritance (the code explicitly prohibits this).
This can be particularly useful on large systems with many users, perhaps several thousand, to allow a single [homes] share to be used flexibly by each user.
参见 create mask , directory mask, force create mode and force directory mode .
缺省设置: inherit permissions = no
这个选项的内容是一个接口字符串的列表, 每一个字符串能够是下列任何一种格式:
一个网络接口名(例如eth0).它能够包含象在shell风格的通配符如eth*来匹配任何以子字符品"eth"起始的网络接口.
一个IP地址.这种状况下,网络掩码是从内核中得到的接口列表中检测的.
一个IP/掩码对.
一个广播地址/掩码对.
"mask"选项能够是一个位长度(例如C类网络能够是24)或者是以点分格式出现的完整网络地址掩码.
"IP"选项能够是完整点分十六进制IP地址或是按操做系统一般使用的主机名解析机制查找的主机名.
例如,下面这一行:
interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0
将配置三个网络接口,对应eth0设备以及IP地址192.168.2.10 和192.168.3.10。后两个接口的网络掩码将设置为255.255.255.0。
参见bind interfaces only.
缺省设置: 除了127.0.0.1 以外的全部活动接口 that are broadcast capable
以@开头的用户名首先被看成NIS网络组名(若是你的系统支持NIS的话),若是在NIS的网络组数据库中找不到这个组,那么这个名字就被看成一个UNIX用户组名来处理.
以+开头的用户名仅表示UNIX用户组名,以&开头的用户名仅表示NIX网络组名(这个设置要求你的系统中有NIS在运行).'+'和'&'符号能够以任何顺序出如今用户组名前,所以,你能够指定对这个名称的查找次序,好比+&group表示先在UNIX用户组中查找,再在NIS网络组中查找,而&+group则相反,先在NIX网络组中查找,再到UNIX用户组中查找.(这与使用@前缀的效果相同).
当前的服务名能够用%S来表示,这在[homes]段中是颇有用的.
参见 valid users .
缺省设置: 没有非法用户
示例: invalid users = root fred admin @wheel
一般,若是用于链接的socket使用了SO_KEEPALIVE属性设置(参见socket options),那么发送保持链接的包是不须要的.基本上,除非你遇到了某些困难,这个选项是用不到的.
缺省设置: keepalive = 300
示例: keepalive = 600
This parameter is only usd when your kernel supports change notification to user programs, using the F_NOTIFY fcntl.
缺省设置: Yes
内核机会性锁定操做使得本地UNIX进程或NFS对文件进行操做时能够锁定(冻结)smbd(8)对同一个文件的oplocks 操做.这能够保持SMB/CIFS,NFS和本地文件操做之间的数据一致性.(这是一个很cool的特性哦 :-)
若是你的系统支持这个设置,缺省设置就是on(打开),若是系统不支持,缺省设置就是Off(关闭).你根本没必要去管这个选项.
参见 oplocks 和 level2 oplocks 参数.
缺省设置: kernel oplocks = yes
The LANMAN encrypted response is easily broken, due to it's case-insensitive nature, and the choice of algorithm. Servers without Windows 95/98 or MS DOS clients are advised to disable this option.
Unlike the encypt passwords option, this parameter cannot alter client behaviour, and the LANMAN response will still be sent over the network. See the client lanman auth to disable this for Samba's clients (such as smbclient)
If this option, and ntlm auth are both disabled, then only NTLMv2 logins will be permited. Not all clients support NTLMv2, and most will require special configuration to us it.
Default : lanman auth = yes
缺省设置: large readwrite = yes
缺省设置: ldap delete dn = no
缺省设置: ldap filter = (&(uid=%u)(objectclass=sambaAccount))
缺省设置: none
示例: dc=samba,ou=Groups
缺省设置: none
示例: ou=Idmap,dc=samba,dc=org
缺省设置: none
The ldap passwd sync can be set to one of three values:
Yes = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time.
No = Update NT and LM passwords and update the pwdLastSet time.
Only = Only update the LDAP password and let the LDAP server do the rest.
缺省设置: ldap passwd sync = no
这个选项控制用于和LDAP服务器通信的tcp端口号。默认应用标准的LDAP端口636。
参见: ldap ssl
Default : ldap port = 636 ; 若是 ldap ssl = on
Default : ldap port = 389 ; 若是 ldap ssl = off
这个选项应当包含ldap目录服务器的FQDN,用来查询和定位用户账户信息。
Default : ldap server = localhost
The ldap ssl can be set to one of three values:
Off = Never use SSL when querying the directory.
Start_tls = Use the LDAPv3 StartTLS extended operation (RFC2830) for communicating with the directory server.
On = Use SSL on the ldaps port when contacting the ldap server. Only available when the backwards-compatiblity --with-ldapsam option is specified to configure. See passdb backend
Default : ldap ssl = start_tls
缺省设置: none
缺省设置: none
2级,或者只读oplocks容许Windows NT客户在文件中能够保持一个oplocks,一旦第二个用户请求同一文件时能够从读写oplocks级降为只读oplocks(而不是像传统的作法,保持惟一的oplocks,在第二次打开时释放全部的oplocks).这样就能够容许支持2级oplocks的文件打开者缓存用于只读的文件(也就是说,他们的写和锁定请求不可能被缓冲),而且使只读文件的大量访问提高性能(例如.exe文件).
一旦在拥有只读oplocks的客户中有一位对文件进行了写操做,全部的客户都会被通知(不须要回复及等待), told to break their oplocks to "none",而后删除全部read-ahead caches.
推荐打开这个选项,为共享的可执行程序提升访问速度。
更多关于2级oplocks的讨论请查看CIFS的规约.
当前,若是使用了kernel oplocks的话,就不会承认2级oplocks(即便把那个选项设为yes也没用).还要注意,oplocks 选项必须在共享上被设成yes才有效果.
参见 oplocks 和 kernel oplocks 选项。
缺省设置: level2 oplocks = yes
参见 lm interval.
缺省设置: lm announce = auto
示例: lm announce = yes
参见lm announce.
缺省设置: lm interval = 60
示例: lm interval = 120
缺省设置: load printers = yes
设置这个值为 no 将使 nmbd 永远不会 成为主控浏览器。
缺省设置: local master = yes
缺省设置: lock directory = ${prefix}/var/locks
示例: lock directory = /var/run/samba/locks
若是 locking = no ,全部的锁定请求和解除锁定请求将表现为成功执行.对锁定的查询将会显示没有锁定.
若是locking = yes 服务器将执行真正的锁定。
这个选项可能对只读文件系统有用,由于它可能不须要锁定(例如:CDROM).即便在这种状况下,咱们也不真正推荐使用no.
要特别当心,无论是全局的关闭这个选项或者在某个服务上关闭这个选项,都有可能因为缺乏锁定而致使数据损坏.其实,你根本就不须要设置这个选项.
缺省设置: locking = yes
缺省设置: lock spin count = 3
缺省设置: lock spin time = 10
这个选项支持标准的文件名代换变量,容许方便的为每一个用户或者机器设置专用的日志文件.
示例: log file = /usr/local/samba/var/log.%m
缺省的调试水平将在命令行里定义,若是没有定义,调试水平为零.
示例: log level = 3 passdb:5 auth:10 winbind:2
注意:这个选项只有在Samba是登陆服务器时才有用.
缺省设置: logon drive = z:
示例: logon drive = h:
C:\> NET USE H: /HOME
这样的命令。
这个选项支持标准的命令选项替换,方便为每一个用户或者机器提供登陆脚本.
This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a subdirectory of the user's home directory. This is done in the following way:
logon home = \%NU
rofile
This tells Samba to return the above string, with substitutions made when a client requests the info, generally in a NetUserGetInfo request. Win9X clients truncate the info to \\server\share when a user does net use /home but use the whole string when dealing with profiles.
Note that in prior versions of Samba, the logon path was returned rather than logon home. This broke net use /home but allowed profiles outside the home directory. The current implementation is correct, and can be used for profiles if you use the above trick.
注意,这个选项只在Samba被设置成为登陆服务器logon server时才起做用.
缺省设置: logon home = "\%NU"
示例: logon home = "\remote_smb_serverU"
这个选项支持标准替换,容许你为每个用户或机器设置不一样的登陆脚本.它也能够指定那些显示在Windows NT客户端上的"应用程序数据"(桌面,开始菜单,网上邻居和程序等文件夹和他们的内容).
指定的共享资源和路径必须是用户可读的,这样,设定的选项和目录才能被Windows NT客户端装载使用.这个共享资源在用户第一次登陆时必须是可写的,这样Windows NT客户端才能创建NTuser.dat文件及其余目录.
而后,这些目录以及其中的任何内容均可以根据须要设置为只读的.把NTuser.dat文件设置成只读是不明智的,你应该把它更名成NTuser.man(一个强制使用(MANdatory)的user.dat)来达到一样的目的.
Windows终端有时候即便没有用户登陆也会保持对[homes]共享资源的链接.所以,logon path不能包含对homes共享资源的任何参照(也就是说,把这个选项设置成相似\\%N\HOMES\profile_path会引发问题).
这个选项支持标准替换,容许你为不一样的机器或用户设置不一样的登陆脚本.
注意,这个选项只有在Samba被设置成为登陆服务器logon server的时候才起做用.
缺省设置: logon path = \\%N\%U\profile
示例: logon path = \\PROFILESERVER\PROFILE\%U
脚本文件的存放位置必须是相对于[netlogon]服务中指明的目录路径,举例来讲,若是[netlogon]服务指定了了一个path是/usr/local/samba/netlogon,而logon script = STARTUP.BAT, 那么将要下载到客户端执行的文件的实际存放位置是:
/usr/local/samba/netlogon/STARTUP.BAT
登陆脚本的内容包含什么,彻底由你决定.咱们建议包含这个指令:NET TIME \SERVER /SET /YES,它强迫每一台机器的时间和服务器的时间同步(以服务器的时间为准);另外一个建议是映射公共工具盘:NET USE U:\\SERVER\"公共工具目录" 例如:
NET USE Q:\SERVERISO9001_QA
注意:在一个有安全要求的系统环境中,特别重要的是要记住不要容许客户在[netlogon]上有写的权限,也不要给以客户改写登陆脚本文件的权利.若是容许客户随意的修改,安全规则就给撕裂了一个口子.
这个选项支持标准的置换规则,容许你为每一个不一样的用户或机器定制不一样的登陆脚本.
注意,这个选项只有在Samba设置为登陆服务器时才起做用.
缺省设置: no logon script defined
示例: logon script = scriptsU.bat
这个指令应该是一个能够根据打印机名和做业号中断打印做业的程序或脚本.实现这个操做的一个办法是使用做业优先级,优先级别过低的做业不会被发送到打印机上.
用%p置换能够取得打印机名,而%j会被打印做业号(一个整数)置换.在HPUX系统中(参见printing=hpux ),若是给lpq命令加上-p%p选项,打印做业会显示其执行状态,具体的说,若是做业的优先级低于阻塞级别,它会显示'PAUSED'状态,反之,若是做业的优先级等于或高于阻塞级别,它会显示'SPOOLED'或'PRINTING'状态.
注意,在这个设置中使用绝对路径是一个好习惯,由于这个路径有可能不在服务器的PATH环境变量中.
参见 printing parameter选项.
缺省设置: 目前这个选项没有缺省设置,除非printing选项设置SYSV,在这种状况下,缺省参数是:
lp -i %p-%j -H hold
或者在printing选项设置为softq时,缺省选项是:
qstat -s -j%j -h
在HPUX系统中的例子: lppause command = /usr/bin/lpalt %p-%j -p0
缓冲文件被存放在/tmp/lpq.xxxx文件中,其中的xxxx是正在使用的lpq命令哈希表.
这个选项的缺省值是10秒,这就是说之前相同的lpq命令的缓冲内容将在周期为10秒内被使用.若是lpq命令很是慢的话,能够取稍大的值.
把这个值设为0就彻底禁止了缓冲技术的使用.
参见 printing 选项.
缺省设置: lpq cache time = 10
示例: lpq cache time = 30
这个命令应该是一个只以打印机名做为选项并能够输出打印机状态信息的程序或脚本.
一般支持九种打印机状态信息:CUPS, BSD,AIX,LPRNG,PLP,SYSV,HPUX,QNX和SOFTQ.而这些正好覆盖了大多数的UNIX系统.你能够用printing =选项来控制到底要用哪一种类型.
有些客户端(特别是Windows for Workgroups)可能不能正确地向打印机发送联接号以得到状态信息.对此,服务器会向客户报告它所联接的首个打印服务.这样的状况只当联接号发送非法时才会发生.
若是使用%p变量的话,系统会在此处放置打印机名.不然在命令后放置打印机名.
注意,当服务器不能得到PATH变量的话,以绝对路径来描述lpq command是个好习惯. 当与CUPS库编译链接时,不须要lpq command,由于smbd将使用库调用来得到打印队列列表。
参见 printing 选项.
缺省设置: 依赖于 printing 的设置状况
示例: lpq command = /usr/bin/lpq -P%p
此命令应该是一个以打印机名和要恢复的打印任务号做为选项的程序或脚本.参见lppause command 参数。
若是使用%p变量的话,系统会在此处放置打印机名.用%j来代替打印任务号,固然是用整数形式罗.
注意,当服务器不能得到PATH变量的话,以绝对路径来描述lpresume command是个好习惯
参见 printing 选项.
缺省设置: 当前没有缺省设置,除非 printing 选项是 SYSV, 此时默认是
lp -i %p-%j -H resume
或者若是printing 选项是 SOFTQ, 那么默认是:
qstat -s -j%j -r
HPUX的示例: lpresume command = /usr/bin/lpalt %p-%j -p2
此命令应该是一个使用打印机名和打印任务号的程序或脚本,而且执行它们能够删掉打印任务.
若是使用%p变量的话,系统会在此处放置打印机名.用%j来代替打印任务号,固然是也用整数形式罗.
注意,当不能从服务器得到PATH变量的话,以绝对路径来描述lprm command是个好习惯.
参见printing 选项.
缺省设置: 依赖于 printing 选项设置
示例 1: lprm command = /usr/bin/lprm -P%p %j
示例 2: lprm command = /usr/bin/cancel %p-%j
参见 smbpasswd(8), 和 security = domain 选项.
缺省设置: machine password timeout = 604800
警告:若是两个客户在一样的目录下用相同的magic script,输出文件内容是没法肯定的.
缺省设置: magic output = <magic script name>.out
示例: magic output = myfile.txt
以这种方式运行的脚本将会在完成之后被删除,只要权限容许的话.
若是脚本产生了输出的话,这些信息就被送到magic output选项指定的文件中(见以上描述).
注意,一些命令解释器不能解释包含CR/LF而不是CR回车换行符的脚本.magic脚本必须是能够被运行的(就象在本地主机运行同样),而有些脚本在某些主机上或某些shell下可能会在dos客户端进行过滤处理.
magic脚本仍处于实验阶段,因此不能对此彻底依赖.
缺省设置: 无。禁止使用magic script.
示例: magic script = user.csh
缺省设置: mangle case = no
因此若是要将 html 映射为 htm 你应当这样:
mangled map = (*.html *.htm)
有一个很是有用的经验是删掉在CDROM光盘上一些文件名后面讨人厌的;1(只有在一些UNIX能够看到它们).为此能够这样映射:(*;1 *;).
缺省设置: 没有 mangled map
示例: mangled map = (*;1 *;)
NAME MANGLING部分有更多关于如何控制这类处理的详细信息.
若是使用了这种映射,那么其算法就象下面这样:
把文件名最后一个点符号前面首五个字母数字字符强制转换成大写,做为要映射名字的首五个字符.
在要映射名字的起始部分加上"~"符号,后面跟两个字符的特殊序列字串,而这个序列字串是由原始的文件名而来(也就是:原文件名去掉最后的文件扩展名).只有当文件的扩展名含有大写字母或长于三个字符时,文件的最后扩展名才被包含在散列计算中.
注意,若是你不喜欢'~'的话,能够用mangling char选项来指定你想要的字符.
最后,扩展名部分的前三个字符会被保留,强制转换到大写并做为映射后名字的扩展名.最后的扩展名就是原始文件名中最后一个'.'右面的那部分.若是文件名中没有'.',那么映射后的文件名也没有扩展名部分(除非用了"hidden files" - 参见后面的介绍).
unix的文件名若是以点开始,那么比如DOS中的隐藏文件.这些文件映射后的文件名就会拿掉点符号并用"___"来做为它的扩展名,而无论原来的扩展名是什么("___"是三个下划线).
大写字母数字字符组成了两位散列值.
若是目录中的文件与要映射的文件名使用了相同的前五位字符,这样的算法会致使名称冲突,不过发生冲突的可能性是1/1300.
名称映射容许当须要保留unix长文件名时在unix目录与Windows/DOS之间拷贝文件.从Windows/DOS中拷过来的unix文件能够更换新的扩展名并保留一样的主文件名.名称映射并不会在转换时更改什么东西.
缺省设置: mangled names = yes
栈里保存了最近映射的基本文件名(扩展名只有在超过3个字符或者包含大写字符时才会保留).
栈值设得稍大一些,对于映射unix的长文件名操做会更顺利一些.可是,它会使目录访问变得更慢;小一些的栈能够保存在服务器的内存中(每一个栈元素占256个字节).
并不保证在转换长文件名时绝对正确无误,准备好面对可能出现的惊奇.
缺省设置: mangled stack = 50
示例: mangled stack = 100
mangle prefix is effective only when mangling method is hash2.
缺省设置: mangle prefix = 1
示例: mangle prefix = 4
缺省设置: mangling char = ~
示例: mangling char = ^
缺省设置: mangling method = hash2
示例: mangling method = hash
缺省设置: map acl inherit = no
注意这个选项须要在create mask忻挥信懦募糁鞯闹葱腥ㄏ尬?也就是说它必须包含100).参见create mask选项中的描述.
缺省设置: map archive = yes
注意这个选项须要在create mask中没有排除全部用户的执行权限位(也就是说它必须包含001).参见create mask选项中的描述.
缺省设置: map hidden = no
注意这个选项须要在create mask中没有排除组用户的执行权限位(也就是说它必须包含010).参见create mask选项中的描述.
缺省设置: map system = no
这时,选项会有三种不一样的值,分别通知smbd(8)在用户以非法身份登陆时做何相应处理.
这三种设定是:
Never - 意思是用户登陆时用了个非法口令而且被服务器所拒.这是个缺省值.
Bad User - 意思是用户登陆时用了非法口令而且被服务器所拒,除非用户名不存在,不然也能够以来宾身份登陆并映射到对应的guest account帐号.
Bad Password - 意思是用户登陆时即便用了非法口令,可是还会以来宾身份登陆并映射到对应的guest帐号.可能出现这样的问题,就是用户虽然输错了口令,却很是平静地以“来宾”身份登陆到系统上。他们不明白为何他们不能访问那些他们认为能够访问的资源,由于在登陆时没有任何信息提示他们输错了口令。因此应该当心使用它,以免没必要要的麻烦. Helpdesk services will hate you if you set the map to guest parameter this way :-).
注意当使用共享级之外的其它安全模式时,要设定这个选项,以使"Guest"共享资源服务发挥做用.由于在这些安全级模式中,用户请求的共享资源名在服务器成功验证用户登陆前不会发送到服务器做处理,因此服务器就在不能处理联接验证结果时为联接提供"Guest"共享.
对于那些之前的版本,这个选项会映射到编译时所用的local.h文件里定义的GUEST_SESSSETUP变量的值.
缺省设置: map to guest = Never
示例: map to guest = Bad User
为了实现这样的功能,系统会使用记录锁定文件.锁定文件存放在lock directory选项指定的目录中.
缺省设置: max connections = 0
示例: max connections = 10
注意这个选项并非限制管理员往磁盘上存放数据的容量.在上面所说的状况中,管理员仍然能够存放超过100M的数据到磁盘上,但若是客户查询剩余磁盘空间或磁盘总空间的话,所获得的结果就只在这个 max disk size指定的容量范围以内.
使用这个选项主要是为了对一些疯狂使用磁盘空间的软件进行必定的限制,特别是它们可能会使用超过1G上以的磁盘空间.
把这个选项设为0说明没有限制.
缺省设置: max disk size = 0
示例: max disk size = 1000
把这个选项设为0说明没有限制.
缺省设置: max log size = 5000
示例: max log size = 1000
缺省设置: max mux = 50
打开文件极限一般用UNIX每进程最大文件描述符数来限制更好,因此你不须要去碰这个选项的.
缺省设置: max open files = 10000
缺省设置: max print jobs = 1000
示例: max print jobs = 5000
可能的值是:
CORE: 早期版本,不接受用户名.
COREPLUS: 在CORE的基础上改进了一些性能.
LANMAN1: 第一个比较流行的协议,支持长文件名.
LANMAN2: 对LANMAN1进行了更新.
NT1: 目前用于Windows NT,通常称为CIFS.
一般,此选项没必要设定,由于在SMB协议中会自动协商并选择合适的协议.
参见 min protocol
缺省设置: max protocol = NT1
示例: max protocol = LANMAN1
缺省设置: max reported print jobs = 0
示例: max reported print jobs = 1000
缺省设置: max smbd processes = 0 ## no limit
示例: max smbd processes = 1000
缺省设置: max ttl = 259200
参见 min wins ttl 选项.
缺省设置: max wins ttl = 518400
缺省设置: max xmit = 65535
示例: max xmit = 8192
一般这个命令所作之事都取决于你的想象.
例如:
message command = csh -c 'xedit %s;rm %s' &
这个命令用xedit发出一条信息,而后再删除它.注意很重要的一点是这个命令应该当即返回.这就是为何在行末用'&'的缘由.若是它没有当即返回的话,计算机可能会在发送信息时当掉的(不过通常都会在30秒后恢复).
全部信息都被以全局访客用户身份发送.命令能够使用标准的替换符,不过%u将不会有效(在这里用%U可能更好).
除了标准替换的部分,还能够应用一些附加的替换,好比:
%s =包含消息的文件名
%t = 发送信息的目标(极可能是服务器名).
%f = 信息的来源.
你能够用这个命令来发送邮件或者你想要的内容.若是你有关于发送内容的好主意请通知开发人员.
有个例子能够以邮件形式发送信息给root:
message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
若是没有指定发送信息所用的命令,那么这个信息并不会被发出,同时Samba向发送者报告出错.不幸的是WfWg(Windows for Workgrups)彻底忽略出错代码,提示信息已被发出.
若是你想要悄悄地删掉它的话请用:
message command = rm %s
缺省设置: 没有 message command
示例: message command = csh -c 'xedit %s; rm %s' &
参见 unix password sync, passwd program和 passwd chat debug 选项.
缺省设置: min password length = 5
参见 printing 选项。
缺省设置: min print space = 0
示例: min print space = 2000
If you are viewing this parameter as a security measure, you should also refer to the lanman auth 选项。 Otherwise, you should never need to change this 选项。
Default : min protocol = CORE
Example : min protocol = NT1 # disable DOS clients
缺省设置: min wins ttl = 21600
Only Dfs roots can act as proxy shares. Take a look at the msdfs root and host msdfs options to find out how to set up a Dfs root share.
示例: msdfs proxy = \\otherserver\someshare
参见 host msdfs
缺省设置: msdfs root = no
缺省设置: name cache timeout = 660
示例: name cache timeout = 0
这些名字解析选项是:"lmhosts","host","wins"和"bcast".它们决定了名字解析是以以下方式的:
lmhosts : 在samba的lmhosts文件中查找IP地址.若是lmhosts文件的内容行中没有名字类型附加在NetBIOS名上时(参见lmhosts (5)中的详细描述),任何类型的名字均可以匹配这个查询.
host : 执行标准的主机名到IP地址的解析操做,此操做会使用系统的/etc/hosts,NIS或者是DNS来查询.具体方法取决于操做系统,在IRIX和Solaris中解析名字的方法多是由/etc/nsswitch.conf文件来控制的.注意此方法只适用于对被查询的NetBIOS名字类型为0x20(服务器)或者是0x1c(域控制器)时才有用,其它类型都会被忽略.后一种状况只在活动目录域中有用,返回一个匹配_ldap._tcp.domain 的SRV RR条目的DNS 查询。
wins : 向列在wins server选项中的服务器查询一个名字对应的IP地址.若是没有指定WINS服务器,那么此方法就被略过了.
bcast : 向在interfaces选项中列出的每个已知本地网络接口进行广播来做查询.这是最不可信的名字解析方法,除非目标主机就在本地子网中.
缺省设置: name resolve order = lmhosts host wins bcast
示例: name resolve order = lmhosts bcast host
在上例中首先检查本地lmhosts文件,而后尝试广播,接下来就是用一般的系统主机名查询方式了.
When Samba is functioning in ADS security mode (security = ads) it is advised to use following settings for name resolve order:
name resolve order = wins bcast
DC lookups will still be done via DNS, but fallbacks to netbios names will not inundate your DNS servers with needless querys for DOMAIN<0x1c> lookups.
参见 netbios name 选项。
缺省设置: 空字符串 (没有附加的名字)
示例: netbios aliases = TEST TEST1 TEST2
参见 netbios aliases 选项
缺省设置: machine DNS name
示例: netbios name = MYNAME
若是samba登陆服务器不是做为真正主目录服务器而是经过NFS来实现,却通知用户以SMB服务器来使用主目录时,用户装载主目录来进行访问须要两个网络跳步(一个以SMB方式,另外一个以NFS方式装载).这样的使用方式是很是慢的.
此选项容许当Samba在主目录服务器方式运行时让samba反馈目录服务器而非登陆服务器上的主共享资源,这样samba用户能够直接从目录服务器上装载目录.当samba把目录共享资源反馈给用户,这时它会参考homedir map选项指定的NIS映射表而后再反馈表中列出的服务.
注意要使此项起做用必须有一个运做中的NIS系统,而且samba服务器必须是一个登陆服务器。
缺省设置: nis homedir = no
缺省设置: nt acl support = yes
If this option, and lanman auth are both disabled, then only NTLMv2 logins will be permited. Not all clients support NTLMv2, and most will require special configuration to us it.
Default : ntlm auth = yes
缺省设置: nt pipe support = yes
You should not need to ever disable this 选项。
缺省设置: nt status support = yes
参见smbpasswd(5).
缺省设置: null passwords = no
缺省设置: obey pam restrictions = no
要注意的是上面的说法也代表了samba并不会从服务名而推演出相应的用户名.这样的话对于[homes]段就比较麻烦了.要避免麻烦的话须要用user = %S,这句就代表你的用户列表user正好就是这个服务资源名,这时的主目录名就是用户名.
参见 user 选项。
缺省设置: only user = no
除非你理解了samba的oplock代码,不然不要改变这个选项!
缺省设置: oplock break wait time = 0
简单地说,这个选项指定了一个数字,若是争夺相同文件的用户数量超过了此设定极限的话,即便有请求,smbd(8)也再也不承认oplock的操做了.这样的话smbd就象Windows NT同样的运行.
除非你理解了samba的oplock代码,不然不要改变这个选项!
缺省设置: oplock contention limit = 2
oplocks会有选择性地关闭每个基本共享资源上的特定文件.参见 veto oplock files 选项.在有些系统上会经过最底层的操做系统确认oplocks.这样就能够在全部的访问与oplocked文件中进行数据同步,而无论此访问是经过samba或NFS或者是本地的UNIX进程.参见kernel oplocks选项查看细节.
参见 kernel oplocks 以及 level2 oplocks parameters.
缺省设置: oplocks = yes
<nt driver name> = <os2 driver name>.<device name>
For example, a valid entry using the HP LaserJet 5 printer driver would appear as HP LaserJet 5L = LASERJET.HP LaserJet 5L.
The need for the file is due to the printer driver namespace problem described in ???. For more details on OS/2 clients, please refer to ???.
缺省设置: os2 driver map = <空字符串>
注意: 默认状况下,Samba将在本地主控浏览器选举中超越全部M$操做系统而且获胜,除非还有Windows NT4.0/2000 域控制器。这意味着Samba主机的错误配置将使一个子网的浏览无效。参见Samba docs/ 目录中的BROWSING.txt 来获取详细信息。
缺省设置: os level = 20
示例: os level = 65
缺省设置: pam password change = no
缺省设置: panic action = <空字符串>
示例: panic action = "/bin/sleep 90000"
Disabling this option prevents Samba from making this check, which involves deliberatly attempting a bad logon to the remote server.
缺省设置: paranoid server security = yes
This parameter is in two parts, the backend's name, and a 'location' string that has meaning only to that particular backed. These are separated by a : character.
Available backends can include: .TP 3 * smbpasswd - The default smbpasswd backend. Takes a path to the smbpasswd file as an optional argument. .TP * tdbsam - The TDB based password storage backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb in the private dir directory. .TP * ldapsam - The LDAP based passdb backend. Takes an LDAP URL as an optional argument (defaults to ldap://localhost) LDAP connections should be secured where possible. This may be done using either Start-TLS (see ldap ssl) or by specifying ldaps:// in the URL argument. .TP * nisplussam - The NIS+ based passdb backend. Takes name NIS domain as an optional argument. Only works with sun NIS+ servers. .TP * mysql - The MySQL based passdb backend. Takes an identifier as argument. Read the Samba HOWTO Collection for configuration details. .LP
缺省设置: passdb backend = smbpasswd
示例: passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd
示例: passdb backend = ldapsam:ldaps://ldap.example.com
示例: passdb backend = mysql:my_plugin_args tdbsam
这个chat序列通常发生在特定的主机上,取决于本地口令控制的方法(就象NIS或者别的).
注意这个选项仅仅在unix password sync选项设置为yes的时候有用。当smbpasswd文件中的SMB口令被更改时是以root身份运行的,没必要输入旧密码文本. 这意味着root必须能够在不知道用户密码时重置他的密码。在NIS/YP 中这意味着passwd程序必须在NIS主控服务器上运行。
这个字符串能够包含%n宏,用于替换新密码。chat序列还能够包含标准宏\\n, \\r, \\t 和\\s 来给出换行,回车,tab和空格。chat序列字符串还能够包含'*' 来匹配任何字符序列。双引号用来将带空格的字符串设为一个单独的字符串。
若是在对话序列的任何部分发送的字符串为一个句号".",那么不会发送任何内容.一样,若是等待接收部分有字符串是一个".",那么不等待任何的内容.
若是pam password change参数设置为yes,chat能够以任何顺序进行,没有特定的输出,是否成功能够由PAM结果获得。在PAM会话中宏\n被忽略。
参见 unix password sync, passwd program , passwd chat debug 和 pam password change.
缺省设置: passwd chat = *new*password* %n\n *new*password* %n\n *changed*
示例: passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
参见 passwd chat , pam password change , passwd program .
缺省设置: passwd chat debug = no
须要注意的是不少口令程序强调口令要合法,例如应该有最小长度或者是字母与数字的混合.这可能在一些客户端(如WfWg)总将口令转为大写发送时,引发一些问题.
注意若是把unix password sync选项设为yes的话,在改变smbpasswd文件中的SMB口令时是以root身份调用改口令程序的.若是口令更改失败的话,smbd对SMB口令的更改也会失败,这是设计时的机制.
若是设定了unix password sync选项的话,指定口令程序时必须使用全部程序的绝对路径,必须检查安全问题.缺省的unix password sync选项值是 no.
参见 unix password sync.
缺省设置: passwd program = /bin/passwd
示例: passwd program = /sbin/npasswd %u
此选项定义了口令字中大写字母的最大数量.
例如,假定给出的口令是"FRED".若是 password level设为1的话,在"FRED"验证失败时会尝试如下的口令组合:
"Fred", "fred", "fRed", "frEd","freD"
若是password level设为2的话,就会尝试下面的组合:
"FRed", "FrEd", "FreD", "fREd", "fReD", "frED", ..
等等。
把此选项设成的值越高,相对单一大小写口令来讲大小写混合的口令越容易匹配。.不过,要当心使用这个选项会下降安全性,同时增长处理新联接所花的时间量.
若是把选项设为0时会使处理口令时只做两种尝试 - 先与给出的口令比较,再比较它的所有小写形式.
缺省设置: password level = 0
示例: password level = 4
此选项设定上面所说的其它口令服务器的名字或者IP地址. 新的语法容许在链接到ADS realm服务器时指定端口号。要指定默认的LDAP 389端口以外的号码,能够将端口号放在名字或ip后面,中间用一个冒号链接(好比说,192.168.1.100:389)。若是你不指定一个端口,Samba将使用标准的LDAP端口tcp/389. 注意端口号在WindowsNT4.0 域或者netbios链接的服务器上无效
若是参数是一个名称,它将使用 name resolve order 中指定的方式来解析。
口令服务器应该是使用"LM1.2X002"或"LM NT 0.12"协议的主机,并且它自己必须使用用户级安全模式.
注意:使用口令服务器代表你的UNIX主机(就是运行Samba的那台)就只与你指定的口令服务器具备相同的安全等级了.在没有彻底信任的状况下不要选择使用其它的口令服务器.
不要把口令服务指向Samba服务器自己,这产生一个循环而去查找你的Samba服务器,致使死锁.
在指定口令服务器名时能够使用标准的替换符,而实际能用的可能只是%m这一个,这个替换符说明Samba服务器会用联入的客户做为口令服务器.若是这样用的话说明你很是信任你的客户,同时最好以主机容许策略对他们进行限制!
若是把安全级security选项设为domain或者ads的话,指定的其它口令服务器必须是在这个Domain中的一个主域控制器或备份域控制器或者'*'.另外指定字符'*'的话就以samba服务器会在整个域中使用加密验证RPC调用来验证用户登陆.使用 security = domain的好处是,若是指定了几个password server时,smbd 会对每个进行尝试直到它收到回应,对于初始服务器当机时这就颇有用了.
若是password server选项设为字符'*'的话,samba将尝试经过查询WORKGROUP<1C>名字来自动查找主或者备份域控制器并联系通过名字解析获得的IP地址列表中的每一个服务器来进行用户验证.
若是服务器列表包含名字或IP同时也包含'*'时,列表将视为首选域控制器的列表,可是也会添加一个自动的对全部其他DC的查找。Samba不会经过定位最近的DC来优化这张列表。
若是security是server的话,会有一些安全级为security = domain时所没有的限制:
若是在password server选项中指定了几个口令服务器的话,smbd在联接具体的服务器时会失败,也不能验证任何的用户帐号.这是安全级为security = server 模式时SMB/CIFS协议的一个限制,而且Samba没法修改.
若是把Windows NT服务器做为口令服务器,你必须确保用户能够从Samba服务器上进行登陆.当使用 security = server模式时,网络登陆看起来是从那里处理的,而不是从用户工做站.
参见 security 选项。
缺省设置: password server = <空字符串>
示例: password server = NT-PDC, NT-BDC1, NT-BDC2, *
示例: password server = windc.mydomain.com:389 192.168.1.101 *
示例: password server = *
对于那些要对访客提供的可打印服务来讲,服务项应该设为只读,并且路径应该设为全局可写属性并具备粘性(s)位.这固然不是强制性的,不过不这样作的话可能会没法获得你所但愿的结果.
路径出现%u的地方将以正处于联接状态的UNIX用户名来替换;一样出现%m的地方将以请求联接的主机NetBIOS名替换.在设定伪主目录时,这种替换项颇有用的.
所指定的路径都是基于根目录root dir(若是有的话)的.
缺省设置: 无
示例: path = /home/fred
缺省设置: pid directory = ${prefix}/var/locks
示例: pid directory = /var/run/
缺省设置: posix locking = yes
一个有趣的示例,用于卸载服务器资源:
postexec = /etc/umount /cdrom
参见 preexec.
缺省设置: 无 (不执行命令)
示例: postexec = echo
一个有趣的示例,在用户每一次登陆时向对方发送一个欢迎信息:(一条格言?)
preexec = csh -c 'echo
固然,一段时间之后这类信息可能就比较讨厌了:-)
参见 preexec close 和 postexec .
缺省设置: 无 (不执行命令)
示例: preexec = echo
缺省设置: preexec close = no
若是设此选项为yes时,nmbd会在启动时强制进行一次选举,它有一些有利条件来赢得选举.推荐把此选项与 domain master = yes联合使用,这样nmbd能够保证成为一个域浏览器.
当心使用此项,由于若是在相同的子网内有多个主机(无论是Samba服务器,Windows95仍是NT)参加选举的话,他们每一个都会周期性不断地尝试成为本地主浏览器,这时会形成没必要须的广播交通流量并下降浏览性能.
参见 os level.
缺省设置: preferred master = auto
注意,若是你想加载printcap里全部的打印机,那么用load printers会更容易.
缺省设置: no preloaded services
示例: preload = fred lp colorlp
缺省设置: preload modules =
示例: preload modules = /usr/lib/samba/passdb/mysql.so+++
缺省设置: preserve case = yes
参见NAME MANGLING段中的完整讨论.
注意一个可打印的服务老是容许经过缓存打印数据的方法向服务项路径中执行写操做(须要用户有可写权限).read only选项控制只容许不可打印地访问资源.
缺省设置: printable = no
To use the CUPS printing interface set printcap name = cups . This should be supplemented by an addtional setting printing = cups in the [global] section. printcap name = cups will use the "dummy" printcap created by CUPS, as specified in your CUPS configuration file.
在能够用lpstat命令列出可用打印机的列表的System V系统上,能够用printcap name = lpstat 来自动得到可用打印机列表.这对于配置samba时定义成SYSV的系统(这就包括了不少基于System V的系统)来讲是缺省状况.若是在这些系统上设好printcap name为lpstat的话,samba就会执行lpstat -v并尝试分析输出信息以得到一份打印机列表.
一般最小的printcap文件看起来就象下面这样:
print1|My Printer 1 print2|My Printer 2 print3|My Printer 3 print4|My Printer 4 print5|My Printer 5
咱们看到'|'符号用来定义打印机的别名.第二个带有空格的别名实际上是提示Samba它是注释.
在AIX中默认的printcap文件名是/etc/qconfig. 若是在文件名中找到qconfig字样,Samba将假定文件是AIX 的qconfig格式。
缺省设置: printcap name = /etc/printcap
示例: printcap name = /etc/myprintcap
打印命令是一个简单的文本字符串。它能够在宏替换以后逐字传递给系统。
%s, %f - 缓冲文件名路径
%p - 适当的打印机名
%J - 客户提交的做业名
%c - 缓冲的做业须要打印的页数
%z -缓冲的打印做业的大小(以字节计)
打印命令至少必须包含%s或%f替换符中的一个,而%p是个可选项.在提交打印做业时,若是不提供打印机名的话,%p替换符会从打印命令中删掉.
若是在[global]段中指定了打印命令,它将被用于任何可打印性的服务项,而再也不须要在它们之中单独指定了.
若是既没有对可打印性服务项单独指定打印命令又没有指定一个全局的打印命令时,假脱机文件虽然会创建却不会被处理也不会被删除(这很重要哦).
注意在某些UNIX上以nobody帐号身份进行打印会致使失败.若是发生了这样的状况请创建一个单独的有打印权的访客帐号并在[global]段里设置guest account选项.
若是你明白命令是直接传递给shell的话,你能够组织很是复杂的打印命令.举例来讲,下面的命令会记录一个打印做业,打印这个文件而后删掉它.注意这里的';'是shell脚本命令经常使用的分隔符.
print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s
你可能必须根据平时在系统上打印文件的方式来改变这个命令.缺省状况下,此选项会根据printing选项的设定而变化.
缺省设置: 对于 printing = BSD, AIX, QNX, LPRNG 或者 PLP :
print command = lpr -r -P%p %s
对于 printing = SYSV 或者 HPUX :
print command = lp -c -d%p %s; rm %s
对于 printing = SOFTQ :
print command = lp -d%p -s %s; rm %s
对于 printing = CUPS :
若是Samba 编译时加入了libcups, 那么printcap=cups将使用CUPS API来提交做业等等。不然它用-oraw选项,使用SystemV命令来打印,也就是说它会用lp -c -d%p -o raw; rm %s.当printing = cups, 而且Samba编译时加入了libcups时,任何手工设置的打印命令将被忽略。
示例: print command = /usr/local/samba/bin/myprintscript %p %s
缺省设置: printer admin = <空字符串>
示例: printer admin = admin, @staff
若是在[global]段里指定了打印机名称,那么给出的打印机就用于任何可打印性服务项而不需个别的指定打印机名称了.
缺省设置: 空 (在不少系统中多是 lp )
示例: printer name = laserwriter
一般系统支持九种打印机风格,它们是BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, SOFTQ,还有 CUPS
要在系统上查看使用了不一样的选项后其它打印命令的缺省值,能够用testparm(1)程序.
此项能够在每一台打印机上分别设置.
参见[printers]段的讨论。
Default :private dir = ${prefix}/private
When not in domain mode with winbindd then the security info copied onto the local workstation has no meaning to the logged in user (SID) on that workstation so the profile storing fails. Adding this parameter onto a share used for profile storage changes two things about the returned Windows ACL. Firstly it changes the owner and group owner of all reported files and directories to be BUILTIN\\Administrators, BUILTIN\\Users respectively (SIDs S-1-5-32-544, S-1-5-32-545). Secondly it adds an ACE entry of "Full Control" to the SID BUILTIN\\Users to every returned ACL. This will allow any Windows 2000 or XP workstation user to access the profile.
Note that if you have multiple users logging on to a workstation then in order to prevent them from being able to access each others profiles you must remove the "Bypass traverse checking" advanced user right. This will prevent access to other users profile directories as the top level profile directory (named after the user) is created by the workstation profile code and has an ACL restricting entry to the directory tree to the owning user.
缺省设置: profile acls = no
此命令应该是个只用打印机名做为选项的程序或脚本,以便用来中止打印队列,使打印做业再也不向打印机发送.
此命令不支持Windows for Workgroups,但能够在Windows 95和NT的打印机窗口中发送.
此处用替换符%p能够替代打印机名称.不然这个名称将被放置在命令后面.
注意,在命令中使用绝对路径是个好习惯,由于不必定能够得到服务器的PATH变量.
缺省设置: 依赖于 printing 选项的设置
示例: queuepause command = disable %p
此命令应该是个只用打印机名做为选项的程序或脚本,以便用来恢复打印队列,使打印做业继续向打印机发送.
此命令不支持Windows for Workgroups,但能够在Windows 95和NT的打印机窗口中发送.
此处用替换符%p能够替代打印机名称.不然这个名称将被放置在命令后面.
注意,在命令中使用绝对路径是个好习惯,由于不必定能够得到服务器的PATH变量.
缺省设置: 依赖于 printing 选项的设置
示例: queuepause command = enable %p
缺省设置: read bmpx = no
参见 write list 和 invalid users 选项。
缺省设置: read list = <空字符串>
示例: read list = mary, @students
若是这个参数是yes, 那么服务的用户不能创建或修改服务目录中的文件。
注意一个可打印的服务(printable = yes) 的目录 老是 可写的(须要用户可写权限)可是只能经过缓冲操做来写.
缺省设置: read only = yes
若是容许,那么它会以65535 字节为单位来读取一个数据包的65535字节.这会带来较多的性能方面的好处.
可是,有些客户端使用不正确的包容量(虽然是可容许的),或者它们不支持大容量包,因此对这些客户端你应该禁止这一选项.
一般将此选项做为一种系统调试工具,并且严格来讲不该修改.参见write raw选项.
缺省设置: read raw = yes
在磁盘与网络的访问速度相近时,这种交迭式的工做就会作得很是好,不过当其中一类设备的速度大大高于另外一类时,它只会有那么一点点效果.
缺省的值是16384,但没有作过测试最优值的实验。根据已经了解的状况来看,在使用不一样的系统时,最优化值的差异很大.一个大于65536的值是没有任何意义的,它只会形成没必要要的内存分配.
缺省设置: read size = 16384
示例: read size = 8192
缺省设置: realm =
示例: realm = mysambabox.mycompany.com
若是你要samba服务器处在一个一般浏览传播规则没有正常工做的远程工做组里时,用此项就颇有用了.此远程工做组能够位于IP包到获得的任何地方.
例如:
remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF
以上这行说明nmbd 对两个给出的使用工做组名的IP地址进行申明.若是你只用了IP地址的话,那么会用workgroup选项里给出的工做组名来替代.
你选用的IP地址一般应该是远程网络的广播地址,不过也能够用配置稳定的网络中的已知主浏览器IP地址.
缺省设置: remote announce = <空字符串>
This is useful if you want your Samba server and all local clients to appear in a remote workgroup for which the normal browse propagation rules don't work. The remote workgroup can be anywhere that you can send IP packets to.
例如:
remote browse sync = 192.168.2.255 192.168.4.255
以上行会使nmbd向位于指定子网或地址中的主浏览器请求同步他们本地服务器中的浏览列表
你选用的IP地址一般应该是远程网络的广播地址,不过也能够用配置很是稳定的网络中的已知主浏览器IP地址.若是给出一个主机的IP地址,或者主控浏览器事实上在本身的网段中, samba就不验证远程主机是否有效、是否正在侦听了。
缺省设置: remote browse sync = <空字符串>
The security advantage of using restrict anonymous = 1 is dubious, as user and group list information can be obtained using other means.
The security advantage of using restrict anonymous = 2 is removed by setting guest ok = yes on any share.
缺省设置: restrict anonymous = 0
加入一个root directory,注意不是实际的"/"目录,能够增长额外的安全级别,可是代价就高了.这样彻底确保了所指定的root directory及所属子目录外的文件都是不能访问的,包括服务器正常运行时所需的一些文件也是如此.所以要想维护服务器总体的可操做性,你须要镜像一些系统文件到所指定的root directory下.特别是要镜像 /etc/passwd文件或此文件的子集,若是须要的话,任何打印操做要用到的二进制文件或配置文件也要镜像.固然,应该由操做系统决定必须被镜像的文件集合.
缺省设置: root directory = /
示例: root directory = /homes/smb
参见 postexec.
缺省设置: root postexec = <空字符串>
参见 preexec 和 preexec close 选项.
缺省设置: root preexec = <空字符串>
参见 preexec 和preexec close.
缺省设置: root preexec close = no
这个选项设置了“安全模式位”用于答复协议协商以使smbd(8) 调整共享安全级是开或者关.客户端根据此位决定是否(以及如何)向服务器传送用户和口令信息.
缺省值是security = user,这也是在Windows 98和Windows NT环境中最经常使用的设定.
可选的值 security = share, security = server 或者security = domain .
2.0.0版本以前的Samba中,缺省值是 security = share 主要由于当时只有这一个值可选。
在WfWg里有一个错误,当在使用用户和服务器安全级时,WfWg客户将会彻底忽略你在"connect drive"对话框里键入的口令.这就使除了在WfWg里已登陆的用户之外的任何人要联接Samba服务项变得很是困难.
若是你的主机使用与UNIX主机上相同的用户名时,就应当使用security = user.若是你用的用户名一般在UNIX上不存在时就应该用security = share.
若是你想设置共享而不用口令的话(访客级共享)也应该用security=share.这一般用于提供共享打印的服务器.在security=user里设定guest账户很是困难,详细的状况请参见map to guest选项.
smbd可能会使用一种混杂模式(hybrid),这样就能够在不一样的NetBIOS aliases下提供用户和共享级的安全特性.
如今解释各个不一样的设定.
SECURITY = SHARE
当客户联接到一个共享安全级的服务器,在联接共享资源以前无需用一个合法的用户名和口令登陆到服务器(虽然如今的客户端象WIN95/95及NT在与security = share 的服务器交谈时都会以用户名发送一个登陆请求,但却没有带口令).相反,客户端会在每个共享上发送认证信息(口令)以尝试联接到这个共享项.
注意 smbd 老是 用合法的UNIX用户表明客户进行操做, 即便是在 security = share 的时候.
由于在共享安全级中,客户无需向服务器发送用户名,因此smbd用一些技术来为客户决定正确的UNIX用户帐号.
用于匹配给出客户口令的可能的UNIX用户名列表能够用如下方法创建:
若是设置了guest only选项,则跳过全部其它步骤只检查guest account用户名.
若是经过共享链接请求发送一个用户名,则此用户名(映射后 - 参见username map)被做为潜在用户名加入.
若是客户使用一个先前的 logon 请求(SessionSetup SMB调用)则在SMB中发送的用户名将做为潜在用户名加入.
客户请求的服务项名被做为潜在用户名加入.
客户的NetBIOS名被做为潜在用户名加入到列表中.
在user列表中的任何用户都被做为潜在用户名加入.
若是未设guest only选项,则使用提供的口令来尝试此列表.对于匹配到口令的第一个用户将做为UNIX用户身份使用.
若是设置了guest only选项或未检测到用户名,则若是共享项中标志为能够使用guest account,那么使用此访客用户帐号,不然拒绝访问.
注意,在共享安全级中关于哪一个UNIX用户名最后将在容许访问中使用很是混淆.
参见NOTE ABOUT USERNAME/PASSWORD VALIDATION段.
SECURITY = USER 这是samba2.0/3.0缺省安全级设置.对于用户安全级,一个客户必须先以合法的用户名和口令(也能够用username map选项进程映射)“登陆”.在此安全模式中也可以使用加密口令(参见encrypted passwords选项).若是设置了如user和guest only这样的选项,则它们会被应用而且在此链接上更改UNIX用户帐号,但只能在用户帐号被成功验证以后才行.
注意,当服务器成功验证客户身份以前,请求的资源名称是不发送到服务器上的.这就是为何用户安全级中在没有容许服务器自动把未知用户映射为guest account的状况下,访客共享没法工做.参见map to guest选项得到完成映射的细节.
参见NOTE ABOUT USERNAME/PASSWORD VALIDATION段.
SECURITY = DOMAIN
只有已经用 net(8)把服务器添加进一个Windows NT的域中,此安全模式才能正常工做.它要求encrypted passwords选项设为yes.在此模式中Samba将试图把用户名/口令传送到一个WindowsNT主域或备份域控制器进行验证像一台真正的WindowsNT服务器那样。
注意,仍然须要存在一个和域控制器上的用户名一致的有效的UNIX用户,来使Samba拥有一个有效的UNIX账户来映射存取文件操做。
注意,对于客户端来讲,security=domain模式与security=user是同样的.它只影响服务器处理验证工做的方式.对于客户端无任何影响.
注意,当服务器成功验证客户身份以前,请求的资源名称是不发送到服务器上的.这就是为何域安全级中在没有容许服务器自动把未知用户映射为guest account的状况下,访客共享没法工做.参见map to guest选项得到完成映射的细节
参见 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段.
参见 password server parameter 和 encrypted passwords 选项。
SECURITY = SERVER
在此模式中Samba将试图把用户名/口令传送到其它SMB服务器,好比一台NT服务器,进行验证.若是验证失败则回到security = user模式,它须要encrypted passwords 参数设置为yes,除非远端系统不支持它们。可是要注意,若是使用了加密口令的话,samba不会再去检查UNIX系统口令文件的,它必须有一个合法的smbpasswd文件以再次检查用户帐号.参见Samba HOWTO Collection 中关于User Database 的章节来得到如何设置的信息。
This mode of operation has significant pitfalls, due to the fact that is activly initiates a man-in-the-middle attack on the remote SMB server. In particular, this mode of operation can cause significant resource consuption on the PDC, as it must maintain an active connection for the duration of the user's session. Furthermore, if this connection is lost, there is no way to reestablish it, and futher authenticaions to the Samba server may fail. (From a single client, till it disconnects).
注意,对于客户端来讲,security=server模式与security=user是同样的.它只影响服务器处理验证工做的方式.对于客户端无任何影响.
注意,当服务器成功验证客户身份以前,请求的资源名称是不发送到服务器上的.这就是为何服务器安全级中在没有容许服务器自动把未知用户映射为guest account的状况下,访客共享没法工做.参见 map to guest选项得到完成映射的细节.
参见 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段.
参见 password server parameter 和 encrypted passwords 选项。
SECURITY = ADS
In this mode, Samba will act as a domain member in an ADS realm. To operate in this mode, the machine running Samba will need to have Kerberos installed and configured and Samba will need to be joined to the ADS realm using the net utility.
Note that this mode does NOT make Samba operate as a Active Directory Domain Controller.
Read the chapter about Domain Membership in the HOWTO for details.
参见 ads server parameter, the realm paramter 和encrypted passwords 选项。
缺省设置: security = USER
示例: security = DOMAIN
此选项用掩码值'与'实现对权限位的更改,从而防止修改未出如今此掩码中的任何位.能够将掩码中的0看做用户无权更改的位值. This parameter is applied as a mask (AND'ed with) to the changed permission bits, thus preventing any bits not in this mask from being modified. Essentially, zero bits in this mask may be treated as a set of bits the user is not allowed to change.
如未明确设定此选项,则把此选项设为0777,容许用户修改文件的全部user/group/world这些权限.
注意,可经过其它手段访问到Samba服务器的用户能够垂手可得地绕过此限制,因此此选项只对独立的服务器系统有用.多数普通系统的管理员能够将它保留为0777.
参见 force directory security mode, directory security mask, force security mode 选项.
缺省设置: security mask = 0777
示例: security mask = 0770
Please note that with this set to no you will have to apply the WindowsXP requireSignOrSeal-Registry patch found in the docs/Registry subdirectory.
缺省设置: server schannel = auto
示例: server schannel = yes
When set to auto, SMB signing is offered, but not enforced. When set to mandatory, SMB signing is required and if set to disabled, SMB signing is not offered either.
缺省设置: client signing = False
它还设置显示在浏览列表中主机名后的内容.
%v 将替换为Samba版本号
%h 将替换为主机名
缺省设置: server string = Samba %v
示例: server string = University of GNUs Samba Server
setdir命令只在Digital Pathworks客户端中实现.参见Pathworks文档的细节.
缺省设置: set directory = no
缺省设置: No default value
示例: set primary group script = /usr/sbin/usermod -g '%g' '%u'
This parameter should specify the path to a script that can set quota for the specified arguments.
The specified script should take the following arguments:
1 - quota type .TP 3 * 1 - user quotas .TP * 2 - user default quotas (uid = -1) .TP * 3 - group quotas .TP * 4 - group default quotas (gid = -1) .LP
2 - id (uid for user, gid for group, -1 if N/A)
3 - quota state (0 = disable, 1 = enable, 2 = enable and enforce)
4 - block softlimit
5 - block hardlimit
6 - inode softlimit
7 - inode hardlimit
8(optional) - block size, defaults to 1024
The script should output at least one line of data.
参见 get quota command 选项。
缺省设置: set quota command =
示例: set quota command = /usr/local/sbin/set_quota
这些打开模式UNIX是不直接支持的,因此要用共享内存或在UNIX不支持共享内存时(通常都支持)用锁定文件来模拟.
容许共享模式的选项是DENY_DOS, DENY_ALL, DENY_READ,DENY_WRITE, DENY_NONE 和DENY_FCB.
缺省状况下此选项提供了彻底的共享兼容和许可.
你 不该 把此选项关闭由于不少Windows应用会所以中止运行。
缺省设置: share modes = yes
参见 NAME MANGLING 段.
缺省设置: short preserve case = yes
Under normal circumstances, the Windows NT/2000 client will open a handle on the printer server with OpenPrinterEx() asking for Administrator privileges. If the user does not have administrative access on the print server (i.e is not root or a member of the printer admin group), the OpenPrinterEx() call fails and the client makes another open call with a request for a lower privilege level. This should succeed, however the APW icon will not be displayed.
Disabling the show add printer wizard parameter will always cause the OpenPrinterEx() on the server to fail. Thus the APW icon will never be displayed. Note :This does not prevent the same user from having administrative privilege on an individual printer.
参见 addprinter command, deleteprinter command, printer admin
Default :show add printer wizard = yes
This command will be run as the user connected to the server.
%m %t %r %f parameters are expanded:
%m will be substituted with the shutdown message sent to the server.
%t will be substituted with the number of seconds to wait before effectively starting the shutdown procedure.
%r will be substituted with the switch -r. It means reboot after shutdown for NT.
%f will be substituted with the switch -f. It means force the shutdown even if applications do not respond for NT.
缺省设置: None.
示例: shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f
Shutdown script example:
#!/bin/bash $time=0 let "time/60" let "time++" /sbin/shutdown $3 $4 +$time $1 &
Shutdown does not return so we need to launch it in background.
参见 abort shutdown script.
缺省设置: smb passwd file = ${prefix}/private/smbpasswd
示例: smb passwd file = /etc/samba/smbpasswd
缺省设置: smb ports = 445 139
By default Samba will accept connections on any address.
示例: socket address = 192.168.2.20
套接字选项是使用在容许调整链接的操做系统的网络层的控制命令.
此选项一般用于在局域网上优化调整samba服务器的性能.由于samba没法知道与你的网络所对应的优化选项,因此你必须本身进行试验并做出选择.咱们强烈推荐你先阅读与你的操做系统有关的相应文件(也许man setsockopt会有帮助).
你可能会发如今有些系统上samba会在你使用一个选项时发出"Unknown socket option"的信息.这就说明你没有正确拼写或者须要为操做系统添加一个包含文件到includes.h中.若有后面指出的问题请写信到samba-bugs@samba.org.
只要操做系统容许,你能够以任何方法组合任何所支持的套接字选项.
当前可用于此选项的可设置套接字选项列表有:
SO_KEEPALIVE
SO_REUSEADDR
SO_BROADCAST
TCP_NODELAY
IPTOS_LOWDELAY
IPTOS_THROUGHPUT
SO_SNDBUF *
SO_RCVBUF *
SO_SNDLOWAT *
SO_RCVLOWAT *
标有'*'的要使用一个整数参数.其它的有时使用1或0表明容许或禁止该选项,如未指定1或0则缺省值都为容许.
要指定一个变量,用"SOME_OPTION=VALUE"格式。好比能够是SO_SNDBUF=8192.注意,在"="先后不能有任何空格.
如在局域网上,则使用下面这个是比较明智的:
socket options = IPTOS_LOWDELAY
若有一个局域网则能够试一下:
socket options = IPTOS_LOWDELAY TCP_NODELAY
若有一个广域网,则试一下IPTOS_THROUGHPU.
注意有些选项可致使samba服务器彻底失效.当心使用它们!
缺省设置: socket options = TCP_NODELAY
示例: socket options = IPTOS_LOWDELAY
If the value of this parameter starts with a "|" character then Samba will treat that value as a pipe command to open and will set the environment variables from the output of the pipe.
The contents of the file or the output of the pipe should be formatted as the output of the standard Unix env(1) command. This is of the form:
Example environment entry:
SAMBA_NETBIOS_NAME = myhostname
缺省设置: No default value
Examples: source environment = |/etc/smb.conf.sh
示例: source environment = /usr/local/smb_env_vars
缺省设置: stat cache = yes
When strict allocate is no the server does sparse disk block allocation when a file is extended.
Setting this to yes can help Samba return out of quota messages on systems that are restricting the disk quota of users.
缺省设置: strict allocate = no
当禁用strict locking时,服务器只在客户明确要求时才为他们检查文件锁.
循规蹈矩的客户老是在重要的时候要求检查文件锁,因此在多数状况下strict locking = no是可取的.
缺省设置: strict locking = no
参见 sync always 选项。
缺省设置: strict sync = no
参见 strict sync 选项。
缺省设置: sync always = no
此选项设置了对syslog发送信息的阈值.只有小于此值的调试级信息号才发给syslog.
缺省设置: syslog = 1
缺省设置: syslog only = no
缺省设置: template homedir = /home/%D/%U
缺省设置: template primary group = nobody
缺省设置: template shell = /bin/false
缺省设置: time offset = 0
示例: time offset = 60
缺省设置: time server = no
缺省设置: unicode = yes
缺省设置: unix charset = UTF8
示例: unix charset = ASCII
缺省设置: unix extensions = yes
参见 passwd program, passwd chat.
缺省设置: unix password sync = no
为了让此选项正确工做,当它设为yes时必须把 encrypt passwords选项设为no .
注意即便设置了此选项,smbd仍是必须验证用户帐号,直到输入合法的口令后才能正确链接并更新他们的散列计算(由smbpasswd完成)后的口令字.
缺省设置: update encrypted = no
The differentiating factor is that under normal circumstances, the NT/2000 client will attempt to open the network printer using MS-RPC. The problem is that because the client considers the printer to be local, it will attempt to issue the OpenPrinterEx() call requesting access rights associated with the logged on user. If the user possesses local administator rights but not root privilegde on the Samba host (often the case), the OpenPrinterEx() call will fail. The result is that the client will now display an "Access Denied; Unable to connect" message in the printer queue window (even though jobs may successfully be printed).
If this parameter is enabled for a printer, then any attempt to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx() call to succeed. This parameter MUST not be able enabled on a print share which has valid print driver installed on the Samba server.
参见 disable spoolss
缺省设置: use client driver = no
缺省设置: use mmap = yes
只有当主机没法提供它本身的用户名时才须要username选项。当用COREPLUS协议或你的用户拥有与UNIX用户名不一样的WfWg用户名时就会有这样的状况.在这两种状况下,用\serverhare%user语句代替会更好的.
在大多数状况下username选项并非最好的解决方案,由于它意味着Samba会尝试对username选项行中的每一个用户名轮流做测试.这样作是很慢的,并且万一不少用户重复口令的话这就是个坏主意了.错误使用此选项可能会带来超时或安全缺陷.
samba依靠底层的UNIX安全.此选项不限制登陆者,它只对Samba服务器提供响应所提供口令的用户名的线索.任何喜欢的人均可以登陆,并且若是他们只是启动一次telnet对话的话不会形成破坏.进程以登陆的用户身份运行,因此他们没法作任何他们不能作的事儿.
要对一组特殊的用户限制一个服务的话能够用 valid users 选项.
若是任何用户名以'@'字符开始则此用户名将首先在NIS网络组列表(若是Samba编译时加入了网络组支持的话)中进行查找,而后在UNIX用户组数据库中查找并展开成属于以此名为组的全部用户的列表.
若是任何用户名以'+'字符开始则此用户名只在UNIX用户组数据库中进行查找并展开成属于以此名为组的全部用户的列表.
若是任何用户名以'&'字符开始则此用户名只在NIS网络组列表(若是Samba编译时加入了网络组支持的话)中进行查找并展开成属于以此名为组的全部用户的列表.
注意经过用户组数据库进行查找要花很长时间,在此期间有些客户可能会超时.
查看 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段来得到这个选项如何决定访问服务方面的信息。
缺省设置: 若是是guest服务就是guest账号,不然是空字符串.
示例:username = fred, mary, jack, jane, @users, @pcgroup
若是把此选项设为非0,则状况就改变了.此选项指定的是用于尝试同时检测UNIX用户名的大写字母的组合数.数字越高,则尝试的组合数越多,但用户名的发现也越慢.当在你的UNIX主机上有奇特的用户名如AstrangeUser 时使用此选项.
缺省设置: username level = 0
示例: username level = 5
映射文件被逐行解析.每一个行都应该在'='号左边包含一个UNIX用户名,而在右边跟上一列用户名.右边的用户名列表能够包含@group形式的名称,它表示匹配任何组中的UNIX用户名.特殊客户名'*'是一个通配符用于匹配任何名称.映射文件的每一个行能够达到1023个字符的长度.
对文件的处理是在每一个行上取得提供的用户名并把它与'='号右边的每一个用户名进行比较.若是提供的名称匹配右边的任何名称则用左边的名称替换右边的.而后继续处理下一行.
忽略以'#' 或 ';'号开始的行.
当在行中发现了匹配,则在以'!'开始的行后停止处理,不然继续处理每一行的映射.当你在文件中用了通配映射的话'!'就颇有用了.
例如把名称admin 或 administrator映射为UNIX名 root,你能够这样:
root = admin administrator
或把UNIX组 system中的任何人映射为UNIX名sys就能够这样:
sys = @system
能够在一个用户名映射文件中包含不少映射关系.
若是你的系统支持NIS NETGROUP选项,则在使用/etc/group 匹配组以前先检查网络组数据库.
你能够经过在名称上使用双引号来映射含有空格的Windows用户名.例如:
tridge = "Andrew Tridgell"
将把windows用户名"Andrew Tridgell"映射为unix用户名"tridge".
如下示例将把mary和fred映射为unix用户sys,而后把其他的映射为guest.注意使用'!'符号能够告诉Samba若是在该行得到一个匹配的话就中止处理.
!sys = mary fred guest = *
注意重映射做用于全部出现用户名的地方.所以若是你链接到\\server\fred而 fred已被重映射为 mary,则你实际会链接到\\server\mary"并须要提供mary的口令而不是 fred的.这种状况只有一个例外,那就是用户名是被传到 password server(若是你有一个的话)验证的.口令服务器会接收客户提供的未经修改的用户名.
同时要注意反向映射是不会出现的.这主要影响的是打印任务.已经被映射的用户会在删除打印任务时遇到麻烦,由于WfWg上的打印管理器会认为他们不是打印任务的属主.
缺省设置: no username map
示例: username map = /usr/local/samba/lib/users.map
缺省设置: use sendfile = no
缺省设置: use spnego = yes
Due to the requirements of the utmp record, we are required to create a unique identifier for the incoming user. Enabling this option creates an n^2 algorithm to find this number. This may impede performance on large installations.
参见 utmp directory 选项。
缺省设置: utmp = no
缺省设置: no utmp directory
示例: utmp directory = /var/run/utmp
This option should not be used by regular users but might be of help to developers. Samba uses this option internally to mark shares as deleted.
缺省设置: True
若是此项为空(缺省)则任何用户均可以登陆.若是一个用户名同时存在于此列表及invalid users列表,则拒绝此用户访问.
%S 替换为当前服务名. 这在[homes]段里很是有用.
参见 invalid users
缺省设置: 空 (任何人都不会被拒绝)
示例: valid users = greg, @pcusers
每项必须是一个UNIX路径,而非一个DOS路径,同时必须不含 UNIX目录分隔符'/'.
注意case sensitive选项适用于对文件的禁止目的.
须要明白这个选项的很重要的一个特色: 在Samba删除一个目录时的行为。若是一个目录除了veto files以外不包含任何内容,删除操做将失败,除非设置了delete veto files 是yes.
设置此选项会影响Samba的性能,由于它将强制在扫描全部文件和目录时检查是否匹配.
参见 hide files 和 case sensitive.
缺省设置: 没有隐藏任何文件.
示例:
; 隐藏任何文件名带有'Security'的文件, ; 任何扩展名是.tmp的文件,任何文件名带有'root'的文件 veto files = /*Security*/*.tmp/*root*/ ; 隐藏NetAtalk服务器建立的Apple专用的文件 veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
缺省设置: 没有隐藏oplocks许可
你可能想在已知客户会猛烈争夺的文件上使用此项.在NetBench SMB基准程序下面就是个好例子,它致使客户猛烈地对以.SEM后缀的文件进行链接.为使Samba不在这些文件上容许oplocks,你能够在[global]段或特定的NetBench共享中使用此行:
示例: veto oplock files = /*.SEM/
缺省设置: no value
示例: vfs objects = extd_audit recycle
缺省设置: 共享的名称
注意设置此选项可对服务器性能产生负面影响,由于samba必须作一些额外的系统调用以检查那些连接.
缺省设置: wide links = yes
缺省设置: winbind cache type = 300
缺省设置: winbind enable local accounts = yes
Warning: Turning off group enumeration may cause some programs to behave oddly.
缺省设置: winbind enum groups = yes
Warning: Turning off user enumeration may cause some programs to behave oddly. For example, the finger program relies on having access to the full user list when searching for matching usernames.
缺省设置: winbind enum users = yes
The winbind gid parameter specifies the range of group ids that are allocated by the winbindd(8) daemon. This range of group ids should have no existing local or NIS groups within it as strange conflicts can occur otherwise.
缺省设置: winbind gid = <空字符串>
示例: winbind gid = 10000-20000
Please note that setting this parameter to + causes problems with group membership at least on glibc systems, as the character + is used as a special character for NIS in /etc/group.
缺省设置: winbind separator = ''
示例: winbind separator = +
缺省设置: winbind trusted domains only = <no>
The winbind gid parameter specifies the range of user ids that are allocated by the winbindd(8) daemon. This range of ids should have no existing local or NIS users within it as strange conflicts can occur otherwise.
缺省设置: winbind uid = <空字符串>
示例: winbind uid = 10000-20000
缺省设置: winbind use default domain = <no>
示例: winbind use default domain = yes
此选项以以下形式指定要调用的一个脚本名或可执行程序:
wins_hook operation name nametype ttl IP_list
第一部分参数是opration(操做符),它有三种:"add"、"delete"和"refresh".在不少状况下该操做符能够忽略,由于其它选项可提供足够的信息.注意当有名称之前没有加入过,则有时会用到"refresh",在这种状况下,它应该和"add"有一样含义.
第二部分参数是netbios名.若是该名称不是合法名的话,该功能就不运行.合法的名称应只包含字母,数字,减号,下划线和句点.
第三部分参数是用2位十六进制数字表示的netbios名称类型.
第四部分参数是以秒计算的名称有效时间TTL (time to live).
第五部分是当前该名称所注册的IP地址表.若是表为空则该名称被删除.
一个调用BIND动态DNS更新程序nsupdate的脚本示例在samba源代码的示例目录能够找到.
缺省设置: wins partners =
示例: wins partners = 192.168.0.1 172.16.1.2
缺省设置: wins proxy = no
若是你有多个子网的话,应该指定向你的WINS服务器
If you want to work in multiple namespaces, you can give every wins server a 'tag'. For each tag, only one (working) server will be queried for a name. The tag should be seperated from the ip address by a colon.
注意,若有多子网并但愿跨子网浏览工做正常的话,应该设置Samba指向一台WINS服务器.
缺省设置: 未启用
示例: wins server = mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61
For this example when querying a certain name, 192.19.200.1 will be asked first and if that doesn't respond 192.168.2.61 . If either of those doesn't know the name 192.168.3.199 will be queried.
示例: wins server = 192.9.200.1 192.168.2.61
缺省设置: wins support = no
缺省设置: 编译时设置为 WORKGROUP
示例: workgroup = MYGROUP
This cache allows Samba to batch client writes into a more efficient write size for RAID disks (i.e. writes may be tuned to be the RAID stripe size) and can improve performance on systems where the disk subsystem is a bottleneck but there is free memory for userspace programs.
The integer parameter specifies the size of this cache (per oplocked file) in bytes.
缺省设置: write cache size = 0
示例: write cache size = 262144
for a 256k cache size per file.
注意若是一个用户同时属于读列表和写列表则拥有写入权.
参见 read list 选项。
缺省设置: write list = <空字符串>
示例: write list = admin, root, @staff
缺省设置: write raw = yes
参见 utmp 选项。 By default this is not set, meaning the system will use whatever utmp file the native system is set to use (usually /var/run/wtmp on Linux).
缺省设置: no wtmp directory
示例: wtmp directory = /var/log/wtmp