基于linux搭建samba服务以ubuntu为例;
1、安装
sudo apt-get install samba
2、设置共享目录
<1>打开samba配置文件(不同的linux发行版本,文件路径可能不同)
sudo vim /etc/samba/smb.conf
<2>添加如下内容
[节点名] #自定义名称,客户端访问时可以看到
comment = <标签描述> #自定义字符串
path = /home/*** #设置共享目录,务必确保此目录存在
writable = yes #赋予可写权限,也可以给予只读权限read only = yes
browseable = yes #赋予可浏览权限
valid users = <用户名>,root #可访问的用户
available = yes
guest ok = yes
<3>保存退出(修改配置文件前最好备份,方便程序出现异常时还原)
注:共享目录(包括上层路径)的实际权限不得低于此处配置的权限,因为实际权限的优先级更高
3、添加访问用户(必须是linux已有的用户)
sudo smbpasswd -a <用户名>
设置密码(此密码为访问共享目录时所需的密码,不是linux登录密码)
4、重启服务,使配置生效
sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart
5、客户端访问共享目录
<1>直接输入\\服务器IP;也可以通过映射网络驱动器的方式挂载;
如果客户端是Linux系统,则直接输入smb://服务器IP
<2>选择在第2步设置的共享节点;也可以在上一步直接输入\\服务器IP\节点名
<3>输入在第3步设置的用户名和密码
samba访问异常
1、提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接***”
解决方法是清空网络连接:
打开cmd,执行 net use * /del /y
2、提示“***无法访问。您可能没有权限使用网络资源***”
出现这种问题的原因很多,首先要确保samba配置的用户有访问权限,
具体原因可在/var/log/samba/目录下查看samba log。
例如我曾经遇到类似的问题,log显示如下
[2019/11/16 11:59:15.177294, 0] ../source3/lib/popt_common.c:68(popt_s3_talloc_log_fn)
talloc: access after free error - first free may be at ../source3/smbd/open.c:4026
[2019/11/16 11:59:15.177343, 0] ../source3/lib/popt_common.c:68(popt_s3_talloc_log_fn)
Bad talloc magic value - access after free
百度一下发现是samba版本和libtalloc2版本不一致导致的,解决办法如下:
(1)重装libtalloc2
sudo apt-get install libtalloc2 --reinstall
我尝试了一下,发现无法安装,所以先卸载了libtalloc2然后采用了如下的第2种方法
(2)修复samba依赖关系
sudo apt-get -f install samba
3、确保windows启用了SMB共享
打开控制面板--程序和功能--启用或关闭Windows功能,勾选SMB相关服务并重启(已经勾选的忽略此步)
4、如果是win10系统访问samba,可能还会遇到“用户名或密码不正确”的提示,但实际上输入的用户名和密码是正确的,这是因为win10的安全策略导致的
解决方法
win+R输入secpol.msc 打开本地安全策略,按照如下将安全选项中的LAN管理器身份验证级别设置为仅发送NTLMv2响应