主机系统:Windows7 

虚拟机工具:VirtualBox4.3.8

虚拟机目标系统:Ubuntu12.04

在一些中小型网络,或者企业的内部网中,利用Linux建立文件服务器是一个很好的解决方案。针对企业内部网中的绝大部分客户机采用Windows的情况,为使Windows用户以及Linux用户能够互相访问彼此的资源,Linux提供了一套资源共享的软件——Samba服务器。Samba是在LinuxUnix上实现SMBServer MessageBlock)协议的一个免费软件。

 一、SMB协议和Samba简介 

1.1 SMB协议 

为了使Windows 主机间的资源能够共享,微软于1980年开发了SMB(Server Message Block)通信协议,并通过SMB通信协议,使网络上各台主机之间能够共享文件、打印机等资源。目前类似这种资源共享的通信协议还有NFS、Appletalk、Netware等。 

 1.2 Samba简介 

这些年来,Windows 和Linux 操作系统各自拥有自己的用户群和市场。然而在一般的公司或学校里,可能同时有Windows 和Linux 操作系统的主机。Windows主机彼此间可利用“网上邻居”来访问共享的资源,NFS也能使Linux 主机之间实现资源共享。但如何能使Windows 主机和Linux主机之间实现资源共享呢? 

微软的“网上邻居(就是Windows 上利用SMB通信协议实现资源共享的程序)”一经推出,便广受用户的好评,大家突然觉得原来要在网上共享资源尽是那么简单,有鉴于此,便有一些Linux 爱好者开始在Linux 主机上实现SMB通信协议,后来这个实现了SMB功能的软件既被称为 Samba ,它使得Windows 主机和Linux主机之间实现了资源共享。 

 1.3 Samba软件的功能 

由于SMB通信协议采用的是Client/Server架构,所以Samba 软件可以分为客户端和服务器端两部分。通过执行Samba 客户端程序,Linux 主机便可以使用网络上Windows 主机所共享的资源;而在Linux 主机上安装Samba 服务器,则可以使Windows 主机访问Samba 服务器共享的资源

Samba 提供了以下功能: 

(1)共享Linux 的文件系统;

(2)共享安装在Samba 服务器上的打印机;

(3)使用Windows 系统共享的文件和打印机 ;

(4)支持 Windows 域控制器和Windows 成员服务器对使用Samba 资源的用户进行认证 

(5)支持WINS名字服务器解析及浏览;

(6)支持SSL安全套接层协议。

 二、 安装和使用Samba服务器

Samba 软件安装在Linux 一端。目前主要由一个20人左右的Samba 团队负责维护及开发,用户可以在http://www.samba.org/站点获得Samba的详细信息。同时,也可以在网页上下载Samba 的最新版本 。

2.1 安装Samba服务器 

如果用户在安装Linux 时已经安装了Samba ,就无需再安装。如果不确定是否已经安装,可以通过下列命令确定是否已经安装Samba :

apt-cache search +"包名"   搜索系统中相关的软件包有没有安装。

apt-cache show +"包名"     显示指定软件包的详细信息,如说明、大小、版本等。

或者:

rpm  –qa | grep  samba

若已经安装则会显示出samba软件包相关的信息,则表示已经安装了Samba ,否则必须先安装Samba 才可以使用SMB服务。 

安装时,ubuntu系统可以直接安装:sudo apt-getinstall samba

或者:rpm –ivh + “包名

如果需要使Linux 主机访问Windows 主机上的共享资源,则还应该在linux系统中安装Samba 客户端程序。 

2.2创建共享目录

在linux系统中创建要共享的目录:

sudo mkdir  /home/zqjun/shared

sudo chmod  777  /home/zqjun/shared

说明:zqjun是你在linux系统中工作的账户名(此处根据自己的实际名称修改),shared是你用来做为共享的文件夹(名字无限制),此文件夹中的所有信息在windows系统中可以直接进行读写操作(当然读和写的权限由自己来控制)。

2.3修改Samba配置文件

在上一步骤中已经创建了将要共享的目录,接下来需要修改Samba配置文件中的设置,使SMB服务对该共享目录生效。

sudo vi  /etc/samba/smb.conf

在smb.conf配置文件结尾添加以下信息:

 [zqjun]

    path = /home/zqjun/

    valid users = zqjun

    available = yes

    writeable = yes

    browseable = yes

    public = yes

    guest ok = yes

    create mask = 0755

    directory mask =0755

说明

1、valid users项中的用户名是用来作为远程网络访问的账户。该账户可以使用系统已经存在的账户,如root、Tom等。也可以按下面2.4步骤进行添加新的账户。

2、这里的[zqjun]名字是可以随便取,这个是你在windows下访问时linux共享时“计算机”列表中显示“网络位置”的名字。

3、添加完成后保存,再检查一下以下内容,如果不相同,则修改,如果没有也可以添加上去:

workgroup = WORKGROUP

display charset = UTF-8

unix charset = UTF-8

dos charset = cp936

  后面的三行是为了防止出现中文目录乱码的情况。

 

2.4在windows上创建samba帐户

如果系统中没有zqjun这个账户存在,则需要添加这个网络访问帐户。如下:

sudo useradd zqjun

上面只是增加了zqjun这个系统用户,却没有给用户赋予本机登录密码。所以这个用户只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。这个你可以在重启系统时看到你添加的用户,但是你却用它登陆不了系统,因为没有赋予本机登录密码。

sudo touch /etc/samba/smbpasswd

sudo smbpasswd –a zqjun

然后会要求你输入samba帐户的密码。这个密码不是开机登录时候用的,是你要访问WIN共享文件或者WIN要访问linux共享文件的时候要填的密码。如果你直接用系统中的账号,这里zqjun就是你系统中的账户名即可,密码即为你登录linux系统时的密码。

现在要新增网络使用者的帐号:

sudo vi /etc/samba/smbusers

在新建立的文件内加入下面这一行并保存:

      zqjun= “networkusername”

如果要删除网络使用者的帐号,把上面命令中的 -a 改成 -x 即可:

sudo smbpasswd -x zqjun

 

 2.5重启samba服务器

运行以下命令来测试一下配置参数是否OK:

sudo testparm

       命令执行后显示刚才的配置信息,则OK。

测试OK后,即可重启使配置生效:

sudo /etc/init.d/smbd restart

或:service smbdrestart

 

2.6测试Samba服务器

运行以下命令来测试是否可以访问共享:

smbclient -L //localhost/share

或者: 
       smbclient -L \\127.0.0.1 -U zqjun 

需要输入的密码就是你刚才创建账户时设置的samba密码。

 

2.7Win中访问Linux共享

至此,我们就可以在windows下访问Linux系统中的共享文件了。

打开“我的电脑”,在左侧列表栏“计算机”上单击右键,在弹出的窗口中选择“映射网络驱动器”,在“文件夹”填入“ \\server\share”格式的网络结点,勾选“登录时重新连接”即可。

我的网络位置为:\\192.168.1.13\zqjun

说明

1、“server”是Linux系统的IP地址,“share”是你在Linux系统中设置的要共享的网络结点名称,即为上面的[zqjun]。

2、该网络位置在WIN上添加后,每次进入到WIN系统时都会自动去连接该网络结点。如果要删除该网络结点,在“计算机”处单击右键后,选择“断开网络驱动器”,选中要断开的网络结点确定即可。

3、在“计算机”上单击右键后,也可以选择“添加一个网络位置”来建立以上的共享结点,其中“Internet地址或网络地址(A)”处要填入的网络路径同上面的路径。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