SMB(Server Messages Block,服务器消息块)协议,是微软和英特尔在1987年共同推出的,主要是解决局域网内的文件或打印机等资源的共享问题,这使得在多个主机之间共享文件变得越来越简单。
Samba,是Tridgwell为了解决Linux系统与windows系统之间的文件共享问题,基于SMB协议开发出来的服务程序。它是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与windows系统之间的文件共享工作。
表1:Samba服务的配置参数以及作用
Centos 7使用Samba实现文件共享
pdbedit命令用于管理SMB服务的账户信息数据,格式为“pdbedit [参数] 账户”。
表2:pdbedit命令的参数以及作用
Centos 7使用Samba实现文件共享
通过账户和密码的验证方式访问共享资源
1、创建用于访问共享资源的账户信息
注:第一次使用pdbedit命令写入账户信息数据时需要使用-a参数,以后执行修改密码、删除账户等操作时就无需使用-a了。

useradd -M -s /sbin/nologin test
pdbedit -a -u test

Centos 7使用Samba实现文件共享
2、创建用于共享资源的目录

mkdir -p /data/tools
chown -Rf test:test /data/tools/

3、修改共享目录的selinux安全上下文

semanage fcontext -a -t samba_share_t /data/tools
restorecon -Rv /data/tools/

Centos 7使用Samba实现文件共享
4、修改配置文件,添加如下内容
vim /etc/samba/smb.conf

[tools]   #共享目录名为tools
        comment = Do not arbitrarily modify the tools file   #描述信息
        path = /data/tools   #共享目录的路径
        valid users = test   #允许访问该共享的用户
        public = no   #不允许guest用户访问
        writable = yes   #允许写入操作

5、配置firewalld防火墙允许Samba服务

firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

6、启动samba服务,并加入开机启动

systemctl restart smb
systemctl enable smb

7、windows访问共享目录
在windows的“运行”命令框中输入\192.168.2.211\tools,输入访问共享资源的账号和密码,就可以登陆到共享目录了。
Centos 7使用Samba实现文件共享
Centos 7使用Samba实现文件共享
此时可以测试一下上传文件、下载文件,正常情况下应该都OK。
8、Linux访问共享目录(在另一台linux机器上操作)
(1)安装cifs-utils软件包
yum -y install cifs-utils
(2)将用户名、密码、共享域的信息写入到一个认证文件中
vim auth.smb

username=test
password=123456
domain=MYGROUP
chmod 600 auth.smb

(3)创建一个用于挂载共享资源的目录,并把挂载信息写入/etc/fstab文件中

mkdir /data/test
vim /etc/fstab

//192.168.2.211/tools /data/test cifs credentials=/root/auth.smb 0 0
mount -a
(4)测试
在共享目录里写入一个测试文件
echo "it is xuad" > /data/test/xuad.txt
在samba服务器上查看测试文件内容
Centos 7使用Samba实现文件共享
通过guest用户访问共享资源
1、创建用于共享资源的目录

mkdir /data/xuad
chmod 777 /data/xuad/

2、修改共享目录的selinux安全上下文

semanage fcontext -a -t samba_share_t /data/xuad
restorecon -Rv /data/xuad/

3、修改配置文件,添加如下内容
vim /etc/samba/smb.conf

[xuad]
        comment = Fully shared directory
        path = /data/xuad
        public = yes   #允许guest用户访问
        writable = yes

4、检查samba服务的配置是否正确
testparm
Centos 7使用Samba实现文件共享
5、重启samba服务
systemctl restart smb
6、windows访问共享目录
Centos 7使用Samba实现文件共享
此时可以测试一下上传文件、下载文件,正常情况下应该都OK。