一、简介
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 服务器后无法访问共享目录,可检查以下几项:
-
防火墙设置
- 确保 Linux 防火墙已关闭或已开放 Samba 端口(通常为 137/138/139/445)
-
Samba 配置文件
- 检查
/etc/samba/smb.conf是否正确配置共享目录及权限
- 检查
-
SELinux 设置
-
默认情况下,SELinux 禁止网络对 Samba 共享目录的写操作
-
临时关闭:
setenforce 0 -
设置为 enforcing 模式:
setenforce 1 -
若要彻底禁用 SELinux,可修改
/etc/selinux/config或/etc/sysconfig/selinux:iniSELINUX=disabled
-
-
检查 SELinux 状态:
bash
/usr/bin/sestatus -v
七、小结
通过上述步骤,你可以在 Linux 系统上安装并配置 Samba,实现 Linux 与 Windows 之间的文件共享。
关键点总结:
- 核心配置文件:
/etc/samba/smb.conf - Samba 用户独立管理,需要使用
smbpasswd添加 - 后续访问权限问题,多数与防火墙或 SELinux 设置相关
Samba 是企业级环境中跨平台共享文件的重要工具,掌握基本安装与配置,对系统管理非常有帮助。