使用smbClient连接Samba共享目录时遭遇NT_STATUS_ACCESS_DENIED错误
解决Samba共享连接NT_STATUS_ACCESS_DENIED错误
问题描述
执行命令sudo smbclient "\\leon-pop-os\img_mount" -U root,输入正确系统root密码后,返回错误:tree connect failed: NT_STATUS_ACCESS_DENIED。
当前Samba全局配置:
follow symlinks = yes wide links = yes unix extensions = no
共享目录img_mount配置:
[img_mount] comment = Windows Stuff path = /mnt/img_mount available = yes writeable = yes read only = no valid users = root force user = root browseable = yes guest ok = yes directory mask = 0775 wide links = yes
该目录通过命令sudo mount -o rw,loop ./Windows.img /mnt/img_mount挂载硬盘镜像,目标是让KVM虚拟机访问该共享以完成P2V迁移。
排查与解决步骤
设置Samba独立密码
Samba用户与系统用户是独立的,即使知道系统root密码,也需要单独设置Samba的root密码:sudo smbpasswd -a root执行后输入并确认密码,后续连接时使用这个密码而非系统root密码。
修正smbclient命令格式
在Shell环境中,反斜杠需要转义,正确的命令应为以下两种之一:# 转义反斜杠 sudo smbclient "\\\\leon-pop-os\\img_mount" -U root # 或使用正斜杠路径 sudo smbclient "//leon-pop-os/img_mount" -U root调整共享配置避免权限冲突
编辑Samba共享配置文件(通常为/etc/samba/smb.conf),修改[img_mount]段:[img_mount] comment = Windows Stuff path = /mnt/img_mount available = yes writeable = yes read only = no valid users = root force user = root force group = root browseable = yes guest ok = no # 关闭guest访问,避免与指定用户权限冲突 directory mask = 0775 create mask = 0775 # 补充文件权限掩码 wide links = yes重启Samba服务
修改配置后重启服务使设置生效:sudo systemctl restart smbd nmbd检查挂载目录系统权限
确认挂载点/mnt/img_mount的权限允许root读写:ls -ld /mnt/img_mount输出应包含
drwxrwxr-x或更高权限(属主/属组为root)。若挂载镜像内部文件权限受限,可尝试添加挂载参数umask=002:sudo mount -o rw,loop,umask=002 ./Windows.img /mnt/img_mount查看Samba日志定位细节
查看Samba日志获取更详细的错误原因:sudo tail -f /var/log/samba/log.smbd日志会明确指出是用户验证失败、目录权限不足还是其他配置问题。
内容的提问来源于stack exchange,提问作者Leon Mamerow
相关产品推荐
相关产品推荐

