samba-01 部署samba服务

  • 规划如下
    • 新建两个系统用户faka、maka,均设置不能登录服务器
    • samba用户faka可以看全部共享目录、samba用户maka只能看公共共享目录
    • 目录结构
    samba
    ├── conf.d
    │   ├── faka.smb.conf
    │   └── maka.smb.conf
    ├── lmhosts
    ├── smb.conf
    ├── smb.conf.example
    └── smbusers
    

1 快速安装

  • 操作如下
    • 关闭防火墙(或者开放对应端口)
    # 防火墙
    systemctl stop firewalld  && systemctl disable firewalld
    # iptables -F
    
    # 关闭 selinux
    # ** 临时关闭
    setenforce 0
    # ** 永久关闭
    vi /etc/sysconfig/selinux
    SELINUX=disabled
    
    • 使用yum安装以下服务
    # 安装
    yum install samba -y
    # 查看
    [root@hukanfa /]# rpm -qa |grep ^samba
    samba-4.10.16-25.el7_9.x86_64
    samba-common-4.10.16-25.el7_9.noarch
    samba-client-libs-4.10.16-25.el7_9.x86_64
    samba-common-tools-4.10.16-25.el7_9.x86_64
    samba-common-libs-4.10.16-25.el7_9.x86_64
    samba-libs-4.10.16-25.el7_9.x86_64
    

2 配置调整

  • 操作步骤如下
    • 主配置文件 sam.conf
    # 全局配置区
    [global]
      # 工作组名称:window网络发现显示的组名称
      workgroup = QLCHAT_SAMBA_SHARE
    username map = /etc/samba/smbusers
      include = /etc/samba/conf.d/%U.smb.conf
      include = /etc/samba/conf.d/%G.smb.conf
      # 日志路径
      log file = /var/log/samba/log.%m
      # 日志大小KB
      max log size = 50
      # 安全级别:使用系统用户,samba密码登录
      security = user
      # 账号后端存储类型
      passdb backend = tdbsam
    
    • 子配置文件 conf.d/faka.smb.conf
    [共享文件夹]
      comment = share one
      path = /home/virtual/data/one/共享文件夹
      writable = yes
      guest ok = no
      valid users = faka
    
    [共享文件夹2]
      comment = share two
      path = /home/virtual/data/two/共享文件夹2
      writable = yes
      guest ok = no
      valid users = faka
    
    [共享文件夹3]
      comment = share three
      path = /home/virtual/data/three/共享文件夹3
      writable = yes
      guest ok = no
      valid users = faka
    
    [base1]
      comment = base one
      path = /home/virtual/data/one/base
      writable = yes
      guest ok = no
      valid users = faka
    
    [base2]
      comment = base two
      path = /home/virtual/data/two/base
      writable = yes
      guest ok = no
      valid users = faka
    
    • 子配置文件 conf.d/maka.smb.conf
    [共享文件夹]
      comment = share one
      path = /home/virtual/data/one/共享文件夹
      writable = yes
      guest ok = no
      valid users = faka
    
    [共享文件夹2]
      comment = share two
      path = /home/virtual/data/two/共享文件夹2
      writable = yes
      guest ok = no
      valid users = faka
    
    [共享文件夹3]
      comment = share three
      path = /home/virtual/data/three/共享文件夹3
      writable = yes
      guest ok = no
      valid users = faka
    
    • 校验配置文件是否正确
    $ testparm
    Load smb config files from /etc/samba/smb.conf
    Loaded services file OK.
    Server role: ROLE_STANDALONE
    
    Press enter to see a dump of your service definitions
    

3 用户配置

  • 操作如下
    • 创建系统用户
    # 共享用户
    useradd -d /home/maka -s /sbin/nologin maka
    # 共享 + base
    useradd -d /home/faka -s /sbin/nologin faka
    # 共享 + 投放3
    useradd -d /home/baka  -s /sbin/nologin baka
    
    • 创建samba用户,passdb backend = tdbsam 用以下方式创建samba用户
    # tdbsam 方式将生成数据库文件passdb.tdb,默认在/var/lib/samba/private目录下
    # 创建samba用户并设置密码
    pdbedit –a -u maka  # V43kH5uR
    pdbedit –a -u faka  # zwlp3D6N
    pdbedit –a -u baka # ykTF4xdw
    # 删除Samba账户
    pdbedit –x username
    # 列出Samba用户列表,读取passdb.tdb数据库文
    pdbedit –L
    # 列出Samba用户列表的详细信息
    pdbedit –Lv
    # 暂停该Samba用户的账号
    pdbedit –c "[D]" –u username
    # 恢复该Samba用户的账号
    pdbedit –c "[]" –u username
    
    • 创建用户映射文件
    # /etc/samba
    $ vim smbusers
    kafa = share
    faka = super
    

4 启动服务

  • 操作如下
    • 启动
    systemctl start smb
    
    • 开机自启
    systemctl enable smb
    
    • 连接
    # window上操作,输入以上账号密码
    \\172.16.32.7
    

    image-20231116182938504

5 windows端切换账号

  • 操作如下
    • cmd 进入命令界面,输入
    ### 方法一
    net use \\samba服务器的IP /del
    
    ### 方法二
    # 列出存储的凭证
    cmdkey /list
    # 找到samba服务的凭证目标名称删除即可
    cmdkey /delete:目标名
    
    ### 方法三
    # 如果以上方法更改后还没有生效,可以重启以下服务
    net stop LanmanWorkstation
    net start LanmanWorkstation
    # 还不行就重启下电脑,重新连接共享