SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。(思考我i们pc上的网上邻居)不同用户访问主机,根据自己的权限可看到或操作相应的资源。

前提条件:

  • 虚拟机设置为桥接模式 ;
  • Samba服务器端:linux系统IP;
  • 确保虚拟机和主机能互ping;
  1. 虚拟机和主机的防火墙是否都关闭;
  2. 虚拟机和主机是否处于同一网段;
  • 关闭SELinux。

一、安装Samba

查看系统是否安装了samba,一般要有4个包才是正确的。

rpm -qa|grep samba

centOS安装命令:

yum install samba

二、建立共享的文档

Linux怎么搭samba服务 linux搭建samba_linux

然后分别在对应共享文件夹中建立文档

Linux怎么搭samba服务 linux搭建samba_配置文件_02


建立完以后查看一下

Linux怎么搭samba服务 linux搭建samba_服务器_03

三、建立用户及用户组

建立ZHB、JSB这两个用户组,以及zhb1、zhb2、jsb1、jsb2等四个用户,并把zhb1、zhb2加入到ZHB组,jsb1、jsb2加入到JSB组,将设置的系统用户添加至samba用户并设置密码。useradd -G ZHB zhb1(建立用户zhb1同时加入到ZHB用户组)。

注:smbpasswd -a 增加 samba 用户(该账户必须存在于/etc/passwd文件中)

Linux怎么搭samba服务 linux搭建samba_配置文件_04

四、配置Samba服务

vim /etc/samba/smb.conf,使用%d清除原配置,重新配置。
建立三个权限不同的共享文件夹做对比,kjkk共享文件夹所有samba用户都可以查看,zhb共享文件夹只有ZHB组内用户可见,其它Samba用户不可见,jsb共享文件夹只有JSB组内用户可见,其它Samba用户不可见。

smb.conf文件配置如下:

Linux怎么搭samba服务 linux搭建samba_配置文件_05


设置完毕后启动smb服务:

service smb start;

centOS7:

启用: systemctl start smb
查看状态: systemctl status smb
停止: systemctl stop smb
重启: systemctl restart smb

五、用windows客户机测试

(1)启用网络发现和文件共享

在“开始”菜单中打开“控制面板”项,然后选取“网络和共享中心”项并单击其中的“高级共享设置”如下图所示。根据当前局域网的设置类型(家庭或工作网络,公用网络)分别启动“网络发现”以及“文件和打印机共享”功能。

Linux怎么搭samba服务 linux搭建samba_服务器_06


(2)按下win7的快捷键(WIN+R)打开“运行”工具。在“运行”中输入:\samba服务器的ip, 然后回车即可连接。

Linux怎么搭samba服务 linux搭建samba_Linux怎么搭samba服务_07

(3)在使用Windows10 1803版本系统连接CentOS6.5下搭建的Samba服务时,发现打开共享文件会遇到以下提示:

Linux怎么搭samba服务 linux搭建samba_Linux怎么搭samba服务_08

该问题是Win10版本不兼容导致的,具体解决方法如下:

打开控制面板----》程序—》程序和功能—》应用或关闭widows功能—》勾选“SMB1.0/CIFS文件共享支持”即可。(需要重启才能生效):

Linux怎么搭samba服务 linux搭建samba_服务器_09


Linux怎么搭samba服务 linux搭建samba_服务器_10

测试情况:

Linux怎么搭samba服务 linux搭建samba_linux_11


Linux怎么搭samba服务 linux搭建samba_服务器_12


Linux怎么搭samba服务 linux搭建samba_linux_13

六、部分情况处理

注意:同一台window系统客户机中切换多个samba账号的话,若不清理缓存,会出现如下提示错误:

Linux怎么搭samba服务 linux搭建samba_服务器_14


在cmd输入命令清除所有用户连接:

net use * /del /y

七、指定用户授权

建立一个大家都看不见的共享文件(其它用户登录共享,直接看不见该文件夹),只有一个指定的人看见。

在/etc/samba下建立一个文本文件为子配置文件,其名称为mm.smb.conf,并进行配置,步骤如下。

Linux怎么搭samba服务 linux搭建samba_服务器_15


Linux怎么搭samba服务 linux搭建samba_linux_16


建立对应目录及文件

Linux怎么搭samba服务 linux搭建samba_服务器_17


为用户mm设置samba账户和密码:

Linux怎么搭samba服务 linux搭建samba_共享文件夹_18


引用子配置文件。在引用子配置文件时有2种方法:

①config file:在[global]标签下加入如下参数:

[global]

config file = /etc/samba/%U.smb.conf

②include:在[global]标签下加入如下参数:
[global]
include = /etc/samba/%U.smb.conf
注意:config file和include的区别是:使用config file时,当以mm的身份访问Samba服务器,只能浏览到mm,其他在smb.conf中定义的共享资源都无法查看;使用include时,当以mm的身份访问Samba服务器,除了可以浏览到mm,其他在smb.conf中定义的共享资源也可以浏览到,可以看见djkk(mm查看内容)、jsb(无法查看内容)、zhb(mm无法查看内容)文件夹。

此次这里采用include设置,回到/etc/samba/smb.conf设置,添加include = /etc/samba/%U.smb.conf。

Linux怎么搭samba服务 linux搭建samba_配置文件_19


重新启动smb服务:

service smb restart
 systemctl restart smb

同之前一样的测试~~~


好了,就到这里,有什么疑问或者建议,欢迎大家一起来探讨。