Linux下进行资源共享有很多种方式,Samba服务器就是最常见的一种。Samba服务器可以让Windows操作系统(Windows 2000/XP/2003等)用户访问局域网中Linux主机,就象访问网上邻居一样方便。如图1所示,图中的服务器运行Samba服务器程序,其操作系统是Linux。该服务器通过Samba可以向局域网中的其他Windows系统提供文件服务。同时,在Linux服务器上还连接了一个共享打印机,打印机也通过Samba向局域网的其他Windows用户提供打印服务。
图1 由Samba提供文件和打印服务的局域网
1、Samba工作原理
Samba的工作原理是,让Windows系列操作系统网络邻居的通讯协议——NETBIOS(NETwork Basic Input/Output System)和SMB(Server Message Block)这两个协议在TCP/IP通信协议上运行,并且使用Windows的NETBEUI协议让Linux可以在网络邻居上被Windows看到。其中最重要的就是SMB(Server Message Block)协议,在所有的诸如Windows Server 2003、Windows XP等Windows系列操作系统中广为应用。Samba就是SMB服务器在类UNIX系统上的实现,目前可以在几乎所有的UNIX变种上运行。
2、Samba服务器的功能
文件共享和打印共享是Samba最主要的功能。Samba为了方便文件共享和打印共享,还实现了相关的控制和管理功能。具体来说,Samba完成的功能有:
- 共享目录:在局域网上共享某个或某些目录,使得同一个网络内的Windows用户可以在网上邻居里访问该目录,就跟访问网上邻居里其他Windows机器一样。
- 目录权限:决定每一个目录可以由哪些人访问,具有哪些访问权限。Samba允许设置一个目录让一个人、某些人、组和所有人访问。
- 共享打印机:在局域网上共享打印机,使得局域网的其他用户可以使用Linux操作系统下的打印机。
- 打印机使用权限:决定哪些用户可以使用打印机。
安装和配置好了Samba服务器后,Linux就可以向局域网中的Windows用户提供文件和打印服务了。
3、SMB协议
在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件和打印服务系统,该系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们的Lan Manager和Windows服务器系统中,而Windows系统均包括这个协议的客户软件,因而这个协议在局域网系统中影响很大。
随着Internet的流行,Microsoft希望将这个协议扩展到Internet上,成为Internet上计算机之间相互共享数据的一种标准。它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS(Common Internet File System)。因此,为了让Windows和UNIX计算机相集成,最好的办法即是在UNIX中安装支持SMB/CIFS协议的软件,这样Windows客户就不须要更改设置,就能如同使用Windows NT服务器一样,使用UNIX计算机上的资源了。
下面介绍Samba的安装、简易配置以及启动和停止的指令
4、安装和配置
(1)安装
#yum -y install samba (Fedora,CentOS,SUSE等)
#apt-get install samba (ubuntu)
(2)增加共享文件夹
假设你要共享的文件夹为:/home/vincent/share
首先创建这个文件夹
mkdir -p /home/vincent/share
授权
chmod 777 /home/vincent/share
或者:
mkdir -m 777 -p /home/vincent/share
(3)编辑/etc/samba/smb.conf文件
vi /etc/samba/smb.conf
在文件/etc/samba/smb.conf结尾添加如下行:[share]为共享目录的名字,path为共享目录路径
[share]
comment=this is Linux share directory
path=/home/vincent/share
browseable=yes
public=yes
为了防止出现中文目录乱码的情况,在workgroup = WORKGROUP 处添加以下代码, 其中根据你的local,UTF-8 有可能需要改成 cp936。
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
(4)重启
/etc/init.d/smbd start
5、测试
可通过smbclient进行测试(安装命令apt-get install smbclient)
smbclient -L //localhost/共享目录名
6、使用
可以到windows下输入ip使用了,在文件夹处输入 "\\" + "Ubuntu机器的ip或主机名" + "\\" + "共享目录名"
详细配置可参考
http://book.51cto.com/art/201108/282442.htm