luliang@luliang:~$ sudo cat /etc/samba/smb.conf | grep -A 10 "共享文件夹" [共享文件夹] path = /home/luliang/shared browseable = yes read only = no guest ok = yes
luliang@luliang:~$
您的Samba配置基本正确,但缺少关键的权限映射参数,这会导致访问时权限验证失败。请按以下步骤修复:
1. 修改Samba配置,添加权限映射
BASH
# 备份原配置
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
# 编辑配置文件
sudo nano /etc/samba/smb.conf
在 [共享文件夹] 部分添加以下参数:
INI
[共享文件夹]
path = /home/luliang/shared
browseable = yes
read only = no
guest ok = yes
# 添加以下关键参数
create mask = 0777
directory mask = 0777
force user = luliang
force group = luliang
参数说明:
create mask = 0777:新创建的文件权限为777(所有用户可读可写可执行)directory mask = 0777:新创建的目录权限为777force user = luliang:强制所有访问者以luliang用户身份操作文件force group = luliang:强制所有访问者以luliang组身份操作文件
2. 检查并设置文件夹权限
BASH
# 确保共享文件夹存在
mkdir -p /home/luliang/shared
# 设置文件夹权限(递归设置所有内容)
sudo chmod -R 777 /home/luliang/shared
sudo chown -R luliang:luliang /home/luliang/shared
# 验证权限
ls -ld /home/luliang/shared
# 应该显示:drwxrwxrwx (权限为777)
3. 添加Samba用户(即使允许访客也建议添加)
BASH
# 为luliang用户设置Samba密码
sudo smbpasswd -a luliang
# 系统会提示输入密码,输入后确认
# 启用该用户
sudo smbpasswd -e luliang
4. 重启Samba服务并测试
BASH
# 重启服务使配置生效
sudo systemctl restart smbd
sudo systemctl restart nmbd
# 测试本地访问
smbclient -L localhost -U luliang
# 输入刚才设置的Samba密码
# 测试共享文件夹访问
smbclient //localhost/共享文件夹 -U luliang
5. 在Windows端重新连接
方法A:使用文件资源管理器
- 按
Win + R,输入:\\172.28.140.244 - 或直接输入:
\\172.28.140.244\共享文件夹 - 如果提示输入凭据:
- 用户名:
luliang - 密码:刚才设置的Samba密码
- 用户名:
方法B:如果仍提示无权限,在Windows中运行:
POWERSHELL
# 清除旧的网络凭据
net use * /delete /y
# 重新连接
net use \\172.28.140.244\共享文件夹 /user:luliang
# 输入Samba密码
6. 快速诊断命令
运行以下命令检查所有配置:
BASH
echo "=== 诊断信息 ==="
echo "1. 文件夹权限: $(stat -c '%A %U:%G' /home/luliang/shared)"
echo "2. Samba配置:"
sudo testparm -s | grep -A 5 "共享文件夹"
echo "3. 服务状态:"
systemctl status smbd --no-pager | grep Active
echo "4. 监听端口:"
sudo ss -tlnp | grep -E ':445|:139'
7. 如果仍然不行,尝试简化配置
如果上述步骤后仍有问题,使用这个最小化配置:
BASH
sudo tee /etc/samba/smb.conf > /dev/null << 'EOF'
[global]
workgroup = WORKGROUP
server string = Samba Server
security = user
map to guest = Bad User
[共享文件夹]
path = /home/luliang/shared
browseable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
force user = luliang
EOF
sudo systemctl restart smbd
关键检查点总结
- ✅ 配置文件:已添加
force user和权限掩码 - ✅ 文件夹权限:设置为
777(drwxrwxrwx) - ✅ Samba用户:已添加
luliang到Samba数据库 - ✅ 服务状态:smbd 服务正在运行
- ✅ Windows设置:可能需要启用"不安全的来宾登录"
完成以上步骤后,应该可以正常访问共享文件夹。如果还有问题,请提供 sudo testparm -s 的输出结果。