Skip to content

一、将SMABA设置为独立服务器

环境介绍

角色操作系统IP地址DNS
服务器RHEL 8.10192.168.100.254223.5.5.5
客户端windows7192.168.100.2223.5.5.5

1.1 基础配置

  1. 设置静态 IPDNS

    nmtui
  2. 设置主机名

    bash
    hostnamectl set-hostname 主机名
  3. 设置chronyd服务与NTP服务器同步时间

    bash
    systemctl enable --now chronyd

    查询系统时区和系统同步时间状态

    bash
    timedatectl
  4. 配置本地YUM源

    1. 利用 SecureFX 软件将系统镜像上传到 root 的目录

    2. 新建挂载点

      bash
      mkdir /mnt/iso
    3. /etc/fstab 文件追加如下内容

      bash
      /root/rhel-8.10-x86_64-dvd.iso /mnt/iso iso9660 defaults 0 0
    4. 重新加载配置文件,并使立即生效

      systemctl daemon-reload
      mount -a
    5. 配置 yum 源文件

      vim /etc/yum.repos.d/rhel8.repo
      bash
      [BaseOS]
      name=BaseOS
      baseurl=file:///mnt/iso/BaseOS
      enabled=1
      gpgcheck=0
      
      [AppStream]
      name=AppStream
      baseurl=file:///mnt/iso/AppStream
      enabled=1
      gpgcheck=0
    6. 安装 samba 相关组件服务进行验证配置正确性

      bash
      dnf install -y samba samba-common samba-client

1.2 用户与用户组

  1. 新建本地用户组

    bash
    groupadd  JingDiao
  2. 增加jd用户,不创建 home,不允许登录主机,添加到附加组JingDiao

    bash
    useradd -M -s /sbin/nologin  -G JingDiao jd
  3. 将系统用户jd添加到samba数据库文件并设置密码

    bash
    smbpass -a jd

1.3 共享文件夹所属组和权限

  1. 新建 JDShare 文件夹并改变其所属组权限

    bash
    mkdir /home/JDShare
    chown :JingDiao /home/JDShare
    chmod 770 /home/JDShare

1.4 安装及配置SAMBA

  1. 安装 SAMBA 软件包(如果前面已安装,此处忽略)

    bash
    dnf install -y samba samba-common samba-client
  2. /etc/samba/smb.conf 文件追加以下配置参数

    bash
    [JDShare]
            comment = JDFileShareServer
            path = /home/JDShare
            browseable = yes
            writable = yes
            valid users =  @JingDiao
            write list =  @JingDiao
  3. 验证 /etc/samba/smb.conf 文件

    bash
    testparm
  4. 启用并启动smb服务

    bash
    systemctl enable --now smb

1.5 防火墙配置

  1. 打开所需的端口并使用 firewall-cmd 工具重新载入防火墙配置

    bash
    firewall-cmd --permanent --add-service=samba
    firewall-cmd --reload
  2. 查看防火墙开放的服务

    bash
    firewall-cmd --list-services

1.6 SELinux配置

bash
semanage fcontext -a -t samba_share_t /home/JDShare
restorecon -Rv /home/JDShare

1.7 客户端测试

  1. Linux 客户端测试

    # smblient -L 127.0.0.1 -U jd
  2. Windows 客户端测试

    \\192.168.100.254

1.8 格式化第二块硬盘并挂载作为数据备份盘

  1. 列出磁盘信息

    bash
    parted -l
  2. 配置第二块硬盘

    bash
    parted  /dev/sdb
  3. 查看帮助

    bash
    help
  4. 配置新的磁盘标签类型(双击 Tab 键列出所有)

    bash
    mklabel
    选择 gpt
  5. 创建分区

    bash
    mkpart
    起始点为:1
    结束点为:100%
  6. 查看分区情况

    bash
    p
  7. 退出编辑

    bash
    q
  8. 格式化硬盘

    mkfs.xfs /dev/sdb1
  9. 新建挂载点

    bash
    mkdir /mnt/sdb1
  10. 编辑 fstab 文件

    bash
    # vim /etc/fstab
    /dev/sdb1 /mnt/sdb1 xfs defaults 0 0
  11. 重新挂载 fstab 文件中挂载信息

    bash
    mount -a
  12. 查看挂载硬盘的信息且写入文件验证

    bash
    touch /mnt/sdb1/test
    ll /mnt/sdb1/

