Samba是一组使用SMB(服务器消息块)协议的应用程序。通过支持这个协议,Samba允许Linux服务器和Windows系统之间的通信,使得跨平台的相互访问成为可能。Samba是在Linux和Unix上实现SMB(服务器消息块)协议的免费软件,由服务器和客户端程序组成。
Samba采用C/S模式,其工作机制是NetBIOS(Windows网络邻居的通信协议)和SMB运行在TCP/IP通信协议之上,NetBEUI协议使Windows能够浏览“网络邻居”中的Linux服务器。
设置samba服务
客户使用的系统不同也会导致测试结果不同。
Linux系统客户端:
安全性=用户或共享
共享目录可以在sm client-l//192 . 168 . 7 . 113/westos中看到,
不同之处在于,当安全性=用户
[root @ red hat samba]# SMB client//192 . 168 . 7 . 113/westos
输入root的密码:
匿名登录成功//系统提示登录samba服务成功,但访问westos的共享目录失败。匿名用户也是用户。
domain=[my domain]OS=[Unix]Server=[Samba 3 . 5 . 10-125 . el6]
树连接失败:NT_STATUS_access_DENIED
安全=份额
[root @ red hat samba]# SMB client//192 . 168 . 7 . 113/westos
输入root的密码:
domain=[my domain]OS=[Unix]Server=[Samba 3 . 5 . 10-125 . el6]
服务器没有使用用户级安全性,也没有提供密码。//不是服务的有效用户。虽然安全=共享,但需要密码登录。相当于samba服务访问,但是都没有成功。
树连接失败:NT_STATUS_WRONG_PASSWORD
win测试:
安全=份额
当我们访问samba服务时,我们直接登录,但当我们访问目录时,我们要求输入密码。
当security=user时,访问samba服务时,会开始要求输入密码,没有密码就不会访问。
没有这种感觉,linux和win的测试好像是相反的,只是颠倒了而已。
Linux系统
当Public=yes时:
安全性=用户或共享
匿名用户登录将会成功。
[root @ red hat samba]# SMB client//192 . 168 . 7 . 113/westos
输入root的密码:
匿名登录成功
domain=[my domain]OS=[Unix]Server=[Samba 3 . 5 . 10-125 . el6]
中小企业:\ ^C
[root @ red hat samba]# vim/etc/samba/SMB . conf
[root @ red hat samba]#/etc/init . d/SMB restart
正在关闭SMB服务:[正常]
正在启动SMB服务:[好]
[root @ red hat samba]# SMB client//192 . 168 . 7 . 113/westos
输入root的密码:
domain=[my domain]OS=[Unix]Server=[Samba 3 . 5 . 10-125 . el6]
服务器没有使用用户级安全性,也没有提供密码。
中小企业:\ ^C
赢得客户:
当Public=yes时:
安全=份额
匿名用户不需要密码用户名,直接登录成功,访问共享目录也不需要密码用户名。
当Public=yes时:
安全性=用户
访问samba时会直接要求输入用户名、密码,登录不成功,更别说看到共享目录了。
比较:
也就是说,当Public=yes: linux客户端可以访问共享目录,不考虑security=user ro share。与此无关。只有当client security=share时,匿名用户才有权访问共享目录。
Samba的几个主要配置文件(/etc/samba)
Smb.conf:最重要的配置文件,分为两部分:[全局]和[共享定义]。
Lmhosts:它对应于NetBIOS名称和该主机的IP。一般情况下,Samba在启动时可以捕获局域网内相关计算机的NetBIOS名称对应的IP。因此,通常不设置该配置文件。
Smbpasswd:默认情况下,该文件不存在。是Samba预置的用户密码对应表。
Samba的几个主要命令
Smbpasswd:用于设置Samba用户的帐号和密码。
Smbclient:用于查看其他Linux主机的共享。您也可以在自己的Samba主机上使用它来检查设置是否成功。
Smbmount:用于将Samba服务器共享的文档和目录挂载到它自己的Linux主机上。
Testparm:用于检查smb.conf中的错误。
smb.conf的几个常见变量
客户变量
-
%a |客户端的体系结构(例如Samba、nt、Win98或Unknown)
%I |客户端的IP地址(例如:192.168.220.100)
%m |客户端的NetBios名称
%M |客户端的DNS名称
-
用户变量
-
%g | %u的基本组
%G | %U的基本组
%H | %u的主目录
%u |当前unix用户名
%U |请求的客户端用户名(不总是由samba使用)
-
共享变量
-
%p |如果与%p不同,则自动安装程序的路径对应于共享的根目录。
%P |当前共享的根目录
%S |但是上一个共享的名称
-
服务器变量
-
当前服务器进程的%d | ID
% h | Samba服务器的DNS主机名
% l | samba服务器的netbios名称
%N |主目录服务器,从自动装载映射
%v |桑巴版本
-
其他变量
-
%R |协商的SMB协议
%T |当前日期和时间
四个安全级别
安全=共享:用户访问Samba服务器不需要提供用户名和密码,安全性能低。
Security=user:Samba服务器的默认安全级别。每个共享目录只能由特定用户访问,Samba服务器负责检查帐号和密码的正确性。
security=server:服务器的安全级别,它依赖于其他Windows NT/2000或Samba服务器来验证用户的帐户和密码。这是一种代理验证。在这种安全模式下,系统管理员可以将所有Windows用户和密码集中在一个NT系统上,并使用Windows NT进行Samba身份验证。远程服务器可以自动验证所有用户和密码。如果认证失败,Samba将使用用户级安全模式作为替代。
security=domain:域安全级别,主域控制器(PDC)用于完成认证。