• 【Linux】【Services】【NetFileSystem】Samba


    1. 简介

    1.1. 背景:case is initiative by 某windows无良人事,需求是需要一整块4T的硬盘,由于ESXi5最大支持一块盘是2T大小,而且不可以使用windows动态卷组和裸设备(由于是无良人士,给出的理由自然无良,请不要深究)。决定使用Linux的samba对在本地使用xfs的卷组做网盘映射。正好马哥架构师培训的作业里也有一个关于samba的作业,一起搞定。

    1.2. smb:service message block

    cifs:common internet file system

    1.3. 功能:

    文件系统共享:

    打印机共享:

    NetBIOS协议:

    2. 版本

    2.1. OS: CentOS Linux release 7.2.1511 (Core)

    2.2. kernel: 3.10.0-327.36.2.el7.x86_64

    2.3. samba: 4.4.4-12.el7_3

    3. 安装

    3.1. OS(略)

    3.2 samba:

    没啥好说的,直接yum装

    yum install samba -y
    

      

    装了好多的包

    ===============================================================================================================================================================================================
     Package                                             Arch                                    Version                                            Repository                                Size
    ===============================================================================================================================================================================================
    Installing:
     samba                                               x86_64                                  4.4.4-12.el7_3                                     updates                                  610 k
    Installing for dependencies:
     libkadm5                                            x86_64                                  1.14.1-27.el7_3                                    updates                                  173 k
     libldb                                              x86_64                                  1.1.26-1.el7                                       base                                     125 k
     libtalloc                                           x86_64                                  2.1.6-1.el7                                        base                                      34 k
     libtdb                                              x86_64                                  1.3.8-1.el7_2                                      base                                      45 k
     libtevent                                           x86_64                                  0.9.28-1.el7                                       base                                      34 k
     libwbclient                                         x86_64                                  4.4.4-12.el7_3                                     updates                                  100 k
     pytalloc                                            x86_64                                  2.1.6-1.el7                                        base                                      15 k
     samba-client-libs                                   x86_64                                  4.4.4-12.el7_3                                     updates                                  4.6 M
     samba-common                                        noarch                                  4.4.4-12.el7_3                                     updates                                  191 k
     samba-common-libs                                   x86_64                                  4.4.4-12.el7_3                                     updates                                  161 k
     samba-common-tools                                  x86_64                                  4.4.4-12.el7_3                                     updates                                  451 k
     samba-libs                                          x86_64                                  4.4.4-12.el7_3                                     updates                                  260 k
    Updating for dependencies:
     krb5-devel                                          x86_64                                  1.14.1-27.el7_3                                    updates                                  651 k
     krb5-libs                                           x86_64                                  1.14.1-27.el7_3                                    updates                                  740 k
    
    Transaction Summary
    ===============================================================================================================================================================================================
    

      

    3.3. 程序包与服务详解

    3.3.1. 服务器程序包:samba

    nmbd:NetBIOS name server,主要用来给windows共享

    smbd:SMB/CIFS services

    systemd unit file:nmb.service/smb.service

    /etc/samba/smb.conf:主配置文件

      全局配置:[global]

            workgroup = :当前samba主机所属工作组

            netbios name = :当前samba主机的netbios名称

            server string = :主机注释

            display charset =:当前samba服务所用字符集

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

            dos charset =:Windows端的字符集

            interfaces =:samba服务监听的IP地址或网络接口

            host allow =:客户端来源白名单

            log file =:日志文件位置(%m表示记录客户端的IP地址)

            max log size =:每个日志文件的大小

            #Standalone Server Options

            security =:设定安全级别

              #取值为以下三者之一

              #share(匿名共享)

              #user(使用SAMBA服务自我管理的账号和密码进行用户认证;用户必须是OS用户,但密码为samba服务专用密码)

              #domain(使用DC进行用户认证)

            passwd backend = tdbsam 密码库文件的格式;

      每个共享的专用配置:

        [共享名称]:此即为某共享的服务名

          comment:注释信息

          path:此共享对应本地文件系统路径

          browseable:是否可浏览,是否可被所有用户看到;

          writeable;是否可写,不可以与writelist同时使用

          read only:是否为只读

          writelist:可写用户或组列表

            用户名

            @用户组

            +组名

          public:是否是公开的服务

          guest ok:是否允许来宾账号访问

      可用的宏列表(定义在配置文件中的变量):

        %m:客户端主机的NetBIOS名称;

        %M:客户端的Internet主机名,即HOSTNAME;

        %H:当前用户的家目录

        %U:当前用户的用户名

        %g:当前用户所属的组名

        %h:当前SAMBA主机的HOSTNAME;

        %I:客户端主机IP;

        %T:当前的日期时间;

    3.3.2. 监听的端口:137/udp,138/udp,139/tcp,139/tcp,445/tcp

    3.3.3. 配置文件测试工具testparm

    3.3.4. 用户管理工具smbpasswd

        smbpasswd [option] USERNAME

          -a:添加

          -x:删除

          -d:禁用

          -e:启用

    3.3.5. 访问samba共享

    Linux:

      smbclient:交互式命令行客户端;

        # smbclient -L SAMBA_SERVER -U USERNAME

        # smbclient //SAMBA_SERVER/SERVICE_NAME -U USERNAME

      mount -t cifs:挂载文件系统

        # mount -t cifs -o username=USERNAME,password=PASSWORD //SAMBA_SERVER/SHARED /MOUNT_POINT

    Windows:

      \HOST OR IPSHARED_DIR

    3.3.6. 管理samba用户:pdbedit

      pdbedit [options]

        -L:列出所有的smb用户;

          -v:verbose

        -a:添加用户

          -u USERNAME

        -x:删除指定用户

        -r:修改用户的相关信息

    3.3.7. samba服务的状态:smbstatus

        -b:显示简要格式信息

        -v:显示详细格式信息

    4. 配置

    4.1. 配置两块盘为一个本地的卷组

    两块盘

    创建卷组vg_samba

    创建逻辑卷lv_samba,把空间都用上

    格式化文件系统为xfs,然后挂在/data_samba上

    如果需要开启启动,请记得systemctl enable smb.service,并且在/etc/fstab中把要共享的文件系统写进去,过程略。

    4.2. 以作业为例题,要求如下:

    建立samba共享,共享目录为/data_samba,要求:(描述完整的过程)

    1)共享名为shared,工作组为magedu;

    2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;

    3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;

    4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;

    5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

    添加samba用户(samba用户必须为系统用户):

    4.3. 增加共享资源,修改/etc/smb.conf

    [shared]
            comment = shared
            workgroup = magedu
            path = /data_samba
            browseable = yes
            guest ok = yes
            write list = @develop
            allow host = 172.16.0.0/16
    

      

    4.4. 添加各种用户和组

    #添加用户和组
    [root@hccwhuatnginx01 yum.repos.d]# useradd gentoo
    [root@hccwhuatnginx01 yum.repos.d]# useradd centos
    [root@hccwhuatnginx01 yum.repos.d]# useradd ubuntu
    [root@hccwhuatnginx01 yum.repos.d]# groupadd develop
    #添加用户到组
    [root@hccwhuatnginx01 yum.repos.d]# gpasswd -a centos develop
    Adding user centos to group develop
    [root@hccwhuatnginx01 yum.repos.d]# gpasswd -a ubuntu develop
    Adding user ubuntu to group develop
    #修改用户密码
    [root@hccwhuatnginx01 yum.repos.d]# echo "gentoo"|passwd --stdin gentoo
    Changing password for user gentoo.
    passwd: all authentication tokens updated successfully.
    [root@hccwhuatnginx01 yum.repos.d]# echo "centos"|passwd --stdin centos
    Changing password for user centos.
    passwd: all authentication tokens updated successfully.
    [root@hccwhuatnginx01 yum.repos.d]# echo "ubuntu"|passwd --stdin ubuntu
    Changing password for user ubuntu.
    passwd: all authentication tokens updated successfully.
    #修改用户samba密码
    [root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a gentoo
    New SMB password:
    Retype new SMB password:
    Added user gentoo.
    [root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a centos
    New SMB password:
    Retype new SMB password:
    Added user centos.
    [root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a ubuntu
    New SMB password:
    Retype new SMB password:
    Added user ubuntu.
    

      

    4.5 最后记得修改文件夹的权限

    [root@hccwhuatnginx01 /]# chown :develop /data_samba/
    [root@hccwhuatnginx01 /]# chmod g+w /data_samba/
    [root@hccwhuatnginx01 /]# 
    

      

  • 相关阅读:
    PDF数据提取------2.相关类介绍
    Google搜索的常用技巧
    a helper class for generating xls or csv file
    正则 提取html标签value
    获取 windows地址栏 网页地址栏 文件名
    MSSQL将逗号分隔的字符串转换成列显示
    C# String.Format字符串中包含"{" "}"时需注意的问题
    格式化JSON中时间
    Oracle 10G创建表空间
    Sqlserver取最近一分组中最新一条记录
  • 原文地址:https://www.cnblogs.com/demonzk/p/6518675.html
Copyright © 2020-2023  润新知