1.9 用rsync工具实现自动备份

  1. 新建文件同步脚本 filesync.sh

    bash
    # vim /home/filesync.sh
    
    #!/bin/bash  
    # 以下--delete 表示在目录文件夹中“多则删,少则补”,实现同步(非增量)
    rsync -av --delete /home/JDShare/* /mnt/sdb1/
  2. 赋予脚本可执行权限

    bash
    chmod +x /home/filesync.sh
  3. 创建计划任务(每隔5分钟同步一次)

    bash
    # crontab -e 
     */5 *  *  *  *  /home/filesync.sh

1.10 超过一个用户设置粘滞位t保护权限

附加补充:

  1. 彻底删除本地系统账户的所有相关文件

    bash
    userdel -rf 用户名
  2. 后续添加用户到 JingDiao 组的操作

    bash
    usermod -a -G JingDiao 新用户
  3. 在 windows 下删除指定后缀文件(例如:*.bak)

    del /a /q /f  /S *.bak

二、将SAMBA设置为域成员服务器

环境介绍

角色操作系统IP地址DNS
域控制器&DNS服务器Windows Server 2012 R2192.168.100.254127.0.0.1
域成员服务器RHEL 8192.168.100.2192.168.100.254
  1. 设置静态IP和DNS

    bash
    nmtui
  2. 设置主机名

    bash
    hostnamectl set-hostname  FileServer
  3. 配置本地YUM源

  4. 安装 SAMBA

    bash
    # dnf repolist
    # yum install realmd oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator
    # yum install samba
  5. 查看磁盘空间

    bash
    df -h
  6. 配置共享目录

    1. 配置共享目录

      bash
      # mkdir /home/itshare
      # mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
      # realm join --membership-software=samba --client-software=winbind vekea.com
      # systemctl status winbind
      # systemctl status smb
      # systemctl enable --now smb
      # getent passwd "vekea.com\administrator
      # wbinfo -u
      # getent passwd "vekea\administrator
      # chown "vekea\administrator":"vekea\Domain Users" /home/itshare
      # kinit administrator@vekea.com
      # wbinfo --all-domains
      # chmod -Rf 0750 /home/itshare/
    2. 配置 /etc/samba/smb.conf 文件

      bash
      # vim /etc/samba/smb.conf
      [global]
      kerberos method = secrets and keytab
      template homedir = /home/%U@%D
      workgroup = VEKEA
      template shell = /bin/bash
      security = ads
      realm = VEKEA.COM
      idmap config VEKEA : range = 2000000-2999999
      idmap config VEKEA : backend = rid
      idmap config * : range = 10000-999999
      idmap config * : backend = tdb
      winbind use default domain = no
      winbind refresh tickets = yes
      winbind offline logon = yes
      winbind enum groups = no
      winbind enum users = no
      
      [itshare]
      comment = itshare
              path = /home/itshare
              read only = no
              force group = "vekea\Domain Users"
              directory mode = 0770
              force directory mode = 0770
              create mode = 0750
              force create mode = 0750
    3. 验证 /etc/samba/smb.conf 文件

      bash
      testparm
    4. 启动和检查相关服务

      bash
      systemctl start firewalld.service
      systemctl status winbind
      systemctl restart smb
      systemctl enable --now smb
    5. 使用 wbinfo 工具

      • 列出域用户

        bash
        wbinfo -u
      • 列出域用户组

        bash
        wbinfo -g
  7. 防火墙配置

    bash
    # firewall-cmd --permanent  --add-service=samba --zone=public //永久开放samba服务
    # firewall-cmd --reload  //刷新防火墙规则
    # firewall-cmd --list-services  //查看开放的服务
  8. SELinux配置

    bash
    # semanage fcontext -a -t samba_share_t /home/itshare
    # restorecon -Rv /home/itshare/
  9. 客户端测试

    bash
    \\192.168.100.254

Released under the MIT License.