一、/etc/samba/smb.conf配置文件
在原先的旧版本中,这个文件有接近300行的内容,绝大部分都是注释。到了新版本,为了更加清晰的查看配置文件内容,将完整的注释内容放到了/etc/samba/smb.conf.example这个模板文件当中,而smb.conf只保留生效的参数。两个文件部分截图如下:


为了完整了解samba配置文件的结构,我们就以模板文件来说。
- 在模板文件中,除了常规的“ # ”注释行,还有一种特殊的 “ ;”开头的注释,对samba来说,这个意思是例子,如果你需要,可以参照这个。
- 在模板文件的开头,注释的内容是说-----samba服务会被Selinux安全组件管理,我们一般建议关闭selinux,否则samba服务会无法正常访问。具体是将/etc/selinux/config中的SELINX参数值改为disabled,查看状态用
sestatus命令。 - 第一部分"Global Settings",全局设置,用======表示,单独的用------表示,部分内容如下图:

- 第二部分“Share Definitions”,共享设置,用=======表示,部分内容如下图:

共享设置这边,有三个区域存在,分别是:
[homes]# 用户目录共享设置,针对任意用户生效的配置。samba服务是用系统用户(即useradd添加的用户),单独的samba文件存放密码。
[printers]# 打印机共享设置。
[myshare]# 自定义名称的共享目录设置。
二、全局设置(Global Settings)

workgroup = MYGROUP # 工作组。在windows中,默认所有主机的工作组为“WORKGROUP”,windows10在 “网络” 这,如果所有人都是默认的工作组,则会直接显示主机名。当然如果局域网中有多个工作组,则是先显示工作组,工作组下面包含各个主机名。工作组的目的就是为了方便管理。
server string = Samba Server Version %v # 服务器的说明,填写什么都无所谓,这里的%v是一个变量,用来描述当前samba的版本信息,一般建议不显示版本,原因在于可能利用某一版本的漏洞进行攻击。

netbios name = MYSERVER # 当有wins服务器时才需要打开。
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.12. 192.168.13. # 这两个是简单的ip访问控制,一般情况下是通过防火墙来达到访问控制的效果。
log file = /var/log/samba/log.%m # 日志路径,%m是一个变量,表示客户端的Netbios主机名。
max log size = 50 # 最大日志的大小,单位是KB。如果超过50KB,则删除最先的内容,保存最新的内容。
security = user # 安全级别,可用值如下:
share 不需要密码可以访问,相当于windows共享的时候开启guest用户。
user 默认级别,使用系统用户,samba密码登陆。
server 由其他服务器提供认证
domain 由域控制器提供认证
passdb backend = tdbsam # 用户的后台,有三种后台:smbpasswd、tdbsam和ldapsam。三种后台对应三种不同的用户管理后台,这里不具体展开。
load printers = yes # 是否开启samba服务的时候同时共享打印机。
cups options = raw # 打印机的选项
全局设置不需要做任何更改。
三、共享设置(Share Definitions)
[homes] ,中括号内的homes是共享名。访问的时候看到的是共享名而不是目录名。类似windows的共享,如下图:

comment = Home Directories # 描述,也就是说明。可写可不写。
path = /var/spool/samba # 指定共享的路径位置。
guest ok = no # 是否允许所有人访问目录,yes为是,no为否。,等同于public。如果“ security = share ”,表示所有人都能登录samba服务器;而guset ok针对的是目录,如果你给某一个目录设置了guest ok = yes,那么任何登录samba服务的人都能访问这个共享目录。和vsftp一样,匿名用户到底能不能上传,不仅与服务的配置文件有关,还与操作系统目录的权限有关,只有两个都生效,才能上传。同样的,samba能不能访问目录也是这样的。
read only = yes # 是否所有人只读,yes表示所有人只读,no表示所有人可写。
writeable =yes # 是否所有人可写,yes表示所有人可写,no表示所有人可读,read only和writeable这两个参数是冲突的,所以在一个共享目录当中只能出现其中的一个。如果“read only = yes”和“writeable =yes”都填入了,谁写在文件内容的最后一行,谁就是生效的。
write list = +staff #拥有写权限的用户列表。假设guest ok=yes,path = /var/spool/samba,同时writeable =yes,这表示所有的人都能访问目录,所有人可写(即上传)。如果加了这个wrtite list,那么只有这唯一的一个用户可写,其他人只能只读,不能写。
browseable = no # 是否浏览可见,在网络邻居是否能看到,yes是,no否。这与目录能不能访问没有关系,只代表这个目录能不能在网络邻居里看到。一般情况下,都是yes。
valid users = # 指定可以访问共享的用户。如果没有guest ok,那么是指定某个用户访问。要指定多个用户,用英文状态的逗号隔开,如果是组,则是”@组名“,多个组用逗号隔开。当然你愿意,可以混用,比如:” 用户名,@组名 “这样的。
共享设置是我们主要要更改的。
四、samba常见的变量

本文详细介绍了samba服务的配置文件smb.conf,包括全局设置、共享设置和常见变量。全局设置涉及工作机组、服务器说明、安全级别等;共享设置涵盖用户目录、打印机共享和自定义共享目录的配置。理解这些设置对于有效管理和安全使用samba服务至关重要。

2万+

被折叠的 条评论
为什么被折叠?



