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-common、samba-winbind-clients、libsmbclient)会自动安装。


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

相关推荐
Bazingga7 分钟前
一次线上CPU 100%的问题排查
后端
AskHarries37 分钟前
如果人生可以重新投胎一次,你有多大概率出生在富豪家庭?😂
后端
nice_lcj52038 分钟前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐1 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
Hespethorn1 小时前
112 个 Valgrind 错误,1 个根因:C++ 多线程服务的关机顺序复盘
后端·架构
小兔子1 小时前
new Date('2024-01-01') 和 new Date('2024/01/01') 差在哪
后端
Oiiouui2 小时前
linux服务器部署Logto后端与对应前端的实现
linux·服务器·前端·后端
shenlongproxy3 小时前
代理IP故障演练怎么做:注入怎么分档、恢复怎么判定
后端
知识搬运临时工3 小时前
Kafka 发 1 GiB 数据,用户态 CPU 只花 0.016 秒,总耗时反而慢了 11%
后端·kafka
wt95273 小时前
VMware 虚拟机磁盘扩容实战文档(Ubuntu 22.04 + LVM)
linux·后端