在samba服务器安装完成后,会在/etc/samba/目录下生samba的配置文件smb.conf
- 在smb.conf文件中,#与;都是注释符号
- 在smb.conf配置文件中,不区分大小写
一、smb.conf配置文件
[global]
参数项目 = 设置内容
…
[homes]
参数项目 = 设置内容
…
[printers]
参数项目 = 设置内容
…
二、参数详细介绍
1. 全局设置 [global]
此字段设置整体参数,包括工作组、主机的NetBIOS名称、字符编码的显示、日志文件的设置、是否使用密码以及使用密码验证的机制等。
- workgroup = 工作组名称,注意,工作组要相同
- netbios name = 主机的NetBIOS名称,注意,每部主机均不同
- server string = 主机的简易说明,这个可自行写
- display charset = 自己服务器上面的显示编码,例如你在终端机上所查阅的编码信息。一般来说,与下面的unix charset相同
- unix charset = 在Linux服务器上面所使用的编码,一般来说就是i18n的编码
- dos charset = 就是Windows客户端的编码,一般来说我们的简体中文Windows使用的是GB 2312编码,这个编码在samba内的格式被称为”cp936“
- log file = 日志文件存储的文件路径,文件名可能会使用变量处理
- max log size = 日志文件最打能达到多少KB,若大于该数字,则会被rotate掉
- security = share、user、domain三选一
share:共享的数据不需要密码,大家均可以使用(安全性较低)
user:使用samba服务器本身的密码数据库,密码数据库与下面的passdb backend有关
domain:使用外部服务器的密码,也就是samba是客户端之意,如果设置这个项目,需要提供passwd server = IP的设置值才行 - passdb backend = 数据库格式,为了加快速度,目前密码文件已经转为使用数据库了。默认的数据库格式为tdbsam,而默认的文件则放置到/var/lib/samba/private/passwd.tdb中
可通过tdbdump查看tdb具体内容(tdbdump /var/lib/samba/private/passdb.tdb) - encrypt passwords = yes,表示密码要加密
2. 共享设置 [共享名称]
这部分设置则是针对开放的目录进行权限方面的设置,包括谁可以浏览该目录、是否可以读写等参数。
- comment:说明,可自行编写
- path:Linux文件系统的实际目录,也就是说在网上邻居当中看到的是[共享名称],而实际操作的是path目录
- browseable:是否让所有的用户看到这个项目?
- writable:是否可以写入?
注意与readonly的设置区别,若writable=yes,readonly=yes,就会产生冲突?答案是哪个后设置哪个值有效 - create mode 与 directory mode都是与权限有关
- writelist = 用户,@组,这个项目可以指定进入到此资源的特定用户,如果是@group的形式,表示加入该组的用户均可取得使用的权限
三、smb.conf内的可用变量
- %S:当前服务或共享的名称
[homes]
valid users = %S
……
valid users是允许的登录者,设置为%S表示任何可登录的用户能够登录,如果dmtsai这个用户登录后,那么[home]就自动变成[dmtsai]了,%S的用意就是替换掉当前[]里面的内容。
- %P:当前服务或共享的目录
- %u:当前服务或共享使用的用户名
- %g:%u所在组的名称
- %m:Client端所在的NetBIOS 主机名
- %M:Client端的Internet主机名,就是hostname
- %L:SAMBA主机的NetBIOS主机名
- %h:SAMBA主机的hostname
- %H:用户主目录
- %U:当前登录用户的用户名称
- %I:Client的IP
- %T:代表当前的日期与时间
- %v:samba的版本号
- %N:服务器名
- %d:当前服务器进程ID
- %a:远程客户机的体系结构,目前只能识别windows,其他系统被标识为UNKNOWN
四、smb.conf参考文件
[global]
#工作组,此处BOGON为域名
workgroup = BOGON
#设置安全等级为user
security = user
#使用的是tdb数据库格式
passdb backend = tdbsam
#记录日志
log file = /var/log/samba/log.%m
max log size = 50
#打印相关设置
printing = cups
printcap name = cups
load printers = no
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
writable = yes
inherit acls = Yes
#权限设置
create mode = 0664
directory mode = 0775
#project为共享的目录名称
[project]
comment = smbusers project
#共享的文件目录path,Linux主机中实际的位置
path = /home/project
#让所有登录的用户看到该目录,登录的用户还可以看到自己的家目录
browseable = yes
#登录用户可在path下拥有写权限
writable = yes
#能够进入该资源的用户,users为组
write list = @users
参考链接:
1.《鸟哥的Linux私房菜-服务器架设篇》
2. http://www.qacn.net/viewchapter.aspx?topicid=5&chapterid=76