smb(server messages block 服务器消息快)通过 cifs 协议进行文件共享(文件传输)的服务器,cifs 本身也是一种文件系统分布式锁
我们在VMware上安装两台centos7的linux虚拟机来模拟搭建samba服务。
首先选用一台搭建服务端,查看服务端的ip
服务端的ip为192.168.20.137,方便后面另一台当客户端的虚拟机挂载的时候用到。
服务端
第一步先安装samba工具
yum install -y samba
修改配置文件
然后进入samba的服务目录去修改配置文件
在/etc/samba/smb.conf
我们先备份原始文件cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
然后我们vim /etc/samba/smb.conf进去修改配置文件
进去后直接输入100dd
这样就全部删完了,然后写进以下内容
大概意思为:
[global]
workgroup = SAMBA (工作组名称)
security = user (samba 用户名密码登录)
passdb backend = tdbsam (指定密码数据库的后端存储方式为tdbsam)
[data] (连接名,名字随便取)
path=共享目录路径
public=no (关闭所有人可见)
writable=yes (允许写入)
完成之后:wq保存退出
创建共享的目录和sam用户
先创建要共享的目录,上面配置文件设置的是/smb
所以我们mkdir /smb
然后赋权chmod 757 /smb
配完后也可以用ls -l查看权限配置是否成功
之后我们配置sam用户,一会客户端要成功挂载就要输入smb的用户名和密码登录才行。
配置smb用户,首先要创建一个本地同名的用户,不然smb用户创建不成功。
比如创建一个名为zhangsan的smb用户:
①先创一个本地的用户zhangsan
useradd zhansan
passwd zhangsan
输入两遍密码后本地用户zhangsan就创建成功了
②创建smb用户zhangsan
输入pdbedit -a -u zhangsan,然后再输入两遍密码就创建成功了。
开启samba服务
输入systemctl start smb.service
然后防火墙和selinux放通
关闭防火墙和关闭selinux
systemctl stop firewalld.service
(或者版本支持的话可以选防火墙放通samba服务:firewall-cmd --add-server=samba)
和 setenforce 0
客户端
挂载
客户端先下载主要用于处理CIFS(Common Internet File System)协议的工具包cifs-utils
yum install -y cifs-utils
创建挂载点为/smb-client
然后开始连接samba服务,就是挂载smb
输入mount -t cifs -o username=zhangsan //192.168.20.137/data /smb-client
-t表示文件类型为cifs,-o表示指定smb用户
输入一遍smb用户zhangsan的密码就挂载成功了。
验证
现在客户端和服务端就文件共享成功了。
现在我们验证一下
客户端在文件共享目录/smb-client下创建一个文件,名为123
然后查看服务端在文件共享目录/smb下是否有客户端创建的文件123
可以看到存在文件123,说明文件共享成功。