1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block)服务器消息块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
首先需要先通过软件仓库来安装Samba服务程序(Samba服务程序的名字也恰巧是软件包的名字),顺手再安装一个samba-client软件包,这是用于一会测试共享目录的客户端程序
# dnf install samba samba-client
Samba服务程序的主配置文件: /etc/samba/smb.conf
Samba服务程序中的参数以及作用
行数 | 参数 | 作用 |
1 | # See smb.conf.example for a more detailed config file or | 注释信息 |
2 | # read the smb.conf manpage. | |
3 | # Run 'testparm' to verify the config is correct after | |
4 | # you modified it. | |
5 | [global] | 全局参数 |
6 | workgroup = SAMBA | 工作组名称 |
7 | ||
8 | security = user | 安全验证的方式,总共有4种 |
9 | ||
10 | passdb backend = tdbsam | 定义用户后台的类型,总共有3种 |
11 | ||
12 | printing = cups | 打印服务协议 |
13 | printcap name = cups | 打印服务名称 |
14 | load printers = yes | 是否加载打印机 |
15 | cups options = raw | 打印机的选项 |
16 | ||
17 | [homes] | 共享名称 |
18 | comment = Home Directories
|
描述信息 |
19 | valid users = %S, %D%w%S | 可用账户 |
20 | browseable = No | 指定共享信息是否在“网上邻居”中可见 |
21 | read only = No | 是否只读 |
22 | inherit acls = Yes | 是否继承访问控制列表 |
23 | ||
24 | [printers] | 共享名称 |
25 | comment = All Printers | 描述信息 |
26 | path = /var/tmp | 共享路径 |
27 | printable = Yes | 是否可打印 |
28 | create mask = 0600 | 文件权限 |
29 | browseable = No | 指定共享信息是否在“网上邻居”中可见 |
30 | ||
31 | [print$] | 共享名称 |
32 | comment = Printer Drivers | 描述信息 |
33 | path = /var/lib/samba/drivers | 共享路径 |
34 | write list = @printadmin root | 可写入文件的用户列表 |
35 | force group = @printadmin | 用户组列表 |
36 | create mask = 0664 | 文件权限 |
37 | directory mask = 0775 | 目录权限 |