文件共享之Samba

1.Samba基础知识:

    Tridgwell在91年时为解决Linux与window之间文件共享服务,开发出SMB协议与Samba服务程序。

    smb:Service message block消息服务块;

    CIFS:commom Internet file system,通用网络文件系统;

    Samba功能:文件共享、打印机共享、NetBIOS协议(Windows基于主机实现互相通信机制,15个字符);

2.Samba服务:

    2.1服务端程序包:通过yum install -y samba;nmbd提供netbios name service ;smbd提供cifs共享;

        systemd unit file: nmbd→nmb.service

                           smbd→amb.service

        客户端程序包:Samba-client 

                      smbclient 命令交互工具;

                      mount -t cifs 实现本地挂载方式;

    2.2启动服务:systemctl start nmb.service

                 systemctl start nmb.service

        检查监听端口:netsate -utnlp

        如图:

        image.png

    2.3Samba配置文件:man smb.conf

        /etc/samba/smb.conf /etc/samba/sam.conf.example

        配置段:全局配置[global]、共享配置段[共享资源名称]

        2.3.1全局配置

            workgroup=MYGROUP; #当前Samba主页所属工作组

            netbios name = : #当前主机netbios名称

            server string = :#主机注释

            display chaset = :#当前Samba主机服务使用字符集

            unix chaset = : #当前Linux主机所用的字符集

            dos chaset = : #windos系统字符集

            log file = /var/log/samba/log.%m #定义日志文件存放位置和命名,%m客户端hostname命名

            max log size =50 :#定义日志文件最大容量50KB

            security = user #设定安全级别为user机制        

                       安全级别有以下3种:

                        share:匿名共享,安全性差

                        user:使用Samba服务自我管理的账号密码对用户进行验证;用户需为系统用户;

                              密码为访问Samba服务设定的密码。

                        domain:使用DC进行用户认证

            passdb backen = tdbsam #密码库文件格式

        2.32共享配置:

            [共享名称]定义某共享服务名

            comment =:#注释信息

            path =:#定义共享文件路径

            browserable =:#是否可浏览,是否可被所有用户看到

            writeable =:是否可写

            read only =:是否为只读

            write list =:可以写操作的用户列表 :"用户名"、"@组名"或者"+组名"

            public =:是否公开服务

            guest OK =:是否允许来宾,与public类似

                注:writable与write list不可同时启用;

        2.4检查配置文件语法:

            testparm /etc/samba/smb.conf

3.管理Samba用户工具

        smbpasswd [option] username

            -a:add user

            -x:delete user

            -d:禁用

            -e:启用

        pdbedit [option]

            -L:列出所有用户

            -v:verbose

            -a:add user

                 -u username

            -x:delete user  -u username

            -r:修改用户信息

         smbstatus:显示Samba server的相关共享访问状态

            -b:简要信息

            -v:verbose

4.访问Samba共享:访问UNC路径://server/shared_name

    Linux:

    smbclinet:交互式命令客户端

    mount -t cifs:挂载文件系统

    window:\\HOST OR IP\SHARED_DIR

    4.1交互式数据访问:

         smbclient -L HOST -U USERNAME  #获取到共享信息

         smbclint //server/shared_name  [-U username] [-p passwd]              

    4.2基于挂载的方式访问:

          mount -t cifs //SERVER/shared_name  /mount_point -o username=USERNAME,password=PASSWORD

               密码可以交互式输入:

5.安全共享文件实现

      使用Samba安全机制user模式下实现centos7之间以及win7之间文件共享:

          创建一个共享data,路径为/ftp/data,要求仅centos和gentoo能上传文件, 此路径对其他用户不可见:

    5.1设置配置文件的安全机制为user

             image.png

    5.2创建共享文件

        image.png

    5.3创建用户并授权

        useradd centos

        setfacl -m u:centos:rwx /ftp/data

        添加用户至Samba服务

        image.png

    5.4实现文件共享

        5.4.1linux主机访问正常,上传下文件正常

            image.png

       5.4.2Linux与win7之间,首先要确保能够互相通信、iptables以及selinux关闭状态:

          在Windows资源管理中:\\192.168.1.111便切换至认证界面 :输入Samba认证的用户和密码即可登录:

            image.png

        共享文件的家目录:

            image.png

        5.4.3在本地win编辑centos.txt上传至centos家目录,在Linux客户端查看并上传至共享文件data中:

        image.png

        在Linux本地查看:

        image.png

        Linux上传centos.txt至/ftp/data,window访问正常。

     




















       

猜你喜欢

转载自blog.51cto.com/12580678/2128999
今日推荐