Samba 服务

安装

sudo yum install samba samba-client # 安装
sudo systemctl start smb.service # 启动
sudo systemctl enable smb.service # 开机启动

配置

本地配置

  1. 创建本地用户帐户

    • 临时切换到 root 账号

      su root
      
    • 添加 Linux 主机用户组

      groupadd samba
      groupadd jwc
      groupadd zsb
      
    • 添加 Linux 主机用户

      useradd -M -g samba -s /sbin/nologin smb
      useradd -M -g jwc -G samba -s /sbin/nologin cici
      useradd -M -g jwc -G samba -s /sbin/nologin vega
      useradd -M -g zsb -G samba -s /sbin/nologin lily
      useradd -M -g zsb -G samba -s /sbin/nologin lisa
      
    • 将账户添加到 Samba 数据库;密码设为 2020Netw@rk

      smbpasswd -a smb
      smbpasswd -a cici
      smbpasswd -a vega
      smbpasswd -a lily
      smbpasswd -a lisa
      
  2. 建立共享目录

    sudo mkdir -p /share/public /share/jwc /share/zsb
    
  3. 修改共享目录组权限:

    • 修改文件夹所有组

      sudo chgrp -R samba /share/
      
    • 修改文件夹权限

      sudo chmod 2775 /share/public/
      sudo chmod 2770 /share/jwc/ /share/zsb/
      

Samba 配置

  1. 备份配置文件

    cd /etc/samba/
    sudo mv smb.conf smb.conf.bak
    
  2. 新建配置文件

    • /etc/samba/ 目录下新建 smb.conf 文件内容如下:

      [global]
              workgroup = WORKGROUP
              security = user
              include = /etc/samba/%G.smb.conf
      
              passdb backend = tdbsam
      
      [public]
              comment = 公共文件夹
              path = /share/public
              public = yes
              read only = yes
      
    • /etc/samba/ 目录下新建 jwc.smb.conf 文件内容如下:

      [jwc]
            comment = 教务处
            path = /share/jwc
            browseable = yes
            vaild users = @jwc
            write list = @jwc
      
    • /etc/samba/ 目录下新建 zsb.smb.conf 文件内容如下:

      [zsb]
              comment = 招生办
              path = /share/zsb
              browseable = yes
              vaild users = @zsb
              write list = @zsb
      
  3. 重启 Samba 服务使配置生效:

    sudo systemctl restart smb.service
    

参考:

测试

  • 在用户目录下建立一个 putTest.txt 测试文件

  • 使用以下指令查看服务器资源

    sudo smbclient -U '<用户名>'%'<密码>' -L //127.0.0.1
    
  • 使用以下指令访问目录:

    sudo smbclient -U '<用户名>'%'<密码>' //127.0.0.1/'<目录>'
    
  • smb(普通用户)用户测试:

    • 只能看见 public 文件夹:

      sudo smbclient -U smb%2020Netw@rk -L //127.0.0.1
      
      [sudo] yueplus 的密码:
      
      	Sharename       Type      Comment
      	---------       ----      -------
      	public          Disk      公共文件夹
      	IPC$            IPC       IPC Service (Samba 4.10.4)
      Reconnecting with SMB1 for workgroup listing.
      
      	Server               Comment
      	---------            -------
      
      	Workgroup            Master
      	---------            -------
      
    • 测试上传文件:

      连接 public 文件夹:

      sudo smbclient -U smb%2020Netw@rk //127.0.0.1/public
      

      试图上传文件(没有权限所以上传失败,测试成功):

      smb: \> put putTest.txt 
      NT_STATUS_ACCESS_DENIED opening remote file \putTest.txt
      
  • cicijwc 组)用户测试:

    • 能看见 publicjwc 文件夹:

      sudo smbclient -U cici%2020Netw@rk -L //127.0.0.1
      
      	Sharename       Type      Comment
       	---------       ----      -------
       	public          Disk      公共文件夹
       	IPC$            IPC       IPC Service (Samba 4.10.4)
       	jwc             Disk      教务处
       Reconnecting with SMB1 for workgroup listing.
       
       	Server               Comment
       	---------            -------
       
       	Workgroup            Master
       	---------            -------
      
    • 测试上传文件:

      连接 jwc 文件夹:

      sudo smbclient -U cici%2020Netw@rk //127.0.0.1/jwc
      

      上传文件测试:

      smb: \> put putTest.txt 
      putting file putTest.txt as \putTest.txt (0.0 kb/s) (average 0.0 kb/s)
      

      使用 ls 指令查看当前目录文件:

      smb: \> ls
        .                                   D        0  Wed Sep  2 19:41:56 2020
        ..                                  D        0  Sun Aug 30 16:22:03 2020
        putTest.txt                         A        0  Wed Sep  2 19:41:56 2020
      
      		52403200 blocks of size 1024. 48121024 blocks available
      
  • 使用 lilylisa 重复以上测试(测试 zsb 组)