所有文章阅读量
UP | HOME

samba-安装与配置详细教程

1. 简介

Samba 是实现 Linux/Windows 跨平台文件共享的核心工具。本教程涵盖以下内容:

  1. 安装 Samba 服务
  2. 配置共享目录
  3. 用户权限管理
  4. 防火墙设置
  5. 客户端连接测试

2. 1:安装 Samba

2.1. 更新软件源

sudo apt update

2.2. 安装软件包

$sudo apt install samba samba-common smbclient

3. 2:配置软件

3.1. 备份原始配置文件

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

3.2. 编辑配置文件

sudo nano /etc/samba/smb.conf

3.3. 示例配置(添加到文件末尾)

[myshare]
   comment = My Shared Folder
   path = /srv/samba/share
   browseable = yes
   # 关闭只读(等同于 writable = yes)
   read only = no
   # 允许写入
   writable = yes          
   # 新建文件权限
   create mask = 0664
   # 允许访问的用户/@组(需存在)
   valid users = pengshaoshare pengshao   
   write list = pengshaoshare pengshao
   # 新建目录权限
   create mask = 0775    
   directory mask = 0775

4. 3:创建共享目录与用户

4.1. 创建共享目录

1: sudo mkdir -p /srv/samba/share
2: sudo chmod 2775 /srv/samba/share
3: sudo chown nobody:nogroup /srv/samba/share

4.2. 添加系统用户(若不存在)

sudo useradd -M -s /usr/sbin/nologin sambauser

4.3. 设置 Samba 密码

sudo smbpasswd -a sambauser

5. 4:重启服务与防火墙

5.1. 重启 Samba 服务

sudo systemctl restart smbd.service nmbd.service

5.2. 设置开机自启

 1: #设置开机自启
 2: $sudo systemctl enable smbd.service 
 3: $sudo systemctl enable  nmbd.service
 4: #停止开机自启动
 5: $sudo systemctl disable smbd.service
 6: $sudo systemctl disable nmbd.service
 7: #当前启动
 8: $sudo systemctl start smbd.service
 9: $sudo systemctl start nmbd.service
10: #当前停止
11: $sudo systemctl stop smbd.service
12: $sudo systemctl stop nmbd.service
13: #当前重启
14: $sudo systemctl restart smbd.service
15: $sudo systemctl restart nmbd.service
16: #列出所有系统服务单元文件及其当前的启用状态要查看开机启动的服务
17: #可结合grep过滤出已启用(enabled)的服务
18: $systemctl list-unit-files | grep enabled
19: #若要专门查看与 Samba 相关的开机启动服务,可进一步筛选:
20: $systemctl list-unit-files | grep enabled | grep samba
21: #如果你只想确认某个特定服务(如 Samba 的 smbd 和 nmbd 服务)是否开机启动,可以使用以下命令
22: $systemctl is-enabled smbd.service
23: $systemctl is-enabled nmbd.service
24: #查看当前信息服务状态
25: $systemctl status smbd.service
26: $systemctl status nmbd.service
27: $systemctl status smbd.service nmbd.service
28: 
29: 

5.3. 开放防火墙(若使用 UFW)

sudo ufw allow samba

6. 5:客户端连接测试

6.1. Linux 客户端

smbclient //server_ip/myshare -U sambauser

6.2. Windows 客户端

  1. 文件资源管理器地址栏输入: \\server_ip\myshare
  2. 使用用户名 sambauser 和设置的密码登录

6.3. iphone&ipad

  1. 在 iPad 上添加文件共享 打开 “文件” 应用:在主屏幕上找到并点击 “文件” 图标。 点击 “浏览” 标签:位于屏幕底部。 点击右上角 “…”:然后选择 “连接服务器”, 输入服务器地址 Linux 服务器的 IP 地址 格式为 smb://xxx.xxx.xxx.xxx 点击 “连接”。
  2. 选择登录方式 注册用户:输入在 Linux 系统中为 Samba 配置的用户名和密码,然后点击 “连接”。 客人:若 Samba 共享允许匿名访问,可选择 “客人”,然后点击 “连接”。

7. 高级配置

7.1. 匿名共享配置

[public]
   path = /srv/samba/public
   guest ok = yes
   read only = no
   create mask = 0777

7.2. 多用户权限管理

[project]
   valid users = @smbgroup
   write list = manager
   read list = staff

需创建用户组:

sudo groupadd smbgroup
sudo usermod -aG smbgroup manager
sudo usermod -aG smbgroup staff

8. 故障排查

8.1. 检查服务状态

sudo systemctl status smbd.service

8.2. 查看日志文件

tail -f /var/log/samba/log.smbd

8.3. 测试配置文件

testparm

9. 注意事项

  1. 共享路径权限需与 Samba 配置匹配
  2. 每次修改配置后需重启服务
  3. 建议禁用 root 用户访问
  4. 复杂网络环境需检查 NetBIOS 设置

作者: pengshao

Created: 2025-02-17 Mon 23:20

Validate