Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。
系统环境信息
主机名称 | 操作系统 | IP地址 |
Samba共享服务器 | Centos 7 | 192.168.1.235 |
Linux客户端 | Centos 7 | 192.168.1.231 |
Windows客户端 | Windows 7 | 192.168.1.68 |
安装配置Samba服务端
1、使用yum安装samba服务端
yum install -y samba
2、更改配置文件,保留global区域参数和自定义区域参数即可,其他可以删除。
vim /etc/samba/smb.conf
[global] #全局参数
workgroup = WORKGROUP #工作组名称
security = user #安全验证的方式,总共有4种:
#1、share:来访主机无需验证口令;比较方便,但安全性很差。
#2、user:需验证来访主机提供的口令后才可以访问
#3、server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#4、domain:使用域控制器进行身份验证
passdb backend = tdbsam #定义用户后台的类型有3种:
#1、smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#2、tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#3、ldapsam:基于LDAP服务进行账户验证
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[smbshare] #共享名称
comment = smbshare test #描述
path = /mnt/smbshare #共享目录路径
write list = goodls #有写入权限的用户
browseable = Yes #是否可浏览
3、验证配置文件并新建共享目录后启动服务
#使用testparm命令测试配置文件是否有问题
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[smbshare]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
#新建共享目录
mkdir /mnt/smbshare
echo "hello world" > /mnt/smbshare/test.txt
#开启服务
systemctl start smb nmb && systemctl enable smb nmb
4、创建本地用户与samba用户密码
#创建本地用户
useradd -s /sbin/nologin goodls
#设置共享目录所有者与组都为goodls
chown -R goodls:goodls /mnt/smbshare
#创建samba用户设置密码
smbpasswd -a goodls
#查看SMB用户列表
[[email protected] ~]# pdbedit -L
goodls:1001:
Samba客户端挂载
1、安装cifs及samba-client客户端
yum install -y cifs-utils samba-client
2、新建本地挂载目录
mkdir /mnt/smbshare
3、临时挂载,要求输入密码
mount -o username=goodls //192.168.1.235/smbshare /mnt/smbshare
!!!注意 //192.168.1.235/smbshare 此处的smbshare是服务器端写的共享名称并非路径
查看
4、使用开机自挂载,账号密码写入文件
#新建一个认证文件
vim auth.smb
username=goodls
password=test2018
#设置为600权限
chmod 600 auth.smb
5、写入开机自挂载
vim /etc/fstab
//192.168.1.235/smbshare /mnt/smbshare cifs credentials=/root/auth.smb 0 0
6、执行挂载
mount -a
7、验证权限
#读取 [[email protected] ~]# cat /mnt/smbshare/test.txt hello world #写入 mkdir /mnt/samshare/test