Ubuntu 22.04下Samba连接报NT_STATUS_LOGON_FAILURE故障求助
嘿,我来帮你排查这个Samba登录失败的问题!先理清楚你的现状:你有一台全新的Ubuntu 22.04服务器,想用桌面端的Nautilus连接,但一直弹出用户名密码框却无法成功连接;在服务器本地执行smbclient -L localhost -U mless时,还抛出了NT_STATUS_LOGON_FAILURE的错误,而且Samba日志里完全没有相关报错信息。结合你给出的配置,我整理了几个关键排查方向:
1. 优先检查Samba用户的密码配置
Ubuntu 22.04中,系统用户和Samba用户是独立的——就算你已经有了系统用户mless,也得单独给它设置Samba登录密码,这是最容易忽略的点:
- 执行命令添加/更新Samba用户密码:
按照提示输入密码后,再重新运行sudo smbpasswd -a mlesssmbclient -L localhost -U mless试试能不能正常列出共享。
2. 核对smb.conf的关键配置细节
从你给出的testparm输出和实际smb.conf内容来看,有几个点需要确认:
- 你的实际
smb.conf里没有显示[global]段的配置,但testparm里有map to guest = Bad User和server min protocol = NT1这些设置。如果你的smb.conf里确实缺失[global]段,建议补全核心配置,或者确保testparm检测到的配置是生效的。 [homes]段的browseable = yes是没问题的,但要确保用户家目录的权限正确:执行ls -ld /home/mless,输出应该是drwx------ mless mless这样的权限(只有用户本人能读写访问),如果权限过松或过严,都可能影响Samba访问。- 另外,
server min protocol = NT1是旧版SMB1协议,Ubuntu 22.04默认推荐使用SMB2/3,不过这不是当前登录失败的直接原因,可以等登录问题解决后再考虑调整。
3. 检查PAM配置是否限制了Samba登录
你的[global]配置里开了obey pam restrictions = Yes,意味着Samba会遵循系统PAM的登录限制。可以检查/etc/pam.d/samba文件,默认应该包含以下内容:
@include common-auth @include common-account @include common-session-noninteractive
如果这个文件里有额外的限制规则,可能会导致登录失败,建议恢复默认配置后再测试。
4. 调高日志级别获取详细报错信息
你说Samba日志里没有信息,大概率是日志级别太低导致的。可以在smb.conf的[global]段添加:
log level = 3
然后重启Samba服务:
sudo systemctl restart smbd nmbd
之后再次执行报错的smbclient命令,去/var/log/samba/log.localhost(或对应客户端主机名的日志文件)里查看详细报错,这能帮你精准定位问题根源。
5. 确认用户名是否输入正确
注意到你最后提到的命令是smbclient -L localhost -U mick,但之前的问题里用的是mless——别搞混了测试的用户名,确保你输入的用户名和设置了Samba密码的用户一致。
备注:内容来源于stack exchange,提问作者mick-au

