Windows下搞定samba匿名访问是件很困难的事情

Windows客户端设置

Win+S,输入 cmd.exe,以管理员身份运行命令提示符。

1
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f

Win+S,输入 启用或关闭 Windows 功能
启用 SMBv1 协议

Win+S,输入 secpol.msc,以管理员身份启动本地安全策略管理控制台。
转到 “本地策略 -> 安全选项”,将 Microsoft 网络客户端:对通信进行数字签名(如果服务器允许) 和 Microsoft 网络客户端:对通信进行数字签名(始终) 的安全设置设为 已禁用。

Windows服务端设置

在计算机管理窗口中,依次打开,计算机管理(本地)-> 本地用户和组 -> 用户, 在guest属性弹窗中取消勾选“账户已禁用”,并点击“应用”、“确定”即可。

win+R调出运行,输入“gpedit.msc”,回车。在本地组策略编辑器中,依次展开:计算机配置 -> Windows设置 -> 安全设置 -> 本地策略 -> 用户权限分配 -> 拒绝从网络访问这台计算机,右击属性,在弹出的属性中删除guest账户(假如有的话,没有就不管),点击确定。

win+R调出运行,输入“gpedit.msc”,回车。在本地组策略编辑器中,依次展开:计算机配置 -> Windows设置 -> 安全设置 -> 本地策略 -> 安全选项 -> 将“网络访问:本地帐户的共享和安全模式”,修改为“仅来宾-本地帐户以来宾身份验证”将“帐户:使用空白密码的本地帐户只允许通过控制台登录”,设置为已禁用。

在cmd窗口中输入“gpupdate /force”,回车,等待更新策略,完成。

当然肯定要在控制面板里面关闭密码共享,开启文件夹共享,如果权限里面没有GUEST的话你要添加GUEST账户。

Linux服务端设置

sudo apt install samba wsdd,然后编辑文件/etc/samba/smb.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[global]
workgroup = WORKGROUP
server string = %h server
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
write cache size = 524288
getwd cache = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
map to guest = Bad User
server role = standalone server
usershare allow guests = yes
wins support = yes
local master = yes
preferred master = yes
server min protocol = NT1
lanman auth = no
ntlm auth = yes
client lanman auth = no


[TN3399_Share]
comment = TN3399_SATA
path = /mnt/sata
writable = yes
guest only = yes
force create mode = 0777
public = yes
browseable = yes

sudo systemctl restart smbd.service && sudo systemctl enable --now wsdd