Windows 10 拒绝访问 Samba 共享

Windows 10 拒绝访问 Samba 共享

Samba 版本:版本 4.1.17-Ubuntu

Ubuntu 15.10

在 Windows 中访问 Samba 共享时,我可以看到该共享,但每当我尝试访问它时 - 输入与创建的 Samba 用户相同的用户名和密码sudo smbpasswd -a benjamin(与系统用户相同),我只会得到“访问被拒绝”。以下是我的 smb 设置

[global]
server string = %h server (Samba, Ubuntu)
#encrypt passwords = No
map to guest = Bad User
obey pam restrictions = Yes
passdb backend = tdbsam
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d

wins support = yes

name resolve order = wins lmhosts host bcast


[TVShare]
path = /media/MEDIA2/TV
available = yes
valid users = benjamin
read only = no
browsable = yes
public = yes
writable = no

在哪里ls -dl /media/MEDIA2/TV/

drwxrwxr-x 40 benjamin benjamin 4096 Sep  5 16:18 /media/MEDIA2/TV/

样本日志:

[2015/12/20 12:52:02,  2] ../source3/lib/tallocmsg.c:124(register_msg_pool_usage)
  Registered MSG_REQ_POOL_USAGE
[2015/12/20 12:52:02,  2] ../source3/lib/dmallocmsg.c:78(register_dmalloc_msgs)
  Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
[2015/12/20 12:52:02.517860,  2] ../source3/param/loadparm.c:543(max_open_files)
  rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
[2015/12/20 12:52:02.517954,  2] ../source3/param/loadparm.c:3582(do_section)
  Processing section "[TVShare]"
[2015/12/20 12:52:02.518169,  2] ../source3/lib/interface.c:341(add_interface)
  added interface eth0 ip=192.168.0.5 bcast=192.168.0.255 netmask=255.255.255.0
[2015/12/20 12:52:02.522658,  0] ../lib/util/become_daemon.c:136(daemon_ready)
  STATUS=daemon 'smbd' finished starting up and ready to serve connectionsFailed to fetch record!

答案1

访问samba共享请注意:

  1. 您必须创建一个具有相同用户名的系统用户。在这种情况下,请发出以下命令:useradd -s /sbin/nologin benjamin
  2. 如果你正在使用启用了 SELINUX 的系统(例如:CentOS),请尝试暂时禁用它,然后发出setenforce 0

编辑:由于问题仍然存在,请尝试以下操作:

  1. 也许您的 Windows 主机在用户名前添加了错误的域名。在 Windows 机器上,尝试使用localhost\benjamin用户名登录
  2. 问题pdbedit -L并检查用户是否benjamin已列出。如果已列出,请使用以下命令设置一个简单的密码(您可以稍后更改)smbpasswd benjamin
  3. 如果benjamin未列出用户,请尝试重新创建并发出smbpasswd -a benjamin
  4. 如果此方法无效,请删除 passwd 文件(该文件名为passwd.tdb;作为参考,在 CentOS 6.x 系统中,该文件位于 下/var/lib/samba/private/)。然后,重新创建用户,并发出smbpasswd -a benjamin
  5. 如果仍然不起作用,请尝试使用 root 帐户发出smbpasswd -a root并检查是否可以使用 root 用户登录。注意:这只是一次尝试。完成后,您必须删除 root 的条目smbpasswd -x root
  6. 最后的办法是增加日志的详细程度,看看能否从中找到线索。对于身份验证尝试,请在 smb.conf 上编辑或添加以下行log level = 2 winbind:5,使用类似以下内容检查日志tail -f /var/log/samba/log*,然后尝试登录。

答案2

您可能需要将相关用户添加到 Linux 中的 SMB 服务中

sudo smbpasswd -a myuser

答案3

在 Windows PC 上,更改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel为 4

网络安全:LAN 管理器身份验证级别通常由组策略设置Send LM & NTLM - use NTLMv2 session security if negotiated为与旧客户端的备份兼容性。

更改LmCompatibilityLevel为 4 则设置为Send NTLMv2 response only

答案4

在 samba 服务器上的 smb.conf 的全局部分添加“ntlm auth = yes”对我来说是有效的。

来源: https://bgstack15.wordpress.com/2017/10/01/samba-and-ntlm-for-windows-clients/

相关内容