smb安装及使用

一.smb安装及配置

1.源码安装smb并使用

  • 安装Samba
1
2
#安装Samba包
yum -y install samba samba-client samba-common
  • 创建samba用户
1
2
3
4
5
6
groupadd samba
useradd samba -d /home/samba -g samba -s /sbin/nologin
touch /etc/samba/smbpasswd
smbpasswd -a samba -c /etc/samba/smb.conf

>samba   //账号:samba 密码:samba
  • 配置共享目录
1
2
3
4
mkdir -p /workspace

#设置文件夹权限,非777客户端无法写入数据
chmod -R 777 /workspace
  • 配置smb
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
vim /etc/samba/smb.conf

[global]
        workgroup = WORKGROUP
        netbios name = WINDOWS-6VQ5K0D
        server string = this is a samba server
        log file = /var/log/samba/log.%m
        max log size = 51200
        security = user
        passdb backend = tdbsam
        load printing = no

[workspace]
        comment = Workspace Home Directories
        path = /workspace
        writable = yes
        browseable = yes
        guest ok = no

#检查配置文件正确性
testparm
  • 配置文件说明
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#1.全局部分参数设置:
[global]
        #与主机名相关的设置
        workgroup = zkhouse  <==工作组名称
        netbios name = zkserver   <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
        serverstring = this is a test samba server <==说明性文字,内容无关紧要
        #与登录文件有关的设置
        log file = /var/log/samba/log.%m   <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
        max log size = 50      <==日志文件最大的大小为50Kb
        #与密码相关的设置
        security = share       <==表示不需要密码,可设置的值为share、user和server
        passdb backend = tdbsam
        #打印机加载方式
        load printer = no <==不加载打印机
-----------------------------------------------------------
#2.共享资源设置方面:将旧的注释掉,加入新的
#先取消[homes]、[printers]的项目,添加[temp]项目如下
[temp]              <==共享资源名称
        comment = Temporary file space <==简单的解释,内容无关紧要
        path = /tmp     <==实际的共享目录
        writable = yes    <==设置为可写入
        browseable = yes   <==可以被所有用户浏览到资源名称,
        guest ok = yes    <==可以让用户随意登录
  • 开启139、445端口

    SAMBA有4个端口,TCP的139,445,UDP的137,138

    1
    2
    3
    4
    
    firewall-cmd --add-port=139/tcp --permanent
    firewall-cmd --add-port=445/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --list-all
    
  • 启动服务

1
2
sudo systemctl enable smb
sudo systemctl start smb
  • windows客户端挂载
1
2
3
4
5
#映射网络驱动器
此计算机->右击->映射网络驱动器
#账号:samba 密码:samba
\\ip\目\\10.0.8.116\workspace
  • 如果无法访问共享文件夹

    • 关闭firewalld防火墙

      1
      
      systemctl stop firewalld
      
    • 关闭SELinux 或者放开SELinux权限

      1
      2
      3
      4
      5
      
      #临时关闭
      setenforce 0
      
      #或者授权smb访问权限
      /usr/sbin/setsebool -P samba_export_all_rw on
      

2.docker安装smb并使用

  • 前置准备,安装docker

  • 开启139、445端口

    SAMBA有4个端口,TCP的139,445,UDP的137,138

    1
    2
    3
    4
    
    firewall-cmd --add-port=139/tcp --permanent
    firewall-cmd --add-port=445/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --list-all
    
  • 配置共享目录

    1
    2
    3
    4
    
    mkdir -p /workspace
    
    #设置文件夹权限,非777客户端无法写入数据
    chmod -R 777 /workspace
    
  • 容器运行samba镜像

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    #官方镜像
    https://hub.docker.com/r/dperson/samba/
    # 运行
    docker run -it -p 139:139 -p 445:445  --name samba  \
     -v /workspace:/mount \
     -d dperson/samba \
     -u "root;root" \
     -s "root;/mount/;yes;no;yes;all;all;all" \
     -w "WORKGROUP" \
     -g "force user= root" \
     -g "guest account= root"
    
    #注意: -u "用户名:密码"
    
  • windows客户端挂载

    1
    2
    3
    4
    
    #映射网络驱动器
    此计算机->右击->映射网络驱动器
    \\ip\目\\10.0.8.116\workspace