麒麟os共享文件夹windows访问反复弹窗或拒绝访问,本质是samba认证链断点:需先关闭图形界面“允许游客访问”,再确认smb.conf中security=user且map to guest=never,接着用smbpasswd为用户创建并启用独立密码,同步设置目录属主与权限,并放行137/udp、138/udp、139/tcp、445/tcp端口。

麒麟OS共享文件夹明明已配置Samba用户密码,但Windows客户端访问时仍反复弹窗要求输入凭据、输对也不通过,或提示“拒绝访问”“登录失败”,本质是Samba认证链存在断点——图形界面未关闭游客模式、smb.conf未启用user安全级、Samba密码未注册、或目录本地权限未同步授予该用户。
检查并关闭图形界面的游客访问开关
这是最常被忽略的第一步。只要“允许游客访问”仍被勾选,Samba会优先走guest路径,完全绕过用户名/密码验证,导致你输什么都是白搭。
在文件管理器中右键目标共享文件夹 → “属性” → 切换到“共享”选项卡 → 【务必取消勾选“允许游客访问”】 → 点击“确定” → 输入当前用户开机密码授权 → 再次点击“确定增加权限”。
这一步必须做在所有命令行配置之前,否则后续任何Samba密码设置都无效。
确认Samba全局安全模式为user级别
打开终端,执行:sudo vim /etc/samba/smb.conf。
将光标移至[global]段落内,检查是否存在以下两行:
security = user
map to guest = never
若缺失任一,手动添加;若存在但被注释(行首有#),删除#号取消注释。这两行共同作用:强制Samba拒绝一切匿名请求,只接受明确指定用户的凭证。
保存退出后,立即执行sudo systemctl restart smbd重启服务,使配置生效。
为用户创建并启用独立Samba密码
Samba密码与Linux系统登录密码完全隔离,必须用专用命令注册。
方法一:使用当前登录用户(如用户名为zhangsan)
执行sudo smbpasswd -a zhangsan,按提示连续两次输入【不少于8位、含大小写字母与数字的强密码】。
执行sudo smbpasswd -e zhangsan启用该账户,否则状态为disabled,认证始终失败。
方法二:验证是否成功录入
运行sudo pdbedit -L | grep zhangsan,输出中必须同时包含用户名和“Enabled”字样,缺一则说明密码未就绪。
同步修正共享目录的本地文件系统权限
即使Samba认证通过,Linux内核仍会校验该用户对目录的读写权限。若属主不是该用户或权限不足,访问仍被拒绝。
第一步:确认共享路径,例如/home/zhangsan/share。
第二步:将目录属主与属组设为Samba用户:sudo chown -R zhangsan:zhangsan /home/zhangsan/share。
第三步:赋予读写执行权限:sudo chmod -R 755 /home/zhangsan/share。若需支持Windows客户端新建文件,还需在smb.conf对应共享段中添加create mask = 0644和directory mask = 0755。
第四步:执行getfacl /home/zhangsan/share,确认输出中user:zhangsan:r-x及group::r-x等字段存在且非---,否则权限未真正落实。
验证端口与防火墙状态
执行sudo ufw status检查防火墙是否启用。若显示“active”,需放行Samba关键端口:
sudo ufw allow 137/udp → sudo ufw allow 138/udp → sudo ufw allow 139/tcp → sudo ufw allow 445/tcp。
最后执行sudo ufw reload重载规则。若使用其他防火墙(如firewalld),请对应开放相同端口。











