samba——在windows文件资管管理器中操作linux的文件

本文讲述如何在linux平台上安装Samba服务,实现Window文件资源服务器访问文件的方案

samba简介

在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能

安装Samba

在 CentOS 上安装 Samba 可以通过以下步骤完成:

  1. 更新系统软件包:
sudo yum update
  1. 安装 Samba 软件包:
sudo yum install samba

配置Samba

  1. 创建一个smbuser用户,并根据提示为用户设置密码,该账户密码用于访问时身份认证。
useradd smb -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
# -s表示无启动的shell -d表示无工作目录
sudo smbpasswd -a smbuser
  1. 编辑 Samba 的配置文件 /etc/samba/smb.conf :
sudo vi /etc/samba/smb.conf
  1. smb.conf文件中分为全局配置与共享资源配置

全局配置

#1.全局部分参数设置:
[global]
        #与主机名相关的设置
        workgroup = czx  <==工作组名称
        netbios name = czx   <==主机名称,跟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 <==不加载打印机

共享资源配置

这个是我们的关键设置,即配置我们需要挂载出来的文件夹,可配置多个。

[temp]              <==共享资源名称
        comment = Temporary file space <==简单的解释,内容无关紧要
        path = /tmp     <==实际的共享目录
        writable = yes    <==设置为可写入
        browseable = yes   <==可以被所有用户浏览到资源名称,
        guest ok = yes    <==可以让用户随意登录
  1. 启动 Samba 服务,启动 Samba 服务并设置为开机自启。:
sudo systemctl start smb

sudo systemctl enable smb
  1. 配置防火墙规则:

如果你的 CentOS 上启用了防火墙,需要确保允许 Samba 服务的通信。可以使用以 下命令开放 Samba 的默认端口 445:

sudo firewall-cmd --add-service=samba --permanent 

sudo firewall-cmd --reload

完成配置后,可以在其他设备上访问共享文件夹,使用 Samba 用户名和密码进行身份验证。

  1. 修改配置,重新加载smb
# 修改后重新加载配置需重启smb
sudo systemctl enable smb