smb服务问题解析,区别红帽6和CentOS7

 

 

最近在学习smb服务,哇!简直问题多的不要不要的。因为以前是学习的红帽6的系统,现在用的是CentOs7,所以还是改不了以前的一些配置方式,造成了很多问题。快成地中海了!

我们准备环境:

系统: 服务端CentOs7、客户端CentOs7、windows10

可能大多数人的错误在客户端连接服务端的时候,拒绝连接。原因大部分出在没有关闭SELinux,和防火墙(不考虑安全性的简单访问)以及共享目录和访问的目录不一致,在这简单提一下,重要的后面详细。

1、关闭SELinux

setenforce 0

2、关闭防火墙

systemctl stop firewall.service    关闭firewall

 

上面的内容基本上在百度上都有很多(我就不在赘述他们的了),但是根本不能解决我的问题。如果能解决你的,恭喜你。不能解决请看下面。

 第一条,你可能都将上面说的问题关掉了,还是出现如图的错误信息

那么你要检查一下你的共享文件,我这里共享的是/home/share,注意细节,在你访问共享的时候,不许要再加上/home。记住这一小点,虽然小,但是可能让你一两个小时做不出来,我就是个案例。如果还是不能访问,欢迎联系我共同讨论。

第二条,当你将上面的内容做好,如果好了,恭喜你,如果不好,咱们继续

当你发现重新连接的时候还是没能成功,拒绝连接的提示,可能造成的原因,还有另外一种,iptables

这里就是CentOS7于红帽6的不同,在7里,iptables是直接禁用的,可能我以前作死实验没有重置这个防火墙,不知道你们也和我一样吗。和我一样的,来把它清除掉

iptables -F  清除iptables的配置

iptables -L  查看iptables的全部配置内容,现在应该是空的

第三条,在配置完成后,你去用windows访问的时候,是不是特别的卡。

这里其实就是一个小的原因,如果你是用的虚拟机,并且是NAT模式,只需要将网VMwareNET8中添加DNS即可,如果没有这个问题,请忽略这条。

特别提一点的是,如果你匿名连接成功,想在次用用户重新链接登录的时候,你发现还是原来的匿名连接,这个时候我们需要将windows里面的共享连接断开就行,打开windows命令行执行命令

net share    查看已有的共享连接

net use * /del  删除所有的共享连接

第四条,也是变化非常大的一条

在红帽6中,其中全局变量中security(设置访问方式)的选项有很多个,值得一提的是user和share。

share在红帽6中,表示这我们客户端可以进行匿名访问。而在CentOS7中是没有这一个选项的,其他的选项也是没有的,只有user这一个。如果你想在客户端windows上匿名访问,需要添加一行

map to guest = Bad User

这里为什么说是在windows中匿名访问,为什么不加上linux?看下面

我们先来看一下,简单的共享配置内容

可以看到,我加上了匿名用户访问的一行,但是共享的public设为no。我们验证一下这里能不能匿名访问

匿名访问时不提供用户名密码,直接回车,发现拒绝掉了

我们再来看一中情况

 

我们将全局变量中的一行注释掉,将public改为yes,我们再去验证一下

我们登录成功。

所以我的理解是,在linux中访问,public决定着是否允许匿名访问的权限,和全局变量中的map to guest没有关系。所以说,当你觉得你的全局变量已经设好了,linux客户端为什么还不能访问?这时,你一定要看看public的设置是不是yes。

有的配置中还会出现guest ok = yes/no的一行,其实是和public是同义的 。

 

这是我遇到些的问题,以及解决方法,如果能给你带来帮助,那太好了,如果还不行(毕竟是个小菜鸟写的),可以联系我,共同讨论一下。

 

posted on 2018-04-16 16:14  菜鹅小生  阅读(290)  评论(0编辑  收藏  举报

导航