Linux与Windows共享资源samba+mount


 

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 # 客户访问

 

实例:[只保留如下,其他的都不要] 

server string = Samba Server Version %v
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)