我最近将家里的一台工作站从 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 folder
和Guest 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 上,我做了:
控制面板->管理工具->本地安全策略。
启用 - Microsoft 网络客户端:将未加密的密码发送到第三方 SMB 服务器。
当要求输入用户名中的凭据时,请输入:
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。