参考:https://wiki.samba.org/index.php/User_Documentation

由于家里内网需要一个共享存储服务,用来存放一些蓝光电影资源😜。至于为什么不用ftp,个人主观体验后,还是觉得samba更简单好用。

安装

新建一个虚拟机。

  • 系统:CentOS Linux release 7.9.2009 (Core)
  • 配置:2C4G2T
  • 存储路径:/data/samba
1
2
3
4
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install samba -y

创建共享目录和用户:

1
2
3
mkdir -p /data/samba
useradd -s /sbin/nologin -M test01
smbpasswd -a test01

配置

配置文件说明

配置分为两部分:

  • global(全局)
  • share(共享)

global

参数 说明
workgroup the Windows NT domain name or workgroup name, for example, MYGROUP.
server string Windows NT 描述说明
netbios name 服务器名,限制15个字符,可以自定义,并非必须为当前主机名
interfaces 指定监听的网卡,例如interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow 允许访问的IP或IP段,例如hosts allow = 127. 192.168.12. 192.168.13.
hosts deny 不允许访问的IP或者IP段
max connections max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
deadtime deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
日志相关配置(Logging Options)
参数 说明
log file 日志文件路径
max log size 日志文件大小上限,超过上限就轮转,单位KB
独立服务器相关配置(Standalone Server Options)
参数 说明
security 安全模式,可以是user、share、server、domain。建议配置security = user,用户认证
passdb backend 用于存储用户信息,可以是tdbsam或ldapsam。

Share Definitions

参数 说明
comment 该共享的描述
path 共享目录路径
browseable 浏览权限
writable 写权限
available 可用权限
admin users 该共享的管理者
valid users 允许访问该共享的用户
invalid users 禁止访问该共享的用户
public public用来指定该共享是否允许guest账户访问。
write list 允许写入该共享的用户
guest ok 同public
create mask 创建文件时赋予文件的权限
directory mask 创建文件夹时赋予文件夹的权限

配置文件

/etc/samba/smb.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[global]
netbios name = SAMBASERVER
server string = Samba Server Version %v
security = USER
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam

[temp]
comment = samba
path = /data/samba
public = no
writable = yes
directory mask = 0644
create mask = 0755
valid users = test01
write list = test01
browseable = yes
available = yes

一般用以上配置使用即可,若企业环境又域控,则建议参考官方文档配置。

检查配置语法

修改完配置后,可以执行testparm检查*/etc/samba/smb.conf*的语法是否正确。

1
2
3
4
5
6
7
[root@test ~]# testparm 
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

启动

若配置检查没有问题,即可开启服务。

1
2
systemctl start smb
systemctl enable smb # 设置开机自启

至于Win10挂载samba,操作很简单,这里就不详细赘述了。