解决 NT_STATUS_LOGON_TYPE_NOT_GRANTED

解决问题:windows新建共享文件夹报错,linux访问

smbclient //192.168.x.xxx/share-Ushare-mSMB2

报错:STATUS_LOGON_TYPE_NOT_GRANTED

Windows secpol.msc 策略修改。

在 Windows,必须管理员账号操作
报错本质:安全策略阻止新建用户从网络登录,下面 4 大块按顺序改完。

一、打开本地安全策略

快捷键 Win + R,输入 secpol.msc → 回车
左侧树形菜单:安全设置 → 本地策略

二、【核心 1:用户权限分配】(必改,解决登录类型拒绝)

点开 用户权限分配,右侧找到两条策略:
1)拒绝从网络访问这台计算机
拒绝网络访问策略窗口
双击打开
列表里如果存在新建用户、Guest、Users,全部选中删除
应用 → 确定
2)从网络访问此计算机
允许网络访问添加用户
双击打开 → 点击【添加用户或组】

输入用户名:新建用户 → 点【检查名称】`(名称自动带下划线代表识别成功)`确定,把 新建用户 加入允许列表

应用 → 确定
(我本人就说这块出问题了,一定要点检查名称)

三、【核心 2:安全选项】认证兼容设置

点开 安全选项,修改 3 条关键策略:
1)网络安全:LAN 管理器身份验证级别(解决 NTLM 协商失败)
LAN管理器验证级别设置
双击打开,下拉选择:
发送 LM 和 NTLM - 使用 NTLMv2 会话安全
不要选 “仅发送 NTLMv2 拒绝 LM/NTLM”,会和 Linux cifs 协商失败
2)网络访问:本地帐户的共享和安全模型
双击 → 设置为:经典 - 对本地用户进行身份验证,不改变其本来身份
3)账户:使用空密码的本地帐户只允许进行控制台登录
双击 → 已禁用(你有密码,这条也建议关闭避免拦截)

四、额外配套账号检查(计算机管理)

此电脑右键 → 管理 → 本地用户和组 → 用户
双击新建用户用户:
取消勾选:账户已禁用
取消勾选:用户下次登录须更改密码
勾选:密码永不过期
确定保存

五、策略生效(必须执行)

管理员身份打开 CMD,执行重启 SMB 服务:
cmd

net stop server net start server

如果改完仍报错,直接重启 Windows 整机,组策略完全刷新。

六、Windows 共享文件夹双权限(容易漏掉)

找到你共享的文件夹,右键属性:
共享选项卡 → 高级共享 → 权限
添加新建用户用户,授予【完全控制】
安全选项卡(NTFS 底层权限)
添加新建用户用户,勾选:读取、写入、执行

七、防火墙与网络共享配套

控制面板 → 网络和共享中心 → 高级共享设置
专用网络:开启【文件和打印机共享】、开启【密码保护共享】
Windows 防火墙 → 允许应用通过防火墙,勾选【文件和打印机共享】(专用网络)

改完后回 Linux 验证

smbclient //192.168.x.xxx/share-Ushare-mSMB2

输入密码 xxx,出现 smb:> 即修复成功;
再执行挂载命令:

mount-tcifs-ousername="win上选择的用户名",password="win上选择的用户密码"//windows的IP地址/share /home/win/

常见踩坑说明
Windows 家庭版没有 secpol.msc:需要升级专业版,或用注册表替代策略;
改完策略不重启 Server 服务 / 电脑,策略不生效,依旧报登录拒绝;
只改 Linux 挂载参数,不处理 Windows 安全策略,STATUS_LOGON_TYPE_NOT_GRANTED 永远无法解决。