Samba 配置详解

一、简介

Samba 是一款在 Linux 系统上实现 Microsoft 网络通讯协议的软件。SMB(Server Message Block,服务器消息块)是 Microsoft 的网络文件共享协议,Samba 将 SMB 协议引入 Linux,实现了跨平台文件和打印共享。后来,微软将 SMB 改名为 CIFS(Common Internet File System,公共 Internet 文件系统),并增加了许多新功能,使 Samba 的功能更加强大。

Samba 的核心功能是实现 跨平台文件共享和打印共享

  • 可以在 Linux 与 Windows 系统之间共享文件
  • 可以在 Linux 与 Linux 系统之间共享资源

虽然 NFS(网络文件系统)在 Linux 内部共享中更为高效,但 Samba 更常用于 Linux 与 Windows 系统间的数据共享。


二、安装 Samba 服务

1. 安装 Samba

在可以联网的 Linux 系统上,可以使用 yum 安装:

ssh 复制代码
yum install samba samba-client samba-swat

如果无法联网,可挂载系统光盘进行安装。安装过程中,依赖包(如 samba-commonsamba-winbind-clientslibsmbclient)会自动安装。


2. 查看安装情况

安装完成后,可查看已安装的包及版本:

ssh 复制代码
rpm -qa | grep samba

各包作用说明:

软件包 功能说明
samba-common-3.5.10-125.el6.x86_64 提供 Samba 配置文件及语法检查工具 testparm
samba-client-3.5.10-125.el6.x86_64 客户端工具,支持 Linux 主机作为 Samba 客户端
samba-swat-3.5.10-125.el6.x86_64 基于 HTTPS 的 Samba Web 配置界面
samba-3.5.10-125.el6.x86_64 服务器端软件,提供守护程序、日志轮替及开机默认配置

安装完成后,会生成配置文件目录 /etc/samba,以及可执行工具。

其中,核心配置文件为:

bash 复制代码
/etc/samba/smb.conf   # Samba 核心配置
/etc/init.d/smb       # Samba 启动/关闭脚本

3. 启动 Samba 服务

启动、停止或重启 Samba 服务:

arduino 复制代码
service smb start
service smb stop
service smb restart

查看 Samba 服务状态:

lua 复制代码
service smb status

设置开机自启动(3、5 级别):

csharp 复制代码
chkconfig --level 35 smb on

4. 配置共享目录

编辑 /etc/samba/smb.conf 文件,添加共享目录示例:

ini 复制代码
[demo]
    comment = demo
    path = /usr/local/demo
    read only = No
    guest ok = Yes

read only = No 表示可写
guest ok = Yes 表示允许匿名访问


5. 添加 Samba 用户

Samba 使用独立用户管理,需要将 Linux 用户添加到 Samba:

css 复制代码
smbpasswd -a root
  • 设置密码后,该用户即可访问 Samba 共享目录

6. 常见问题排查

如果 Windows 登录 Samba 服务器后无法访问共享目录,可检查以下几项:

  1. 防火墙设置

    • 确保 Linux 防火墙已关闭或已开放 Samba 端口(通常为 137/138/139/445)
  2. Samba 配置文件

    • 检查 /etc/samba/smb.conf 是否正确配置共享目录及权限
  3. SELinux 设置

    • 默认情况下,SELinux 禁止网络对 Samba 共享目录的写操作

    • 临时关闭:

      复制代码
      setenforce 0
    • 设置为 enforcing 模式:

      复制代码
      setenforce 1
    • 若要彻底禁用 SELinux,可修改 /etc/selinux/config/etc/sysconfig/selinux

      ini 复制代码
      SELINUX=disabled
  4. 检查 SELinux 状态

bash 复制代码
/usr/bin/sestatus -v

七、小结

通过上述步骤,你可以在 Linux 系统上安装并配置 Samba,实现 Linux 与 Windows 之间的文件共享

关键点总结:

  • 核心配置文件:/etc/samba/smb.conf
  • Samba 用户独立管理,需要使用 smbpasswd 添加
  • 后续访问权限问题,多数与防火墙或 SELinux 设置相关

Samba 是企业级环境中跨平台共享文件的重要工具,掌握基本安装与配置,对系统管理非常有帮助。

相关推荐
沐泽__15 分钟前
Flask简介
后端·python·flask
半聋半瞎23 分钟前
Flowable快速入门(Spring Boot整合版)
java·spring boot·后端·flowable
毕设源码-邱学长39 分钟前
【开题答辩全过程】以 基于SpringBoot的理工学院学术档案管理系统为例,包含答辩的问题和答案
java·spring boot·后端
修己xj1 小时前
SpringBoot解析.mdb文件实战指南
java·spring boot·后端
lpfasd1231 小时前
Spring Boot 定时任务详解(从入门到实战)
spring boot·后端·python
moxiaoran57531 小时前
Go语言的文件操作
开发语言·后端·golang
赴前尘1 小时前
记一次golang进程执行卡住的问题排查
开发语言·后端·golang
码农小卡拉2 小时前
Prometheus 监控 SpringBoot 应用完整教程
spring boot·后端·grafana·prometheus
计算机毕设VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue球鞋购物系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
苏渡苇2 小时前
用 Spring Boot 项目给工厂装“遥控器”:一行 API 控制现场设备!
java·人工智能·spring boot·后端·网络协议·边缘计算