Linux Samba 共享服务配置
以 Debian/Ubuntu 系统为例。
1. 更新源安装服务
sudo apt update
sudo apt install smbd nmbd -y
sudo apt install smbclient -y # 客户端工具用于测试
2. 创建并准备共享目录
决定你要共享的文件夹,并设置好权限。这里假设共享目录为 /mnt/share。
# 创建共享目录
sudo mkdir -p /mnt/share
# 设置目录权限,确保后续的 Samba 用户有访问权限
# 例如,设置为 2775 可以确保新创建的文件继承组所有权 [citation:4]
sudo chmod -R 2775 /mnt/share
# 你可以更改目录的所有者,方便后续非 root 用户如 max 访问管理
sudo chown -R max:max /mnt/share
3. 修改 Samba 配置文件
Samba 的主要配置文件是 /etc/samba/smb.conf。在修改前,强烈建议先备份原文件。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo vi /etc/samba/smb.conf
在文件末尾,添加你的共享定义。以下是一个常见的配置示例,你可以根据需要调整参数:
[share] # 这是其他设备上看到的共享文件夹名称
comment = My Shared Folder
path = /mnt/share # 填写你实际的共享路径
browseable = yes
read only = no
guest ok = no # 不允许匿名访问,需要用户认证
valid users = @sambauser # 允许 "sambauser" 用户组的成员访问
create mask = 0775 # 新建文件的权限掩码
directory mask = 0775 # 新建文件夹的权限掩码
force user = max # (可选) 强制所有操作以指定系统用户身份进行
Note: 配置文件 [global] 段需要修改和注意的项:
workgroup = WORKGROUP # 确保工作组名称和你 Windows 的工作组名称一致
log level = 2 # 设置日志级别为 2 或 3,便于日常监控查找问题
4. 添加 Samba 用户
Samba 使用独立的用户数据库,但用户必须已经存在于系统中(/etc/passwd)。
如果还没有系统用户,可以创建一个(例如,名为 max):
sudo useradd -M -s /usr/sbin/nologin max
将该用户添加到你在配置文件中指定的用户组(例如 sambauser):
sudo groupadd sambauser
sudo usermod -aG sambauser max
将该系统用户添加到 Samba 数据库中并设置独立的 Samba 密码:
sudo smbpasswd -a max
系统会提示你输入并确认密码 。之后,可以启用该用户:
sudo smbpasswd -e max
5. 重启 Samba 服务
配置完成后,重启 Samba 守护进程使更改生效,并设置开机自启:
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
smbd 负责文件共享服务。
nmbd 负责 NetBIOS 名称解析,帮助在网络中发现你的电脑。
6. 配置防火墙(如有并启用)
如果你的 Debian 开启了防火墙(如 ufw),需要允许 Samba 服务。
sudo ufw allow samba
sudo ufw reload
7. 测试与访问
本地测试:使用 smbclient 测试连接是否成功。
smbclient -L //localhost -U max
输入密码后,应该能看到你配置的 [share] 共享 。
从 Windows 访问:在 Windows 的资源管理器地址栏输入 \\<你的Debian IP地址>\share,然后输入用户名 max 和之前设置的 Samba 密码即可访问 。
从 Linux/macOS 访问:可以通过文件管理器(如连接服务器功能,地址为 smb://<你的Debian IP地址>/share)或使用 smbclient 命令进行访问。
8. 问题排查
如出现无法访问问题,可通过日志排查问题。
sudo tail -f /var/log/samba/log.smbd
评论
其他文章