无法从 Windows 8.1 访问 Samba 共享

无法从 Windows 8.1 访问 Samba 共享

我最近将家里的一台工作站从 Windows 7 升级到了 Windows 8.1。我还有另一台机器运行着 Ubuntu 13.10。

在更新到 Windows 8.1 之前,我能够访问 Ubuntu 上的共享(通过右键单击文件夹 -> 共享选项进行共享),目前家里的其他设备仍然可以访问共享(这些是另一台 Windows 7 设备、Android 设备,甚至是旧的 Windows XP 设备)。我拥有的所有其他设备仍然可以访问共享。这些共享都已配置为Allow others to create and delete files in this folderGuest access

只是在这台 Windows 8.1 机器上,虽然我可以看到共享文件夹,但尝试打开其中一个文件夹会导致 Windows 网络错误消息you do not have permissions to access...

我认为,由于这些是共享的Guest access,因此不应该有任何可能的权限妨碍,并且对于我拥有的其他设备,这似乎是正确的。

此外,共享中涉及的所有文件夹都通过 应用了权限 777。chmod对于这个问题,我还找到了 Nautilus 右键单击Create and delete files​​所有组的权限设置。

我发现有些文章讨论更新HKLM/System/Services/LanmanServer/Parameters/RequireSecuritySignature为 0(顺便说一下,已经设置为 0)。

我需要更改我的smb.conf文件,因为所有其他机器都可以很好地访问此共享,这似乎很愚蠢,尽管我发现有些机器说 Wins Support 应该是Yes,而另一些机器说应该是No。我试过了,没有任何变化。仍然出现有关安全性的相同错误消息。

有一件事我很确定,那就是 Windows 8 让我使用电子邮件地址和该地址的登录信息才能登录此系统。不过,共享再次设置为允许guest access

以下是 smb.conf 的内容,以防有帮助。

#======================= Global Settings =======================
[global]
#
    workgroup = WORKGROUP
    server string = %h server (Samba, Ubuntu)
    wins support = yes
;   wins server = w.x.y.z
    dns proxy = no
    name resolve order = wins lmhosts host bcast
###
;   interfaces = 127.0.0.0/8 eth0
;   bind interfaces only = yes
###
    log file = /var/log/samba/log.%m
    max log size = 1000
    syslog = 0
    panic action = /usr/share/samba/panic-action %d
######
    encrypt passwords = true
;    passdb backend = tdbsam
    obey pam restrictions = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    pam password change = yes
    map to guest = bad user
#########
#
;   domain logons = yes
#
;   logon path = \\%N\profiles\%U
;   logon drive = H:
;   logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
#########
;   printing = bsd
;   printcap name = /etc/printcap
;    printing = cups
;   printcap name = cups
###########
;   include = /home/samba/etc/smb.conf.%m
;   message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash
;   winbind enum groups = yes
;   winbind enum users = yes
;    usershare max shares = 100
    usershare allow guests = yes
#======================= Share Definitions =======================
;[homes]
;   comment = Home Directories
;   browseable = no
;   read only = yes
;   create mask = 0700
;   directory mask = 0700
#
;   valid users = %S
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700
[printers]
    comment = All Printers
    browseable = no
    path = /var/spool/samba
    printable = yes
;    guest ok = no
;    read only = yes
    create mask = 0700
[print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers
;    browseable = yes
;    read only = yes
;    guest ok = no
;   write list = root, @lpadmin
;[cdrom]
;   comment = Samba server's CD-ROM
;   read only = yes
;   locking = no
;   path = /cdrom
;   guest ok = yes
#    cdrom share is accesed. For this to work /etc/fstab must contain
#    an entry like this:
#
#
#
#    is mounted on /cdrom
#
;   preexec = /bin/mount /cdrom
;   postexec = /bin/umount /cdrom
[DROP2]
    path = /media/jeff/Storage/DROP
    writeable = yes
;    browseable = yes
    guest ok = yes

答案1

很明显,这是 Windows 8 操作系统客户端计算机上的本地安全策略存在问题。

在我们的企业中,我们首先将旧的 GPO(用于 Windows 7 计算机的 GPO)用于 Windows 8 计算机。这立即修复了问题,但我们的安全部门并不满意,不允许我们将其推广到所有 Windows 8 计算机,因此我们开始削减我们的策略,而对我们来说,决定性因素是以下设置:

在“控制面板”中转到“管理工具”打开“本地安全策略”,然后“本地策略”->“安全选项”

Microsoft 网络客户端:对通信进行数字签名(总是)- 设置为已禁用 Microsoft 网络客户端:对通信进行数字签名(如果服务器同意)- 设置为已启用

这为我们解决了问题,但如果它对您没有帮助,请尝试在客户端机器的“本地安全策略”中打开其他限制,并测试您与 Samba 共享的连接。

祝你好运,我希望我能帮助别人:)

答案2

这比你想象的要容易得多(或者我漏掉了什么?)。在 Windows 8.1 PC 上,我做了:

  1. 控制面板->管理工具->本地安全策略。

  2. 启用 - Microsoft 网络客户端:将未加密的密码发送到第三方 SMB 服务器。

  3. 当要求输入用户名中的凭据时,请输入:servername\userame。不要只输入用户名。

答案3

启用 SMBv2 和 SMBv3 的方法如下:

http://support.microsoft.com/kb/2696547

您需要在提升的命令提示符中运行这些命令来启用 SMBv3:

sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto

这也可能有帮助:

Set-NetConnectionProfile -interfacealias Ethernet -NetworkCategory Public
Set-NetConnectionProfile -interfacealias Ethernet -NetworkCategory Private

答案4

您无法访问您的共享,因为 Windows 8.1 共享使用SMB 3.02版本FreeNAS 尚不支持

使固定:您可以在 SMB 版本的最小值和最大值字段中编辑共享的首选项,尝试相应地选择最小版本为 SMB 2 和最大版本为 SMB 3.00。

相关内容