smb:server message block protocol, smb是一种客户机/服务器、请求/响应协议。通过 smb 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 smb 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。
cifs,即通用 Internet 文件系统,是Microsoft 为 Internet 提供了 SMB 的开源版本,从 Windows 95 开始,Microsoft Windows 操作系统(operating system)都包括了客户机和服务器 SMB 协议支持。现在在windows主机之间进行网络文件共享就是通过使用CIFS服务实现的。
总结:SMB又称为CIFS,是windows系统间默认使用和支持的文件共享的协议,linux可以安装smb(cifs)的client模块来访问windows的共享(通常使用mount -t cifs来挂载windows的共享),还可以在linux上安装smaba软件,启用smaba服务,这样linux系统就好像一台windows的系统,可以使用smb(cifs)协议与windows系统之间实现文件和其他资源共享等相关功能。
一、目的
1.linux访问windows共享文件
2.windows访问linux共享文件
简单描述:
1. linux访问windows要通过mount命令来把windows的共享目录挂载为linux的本地目录,Linux默认包含有对windows的smb(cifs)协议挂载支持模块,如果有的linux没有需要自己安装。
2. windows访问linux只需要在linux服务器上安装和配置samba服务,windows默认包含smb的server和client的安装,然后在windows中通过网上邻居来访问,和访问windows主机没有区别。
二、操作系统版本
1.windows机器-- windowsxp
2.linux机器-- CentOS/other linux
三、samba配置
假设我们已经安装好了samba软件包。没有可以下载rpm包安装或者通过yum安装。samba配置关键就是对/etc/samba/smb.conf 和/etc/samba/lmhost的编辑配置。samba配置根据安全方式分为4中:share方式,user方式,server方式,domain 方式。我们只配置share方式——匿名方式,不需要用户名和密码就可以访问共享资源。这种方式比较简单,不过不安全,网络上所有人都可以访问。
1)配置/etc/samba/lmhosts[基本不用修改]
内容:ip netbios
实例:127.0.0.1 localhost
2)配置文档:/etc/samba/smb.conf:
[global]
netbios=sambaserver #这个用了表示samba主机,和主机名不一样
security=share #指定这个访问方式
server string= samba server #对主机的描述
workgroup = workgroup # windows主机的所在工作组
#要share出来的文件
[test] #这个可以随便写
path=/test1
browseable=yes #能否在浏览器里面访问。可否http访问
writable=yes #是否可写
guest ok=yes # 客户访问
实例:[只保留如下,其他的都不要]
netbios name = MYLINUXSERVER
security = share
[homes]
comment = Home Directories
browseable = yes
writable = yes
guest ok = yes
3)重启网卡 service network restart
4) 防火墙处理,最简单的先暂停所有的:sudo /sbin/service iptables stop
5)重启smb:sudo /etc/init.d/smb restart
6)测试smb:testparm,输出如下:
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
params.c:Parameter() - Ignoring badly formed line in configuration file: :[printers]
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
netbios name = MYLINUXSERVER
server string = Samba Server Version %v
security = SHARE
:cups options = raw
:load printers = yes
:passdb backend = tdbsam
:workgroup = ads
[homes]
comment = Home Directories
read only = No
guest ok = Yes
:printable = yes
:writable = no
:guest ok = no
:browseable = no
:path = /var/spool/samba
:comment = All Printers
7)在windows的网上邻居中找linux的smb,例如mylinuxserver。
四、mount
linux一般带有对windows的fat32和ntfs格式访问的模块,所以只需要将windows的共享目录使用linux的mount命令挂载到linux的本地文件夹即可,然后在linux中通过对本地挂载文件夹的访问来访问windows的共享。 对ntfs共享挂载的命令一般如下:sudo mount -t cifs //remotehostname/shared /mnt/myshared -o username=XXX,password=XXX
五,可能出现问题
1.如果mount出现中文乱码,可能是挂载字符问题,可以选择不同字符挂载选项
2.如果对linux的共享出现不能写入等问题,一般为权限问题。
六,参考:
1,玩转Windows访问Linux下的共享文件 (http://os.51cto.com/art/200709/56846.htm)
2,Linux与Windows 通过samba互访共享资源 (http://school.zzit.com.cn/system/Linux/20090313/179281.html )
3,mount (http://www.cnblogs.com/itech/archive/2009/08/07/1541061.html)