Samba服务介绍
简介
1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了Samba服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
配置文件
默认路径:/etc/samba/smb.conf
默认配置项文档
配置项 | 作用 | 作用域 |
---|---|---|
[global] | 全局参数。 | |
workgroup = MYGROUP | 工作组名称 | |
server string = Samba Server Version %v | 服务器介绍信息,参数%v为显示SMB版本号 | |
log file = /var/log/samba/log.%m | 定义日志文件的存放位置与名称,参数%m为来访的主机名 | |
max log size = 50 | 定义日志文件的最大容量为50KB | |
security = user | 安全验证的方式,总共有4种 | |
share:来访主机无需验证口令;比较方便,但安全性很差 | ||
user:需验证来访主机提供的口令后才可以访问;提升了安全性 | ||
server:使用独立的远程主机验证来访主机提供的口令(集中管理账户) | ||
domain:使用域控制器进行身份验证 | ||
passdb backend = tdbsam | 定义用户后台的类型,共有3种 | |
smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码 | ||
tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 | ||
ldapsam:基于LDAP服务进行账户验证 | ||
map to guest = Bad User | 映射为匿名用户进行验证 | |
load printers = yes | 设置在Samba服务启动时是否共享打印机设备 | |
cups options = raw | 打印机的选项 | |
[homes] | 共享参数 | |
comment = Home Directories | 描述信息 | |
browseable = no | 指定共享信息是否在“网上邻居”中可见 | |
writable = yes | 定义是否可以执行写入操作,与“read only”相反 | |
[printers] | 打印机共享参数 | |
comment = All Printers | ||
path = /var/spool/samba | 共享文件的实际路径(重要)。 | |
browseable = no | ||
guest ok = no | 是否所有人可见,等同于"public"参数。 | |
writable = no | ||
printable = yes |
服务相关命令
smbpasswd
参数 | 作用 |
---|---|
-a | 添加一个samba用户 |
-d | 禁用一个samba用户 |
-e | 恢复一个samba用户 |
-x | 删除一个samba用户 |
pdbedit
参数 | 作用 |
---|---|
-a 用户名 | 建立Samba用户 |
-x 用户名 | 删除Samba用户 |
-L | 列出用户列表 |
-Lv | 列出用户详细信息的列表 |
无论是smbpasswd还是pdbedit,创建samba用户前,该用户均需存在于当前系统
配置实例
实例一:通过SMB共享目录
共享目录: /common
拥有读写权限,不需验证
配置为仅允许本域内的客户端进行访问
配置服务
# vim /etc/samba/smb.conf
[global]
map to guest = Bad User # 添加该配置项,启用匿名访问
[common]
path = /common
browseable = yes
writable = yes
public = yes
hosts allow = 192.168.10.
# systemctl restart smb
配置安全规则
# iptables -F
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload
# semanage 0
验证
# smbclient -L //192.168.10.10 #直接敲击回车即可
# mkdir /common.smb
# mount -t cifs //192.168.10.10/common /common.smb #直接敲击回车即可
实例二:配置SMB多用户验证
共享目录:/security
用户lisi
仅拥有读的权限,验证密码为passwd
用户wangwuj
拥有读写的权限,验证密码为password
配置服务
# mkdir /security
# vim /etc/samba/smb.conf
[security]
path = /security
browseable = yes
public = yes
writable = no
write list = wangwu
# smbpasswd -a lisi # 为lisi设置密码
# smbpasswd -a wangwu # 为wangwu设置密码
配置安全规则
# setfacl -Rm u:wangwu:rwx /security
# iptables -F
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload
# semanage 0
验证
# smbclient -L //192.168.10.10 -U lisi # 输入密码验证
# smbclient -L //192.168.10.10 -U wangwu # 输入密码验证
# vim /etc/fstab
//192.168.10.10/security /security cifs defaults,multiuser,username=wangwu,password=password,sec=ntlmssp 0 0
# mount -a
# echo "hello" > /security/newfile
参考链接
- SAMBA文件共享服务
- Samba启动服务中的nmb是什么
- Samba服务器搭建,匿名访问,用户密码访问
- Samba服务配置详解(匿名,身份,别名,访问控制,挂载访问)