原创

Samba实现文件共享

温馨提示:
本文最后更新于 2025年02月03日,已超过 74 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一. 简介

Samba 是一个开源的软件套件,实现了微软的 Server Message Block (SMB)Common Internet File System (CIFS) 协议。它允许 Linux、Unix 等非 Windows 操作系统与 Windows 系统之间进行文件和打印机共享,并支持网络浏览、身份验证等功能。Samba 不仅可以在局域网内实现文件共享,还可以通过配置实现跨网络的共享访问,是企业内部文件共享和协作的理想选择。

二. Ubuntu 24.04 安装与配置

1. 安装 Samba

首先,确保系统是最新的,然后安装 Samba 软件包:

sudo apt update
sudo apt install samba

2. 创建共享目录

接下来,创建一个用于共享的目录。我们将共享目录放在 /opt/samba/shared 下:

sudo mkdir -p /opt/samba/shared

为了确保所有用户都能访问该目录,可以设置适当的权限:

sudo chmod -R 777 /opt/samba/shared

3. 配置 Samba

编辑 Samba 的配置文件 /etc/samba/smb.conf,添加以下内容来设置共享:

sudo vim /etc/samba/smb.conf

在文件末尾添加以下内容:

[shared]
   path = /opt/samba/shared
   available = yes
   valid users = @shared
   read only = no
   browsable = yes
   writable = yes
  • path: 共享目录的路径。
  • available: 共享是否可用。
  • valid users: 允许访问共享的用户或用户组。
  • read only: 是否只读。
  • browsable: 是否在网络中可见。
  • writable: 是否可写。

4. 添加用户并设置 Samba 密码

首先,创建一个用户组和用户:

sudo groupadd shared
sudo useradd -g shared shared
sudo passwd shared

然后,将用户添加到 Samba 并设置密码:

sudo smbpasswd -a shared
sudo smbpasswd -e shared

5. 重启 Samba 服务

配置完成后,重启 Samba 服务以使更改生效:

sudo systemctl restart smbd

三. 访问 Samba 共享

在 Windows 资源管理器的地址栏中输入 Linux 主机的 IP 地址加上共享名称,例如:

\\192.168.1.100\shared

系统会提示输入用户名和密码,输入之前配置的用户名和密码即可访问共享文件夹。

四. 高级配置

1. 匿名访问

如果希望允许匿名用户访问共享,可以在 smb.conf 中添加以下配置:

[shared]
   path = /opt/samba/shared
   available = yes
   read only = no
   browsable = yes
   writable = yes
   guest ok = yes

2. 限制访问 IP

可以通过配置 Samba 来限制访问共享的 IP 地址范围。在 smb.conf 中添加以下内容:

[shared]
   path = /opt/samba/shared
   available = yes
   valid users = @shared
   read only = no
   browsable = yes
   writable = yes
   hosts allow = 192.168.1.0/24
   hosts deny = 0.0.0.0/0

3. 日志记录

为了便于排查问题,可以启用 Samba 的日志记录功能。在 smb.conf 中添加以下内容:

[global]
   log file = /var/log/samba/log.%m
   max log size = 1000

五. 常见问题排查

  1. 无法访问共享文件夹
    • 确保 Samba 服务已启动:sudo systemctl status smbd
    • 检查防火墙设置,确保 Samba 端口(默认 445)已开放。
    • 检查共享目录的权限是否正确。
  1. 用户名或密码错误
    • 确保用户已正确添加到 Samba:sudo pdbedit -L
    • 确保输入的密码与 Samba 密码一致。
  1. 共享文件夹不可写
    • 检查 smb.conf 中的 writableread only 配置。
    • 确保共享目录的权限设置为可写。

 

正文到此结束