其实是个小问题,我很快就解决了。但没确认真正的原因,所以还是记录下,以便于以后进一步分析验证以及回溯,结论是跟匿名访问被默认阻止有关,只是 Win 给了个错误的报错。
Windows Server可以架设NFS基于身份和基于IP的验证(不过暂时不建议使用,毕竟Windows UTF-8和nfs client的问题由来已久)
理论Linux也可以做基于Kerberos的验证(但我还没试过,不发表看法)。
说这个是因为,我猜测这个现象可能源自我在Linux上同时启用了NFS和samba,并分享了相同的文件夹,(Windows 也开启了,但是没设置NFS,不过两者是不同系统,所以也不好说)
samba systemctl status log有这个
1 | Jul 19 14:16:07 pve smbd[14765]: pam_unix(samba:session): session closed for user nobody |
现象就是Windows Client访问不会弹框要你填用户名密码,直接报错,必须去凭据管理器里添加了账号密码才能访问。
相反Linux Client会正常弹框.不过Linux弹框还会问你是否匿名访问。
很可能Windows就直接匿名访问但是被拒。但其实有些问题,大多数时候Win访问SMB是直接使用当前账号密码作为凭证,如不成功会提示你再输入用户密码。
或者可能跟SMBv2 v3有关?
不得而知
BTW,samba+NFS 无身份验证可能需要在samba里设777,不然会发生很蛋疼的问题。
例如其他NFS客户端无法访问修改samba里创建的文件。
似乎破案了,Windows 7以及Server 2016会正常弹出验证框,其他有几台Win 10是提示不安全的匿名被阻止(这个是组策略可以解决)。所以很可能是出问题的机子装有或曾经装有NFS Client(一台曾装有访问过但是后面停了NFS Client出问题,但因为是NFS,不曾保留账号密码才是,一台现装但从没访问过有问题)
另Samba也支持同名帐户同密码可以直接访问(如上面所说,Win访问SMB是直接使用当前账号密码作为凭证)
行吧,我傻逼了,提示不安全的匿名被阻止的机子,explorer直接访问就是直接报错。
所以这个应该被归类为 Windows 10 Bug 系列。以后运行东西请优先通过”运行”否则你可能无法收到正确的报错提示。