一.全局参数
1. 基本参数 
workgroup 
说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如: 
workgroup = UEC 
指明工作组为UEC 
netbios name 
说明:这个参数指定samba的NetBIOS名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1。
例如: 
netbios name = GCP 
指定NetBios名为GCP 
server string 
说明:这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。例如: 
server string = UEC File Server 
2. 安全参数 
security 
说明:这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是 user 
security = user 
这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。 
securtiy = share 
这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。 
security = server 
和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。 
security = domain 
这种安全级别要求网络上存在一台NT PDC,samba把用户名和密码递交给NT PDC去验证。 
从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。 
encrypt passwords 
说明:是否对密码进行加密,samba本身可以维护一个密码文件/etc/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/passwd密码文件进行验证。一般samba的应用基本都设定为yes:encrypt passwords = yes。 
username map 
说明:这个参数可以让你指定一个文件包含来自客户机的用户名与Linux系统用户名之间的映射,文件的格式是每行一个映射,映射的格式是:Linux usename = client username … 。 
例如 root = admin adminstrator 
这样,当客户机的用户是admin或administrator时,就被转换成root。 
这个功能对用户管理很方便,可以让管理员不需要对客户或服务器上的用户帐号大动干戈。 
文件名通常用默认的/et/smbusers 
password level 
说明:这是针对一些SMB客户像Windows for Workgroup、OS/2之类而设的,像WFW这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。这个值越大,组合的次数就越多,验证时间就越长,安全性也越低! 
guest account 
说明:这个参数指定guest级帐户的用户名,可以是nobody、ftp,guest级别的用户可以不要密码就访问给定的guest服务。 
host allow 
说明:这个参数指定那些机器可以访问samba,例如:host allow = 192.168.1. 127. 
指定192.168.1.0里的所有机器都可以访问。 
如果不允许子网里的一台机器访问,可以这样设:host allow = 192.168.1. EXCEPT 192.168.1.33 
禁止192.168.1.33访问 
host deny 
说明:和host allow 相反是指定那些机器不能访问,格式一样。 
3.日志记录参数 
log file 
说明:这个参数指定日志文件的名称,路径一般放在/var/log/samba,可以在文件名后加个宏%m表示对每台访问samba的机器都单独记录一个日志文件。 
例如: log file = /var/log/samba/log.%m, 
如果host1、host2这台机器访问过samba,就会留下log.host1、log.host2这两个日志文件。 
max log size 
说明:这个参数指定最大日志文件的大小,以KB为单位。 
例如: max log size = 50k 
4.协议参数 
announce version 
说明:指定服务器的宣告版本号,默认是4.2,如果在WINDOWS的网上邻居里查看samba服务器的属性,就可以看见在类型一行里有 Windows NT 4.2 Server 的字样。一般不要去更改它,如果你要让samba模拟NT像一点的话,可以改成4.0。 
5. 计算机浏览参数 
os level 
说明:os level 的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。 
preferred master 
说明:这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。指定该参数为yes时最好把domain master 也指定为yes。用这个参数的时候要注意的是在samba服务器所在的子网上如果有其它的机器(不管是WINDOWS NT还是另一个samba服务器)也指定为首要的主浏览器时,这些机器都会因为争夺主浏览器而在网络上广播,引起不必要的网络性能下降。 
local master 
说明:这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。 
domain master 
说明:这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并将整个域的浏览列表递交给各本地主浏览器。默认值是no。如果网络上已经有一台NT PDC,就不要把这个参数设为yes,争不过NT PDC的。 
另外,如果你对计算机浏览服务不是很清楚的话,可以参考NT网络管理资料。 
6. 共享资源设置参数 
comment 
说明:就是对共享的描述,可以是任意的字符串 
例如:comment = Share Stuff 。 
path 
说明: path是提供共享服务的路径,可以用%u %m这样的宏来代替路径里的unix用户和客户机的Netbios名。 
例如:如果我们不打算用home段做为客户的共享,而是在/home/share/ 下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。 
用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,可以这样写path:path = /home/share/%m 。 
writeable 
说明:指定共享路径是否可以写,值是yes或no 
browseable 
说明:指定共享是否可以浏览,默认是yes 
available 
说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。 
exec 和 postexec 
root preexec 和 root postexec 
说明:指定在用户与共享资源在连接和断开时在服务器上执行一个命令,这两对参数很有用,区别是root preexec 和root preexec 是以root的权限运行。 
打印共享还有些专用的打印参数,阐述如下: 
load printers 
指定在samba启动时是否自动把printcap文件里的所有打印机加载,从而可以在浏览清单里看到所有的打印机,默认是yes 
printable 
指定用户能不能打印,默认是no,要让一个打印共享可以让用户使用,必须设为yes 
print name 
打印机名 
printer driver 
打印机的驱动类型,这个参数可以让WINDOWS知道远程打印机上的类型,具体的值可以参考在WINDOWS里安装打印机出现选择打印机类型时的打印机类型。比如Espon LQ1600K打印机: 
printer driver = Espon LQ-1600K 
以上就是samba的一些常用的配置,通过这些配置参数,我们已经可以建立起一个一般应用的文件服务器。虽然还有很多参数没有提到,但samba本身可以用缺省值。 
启动samba,可以用/usr/sbin/samba start来启动samba,也可以用ntsysv来启动。 
二、samba 高级参数
下列所介绍的是一些高级参数的配置,这些参数如果应用得当,可以更加灵活地在网络上应用samba 
1.宏 
在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有 
%S = 当前服务名 
%P = 当前服务的根路径 
%u = 当前服务的用户名 
%g = 给定%u的所在的主工作组名 
%H = 给定的%u的宿主目录 
%v = Samba 版本号 
%h = 运行Samba的机器的主机名 
%m = 客户机的NETBIOS名 
%L = 服务器的 NetBIOS 名 
%T = 当前的日期和时间 
灵活地应用宏可以很方便地管理比较复杂的网络。 
2.一些常用高级配置参数 
2.1 全局参数 
config file 
说明:这个参数是全局参数,可以让你用另一个配置文件覆盖缺省的配置文件,如果文件不存在,该项无效。这个参数非常有用,也使得samba的配置更灵活,让一台Linux服务器模拟多台不同配置的NT 服务器,满足不同的需求。 
比如,您想让网络上的某台名字是host1的机器用它自己的配置文件,先在/etc/下为host1配置一个名为smb.conf.host1的文件,在缺省的smb.conf里加这行: 
config file = /etc/smb.conf.%m 
这样,当host1请求连接的时候,smb.conf.%m被替换成smb.conf.host1,对host1来说,它所看到的samba就是由smb.conf.host1定义的。而其它机器还是用smb.conf。 
deadtime 
说明:这个参数值是个整数,单位是分钟,用于切断一个不活动的连接。当一个没有打开任何文件的连接的不活动的时间超过datetime指定的的时间后,samba就自动切断这个连接。这个参数可以节省服务器的资源消耗,尤其是在有大量连接的情况下。默认的值是零,零代表samba不自动切断任何连接。 
time server 
说明:这个参数让nmbd成为WINDOS客户的时间服务器。默认是no。 
2.2 共享资源参数 
admin users 
这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是admin users = no。 
例如: 
admin users = Su_27 
那么Su_27这个用户就是这个共享资源的管理员。 
valid users 
说明:指定共享资源的有效用户,即允许访问该资源的用户。 
例如:valid users = user1, user2 
那么user1和user2是有效用户 
invalid users 
说明:和valid users 相反,指定那些用户不可访问这共享资源。 
max connections (S) 
说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求将被拒绝。 
例如: max connections = 100 
最大连接数为100