Linux下进行资源共享有很多种方式,Samba服务器就是最常见的一种。Samba服务器可以让Windows操作系统(Windows 2000/XP/2003等)用户访问局域网中Linux主机,就象访问网上邻居一样方便。如图1所示,图中的服务器运行Samba服务器程序,其操作系统是Linux。该服务器通过Samba可以向局域网中的其他Windows系统提供文件服务。同时,在Linux服务器上还连接了一个共享打印机,打印机也通过Samba向局域网的其他Windows用户提供打印服务。

samba 日志说明 samba设备_服务器

图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完成的功能有:

  1. 共享目录:在局域网上共享某个或某些目录,使得同一个网络内的Windows用户可以在网上邻居里访问该目录,就跟访问网上邻居里其他Windows机器一样。
  2. 目录权限:决定每一个目录可以由哪些人访问,具有哪些访问权限。Samba允许设置一个目录让一个人、某些人、组和所有人访问。
  3. 共享打印机:在局域网上共享打印机,使得局域网的其他用户可以使用Linux操作系统下的打印机。
  4. 打印机使用权限:决定哪些用户可以使用打印机。

安装和配置好了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