linux网络文件共享服务 - Samba详解
2026/8/4 20:13:17 网站建设 项目流程

目录

  • 一、samba简介
  • 二、Samba组成
  • 三、服务端smb.conf配置说明
  • 四、搭建samba共享服务
    • 1、关闭防火墙,关闭selunix
    • 2、安装 Samba:
    • 3、创建 Samba 用户:
    • 4、创建共享目录:
    • 5、启动 Samba 服务:
    • 6、添加防火墙规则:

一、samba简介

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

使用samba和windows共享文件时候,请确保windows的NetBIOS(就是网上邻居功能)开启了。

二、Samba组成

一个samba服务器实际上包含了两个服务器程序:smbd和nmbd。

Smbd是samba的核心。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制,只有smb服务启动,才能实现文件的共享。【TCP445

Nmbd实现了“Network Brower”(网络浏览服务器)的功能,实现NETBIOS(本地名称解析)功能【UDP137/138TCP139】,如果该服务没有启动,则客户端不能通过Linux系统共享的工作组名称访问共享文件,而只能通过IP地址来访问共享的文件。

[root@sftp-paas samba]# netstat -tnlp |grep mbtcp 0 0 0.0.0.0:139 0.0.0.0:*LISTEN 10764/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:*LISTEN 10764/smbd tcp6 0 0 :::139 :::*LISTEN 10764/smbd tcp6 0 0 :::445 :::*LISTEN 10764/smbd

Samba还包含了一些实用工具。Smbclient是一个SMB客户工具,有shell-based用户界面并同FTP有些类似。应用它可以复制其它的SMB服务器资源,还可以访问其它SMB服务器提供的打印机资源。

三、服务端smb.conf配置说明

[root@hejie ~]# cat /etc/samba/smb.conf[global]//全局参数 workgroup = SAMBA//工作组名称 非常重要 security = user//安全验证方式,总共四种//share:无需验证身份,简单方便,安全性差//user:需要验证用户密码才可以访问,安全性高//server:需要通过三方服务器验证账号密码,(集中管理账户)//domain:使用域控制器进行身份验证 passdb backend = tdbsam//定义用户后台的类型,共有三种//smbpasswd:为系统用户设置Samba服务程序的密码//tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户//ldapsam:基于LDAP服务进行账户验证 printing = cups//设置Samba共享打印机的类型 printcap name = cups//设置共享打印机的配置文件 load printers = yes//设置在Samba服务启动时是否共享打印机设备 cups options = raw//打印机的选项[homes]//共享参数 comment = Home Directories//描述信息 valid users =%S,%D%w%S//允许访问该共享的用户 browseable = No//指定共享信息是否可见 read only = No inherit acls = Yes[printers]comment = All Printers//任意字符串 path =/var/tmp//共享目录路径 printable = Yes create mask = 0600 browseable = No//指定该共享是否可以浏览[print$]comment = Printer Drivers path =/var/lib/samba/driverswritelist = root//允许写入该共享的用户 create mask = 0664 directory mask = 0775

四、搭建samba共享服务

1、关闭防火墙,关闭selunix

[root@hejie ~]# setenforce 0[root@hejie ~]# systemctl stop firewalld

2、安装 Samba:

  • 软件安装
sudo yum install samba-y
  • 编辑 Samba 配置文件:
    使用文本编辑器打开 Samba 配置文件 /etc/samba/smb.conf:
sudo vim/etc/samba/smb.conf#添加共享定义:在文件的末尾添加共享定义。以下是一个示例共享定义的模板:[share]comment = Shared Folder path =/path/to/shared/folder browseable = yes read only = no valid users = username
share 是共享的名称,您可以根据自己的需求进行更改。 comment 是对共享的描述,可以根据需要进行修改。 path 是要共享的文件夹的路径,请将 /path/to/shared/folder 替换为实际的文件夹路径。 browseable 设置为 "yes" 可以在网络上浏览该共享文件夹。 read only 设置为 "no" 允许用户对共享文件夹进行读写操作。 valid users 指定允许访问该共享的用户名,多个用户可以用逗号分隔。 生产环境示例: [lansensddi] comment = Share Files path = /home/sftp/lansen/sddi valid users = lansensddi public = No writable = Yes browseable = Yes

保存并关闭文件:在完成编辑后,保存并关闭文件。

3、创建 Samba 用户:

为了允许用户访问 Samba 共享,需要创建相应的 Samba 用户。使用以下命令创建一个新的 Samba 用户:

sudo useradd-s/sbin/nologin-M username sudo smbpasswd-a username

将 “username” 替换为要创建的 Samba 用户的实际用户名,并设置相应的密码。

4、创建共享目录:

mkdir-p/home/sftp/lansen/sddi

5、启动 Samba 服务:

启动 Samba 服务以使配置生效。使用以下命令启动 Samba 服务:

sudo systemctlstartsmb

6、添加防火墙规则:

如果 CentOS 7 上正在运行防火墙(如 firewalld),请确保允许 Samba 服务通过防火墙。使用以下命令添加相应的防火墙规则:

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

至此,您已成功在 CentOS 7 上配置了 Samba 共享文件夹。其他计算机上的用户可以通过网络浏览并访问共享的文件夹。请确保在实际的共享路径上设置适当的权限,以便允许 Samba 用户进行读写操作。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询