一、samba简介

        samba目前比较流行了文件服务器之一,samba主要用于沟通windows和unix like这两个平台,linux机器通过开启samba服务,能够将linux本机的某个磁盘空间共享出来,window机器能够访问linux共享出来的地址,并且windows操作该共享目录就像操作本机磁盘一样,毫无差别。

        下面是我平时使用的主要的samba功能:

             1)在windows机器上能够顺利的将文件拷贝到linux机器上,比如:linux服务器上运行的代码、离线环境下将linux版本软件拷贝到linux上;

             2)共享linux服务器的存储空间;比如我有一个服务器,硬盘空间比较大,有几十个T,这样就装上linux系统,开一个samba服务就能够将服务器的硬盘空间共享出来,大家就能够使用了(这里有的朋友会问,我安装windows系统也行啊?对,windows系统的确也行,但是我选择linux的原因一个是linux系统相对来说还是比较稳定的,另一个原因就是目前linux的病毒相对较少【目前已经有了专门针对445端口的病毒windows下】)

二、samba搭建

        不多说啦直接上实战,我的linux版本:centOS7.5

       1) 首先先登录linux系统,我使用的是root账户,这样在安装的时候比较方便。

        2)登陆系统后,首先检查该linux系统是否已经安装了samba服务(centOS7.5版本在装机的时候都是默认安装的),输入如下命令进行检查:

rpm -qa | grep samba

         我的机器已经安装过samba这个服务了,我的查询结果如下:

         

samba优缺点_samba

       上面的软件不都是必须的,其中必须的软件有一下几个:

        1)samba-4.6.2-8.el7.x86_64     #这个软件提供了smb服务所需的各项服务程序

        2)samba-client-4.6.2-8.el7.x86_64    #这个软件提供了当linux作为SAMBA Client端时,所需要的工具指令

        3)samba-common-tools-4.6.2-8.el7.x86_64   #这个工具主要提供的是samba的服务端和客户端都需要的数据,包括samba的主要配置文件(smb.conf),语法检验指令(testparm)等等

        上面的命令输入后,如缺少上面的几个或者其中一个必要的软件请将软件安装完整,yum安装是比较方便的,输入如下命令进行在线安装,离线的朋友也不用紧张,在linux的DVD版中的Packages中是有提供samba的软件安装包的(如需要离线安装请参考我的另一篇博客----将CentOS镜像配置为yum源);

yum install samba samba-client.x86_64 samba-common -y

        上面的准备工作完成之后,开始samba配置文件的配置,samba的配置大致分为两种,一种是有密码的共享服务(每次机器重启后,需要输入用户名和密码才能登陆到samba),一种是不需要密码的,用户直接输入ip地址之后就能够直接进入共享文件夹,下面我分别介绍这两种配置文件的编写;

        1.没有密码的配置文件实例,软件安装完成后samba配置文件的路径为(/etc/samba/smb.conf),vim  /etc/samba/smb.conf  打开文件  :

[global]
        workgroup = workgroup
        security = user
        map to guest = Bad User  #这句很关键,加上这个配置项后用户不需要输入密码就能访问samba
        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = no
        create mask = 0777
        directory mask = 0777
[shareroot]
        comment = Public stuff
        path = /home/shareroot   #共享的目录
        public = yes             #公开访问
        read only = no           #只读访问
        writeable = yes          #用户有写入权限
        browseable = yes         #用户有浏览权限
        guest ok = yes
        write list = +staff      #可写入用户配置
        force create mask = 777  #用户通过samba创建文件的默认权限
        force directory mask = 777 #用户通过samba创建文件夹的默认的权限

        没有密码的配置很简单,将上面的配置完成后,检查linux的防火墙配置,我的是直接将防火墙关闭了,输入如下命令关闭防火墙

systemctl stop firewalld    #关闭防火墙
setenforce 0                #关闭selinux

        输入如下命令检查防火墙配置(下面的截图为防火墙关闭状态):   

  

samba优缺点_配置文件_02

       配置好上面的步骤后,samba就可以不适用密码登陆了(配置完成后还是有问题的朋友可以在下面留言讨论,咱们一起进步哈);

       2.有密码的samba配置

        1)修改samba的配置文件如下:

[global]
        workgroup = workgroup
        security = user
        #map to guest = Bad User    #将这一行注释掉
        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = no
        create mask = 0777
        directory mask = 0777
[shareroot]
        comment = Public stuff
        path = /home/shareroot
        public = yes
        read only = no
        writeable = yes
        browseable = yes
        guest ok = yes
        write list = +staff
        force create mask = 777
        force directory mask = 777

        2)使用useradd命令建立samba用户:

useradd -d /home/shareroot/ -s /sbin/nologin samba    #创建smb用户,-s 后面的参数表示拥护没有登陆权限,-d 将用户的home目录设置为共享目录

        3)将samba系统用户添加到samba服务用户列表中

pdbedit -a samba   #将samba用户添加到samba中

       输入上面的命令后,会提示输入密码,成功后提示如下:

samba优缺点_配置文件_03

        4)重启samba服务:

systemctl restart smb

亲测,samba用户能够成功访问共享!