天天看点

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

一、先恶狠狠地吐槽一下:

这篇随笔真是让我折腾了2天2夜才敢下笔写!!!为什么呢?之前是通过去Samba的官网下载的源码包,也就是.tar.gz来进行安装配置,不过这个让我折腾来折腾去就是没折腾出结果,还花了我整整1天1夜的时间,最后实在是熬不住了,想通过yum来重新进行Samba服务器的安装与配置,但是要使用yum首先必须是CentOS要联网,而我又没有找到Samba的rpm包,而之前一直没有搞定在虚拟机中的CentOS上网的问题,所以新的纠结又开始了,首先得先想办法让虚拟机能上网,这段经历已经记录下来了,可以查看上一篇随笔--​​Linux学习之CentOS(十)--虚拟机下的CentOS如何上网​​

在经过一番痛苦的搜索、尝试之后,虚拟机上的CentOS终于能够上网了,当时我的那个热泪盈眶啊。。。。。。在能上网之后,我迫不及待地准备使用yum来重新安装我的Samba服务器。。。。。。至此,才开始下笔记录这段艰辛的历程!!!!!

二、Samba的简介:

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微 软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux 之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因 而 Samba较多的用在了Linux与windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在 Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。

Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启 动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

三、Samba服务器安装(.tar.gz源码安装篇)

1.获取Samba的源码包并且进行解压缩

首先先记录下自己折腾了一天一夜的源码安装Samba服务器,虽然最后没有成功,但是当中的辛酸苦辣自己可是吃了个透。。。。。

要下载Samba的源码包,当然得去Samba的官方网站,​​http://www.samba.org/samba/​​ ,目前最新版本已经是4.0.4了,我下载的是3.6.13版本的。

在下载好后通过ISO镜像挂载到CentOS上,(因为我已经安装了VMware-Tools,所以可以直接将下载好的源码包复制粘贴到虚拟机中的CentOS里面)。

然后我们将samba-3.6.13.tar.gz拷贝到了/home目录下,然我我们执行以下命令来进行解压缩:

2.配置configure

我们在对源码包进行解压缩后,会在/home下看到一个/samba-3.6.13的目录,也就是刚才解压缩后的samba,我们进入到该目录的source3目录下:

然后执行以下命令,进行配置:

3.生成和安装make && make install

在对samba进行configure以后,我们要对其源码包进行编译,在环境配置命令./configure成功执行后,可以运行命令

来生成二进制可执行文件,这可能需要五分钟。成功生成可执行文件后,可以通过下面命令

来进行安装。系统默认的安装路径是/usr/local/samba。

4.配置动态链接库路径

安装完成后,我们需要配置动态链接库路径,因为运行samba的进行smbd和nmbd需要到目录/usr/local/samba/lib下的动态链接 库文件。但是该目录不是系统默认的动态链接库文件搜索路径,于是我们需要将该目录添加到文件ld.so.conf中。执行下面的命令

然后,打开ld.so.conf文件,并在该文件中加入下面这一行内容

然后执行命令

来更新动态链接库缓冲。

5.samba配置文件smb.conf

samba在运行过程中需要用到配置文件smb.conf。smb.conf配置文件是samba最重要的配置文件,该文件定义了samba的安全机制、文件共享和打印共享的目录和参数以及其他一些系统配置功能。

配置文件smb.conf的默认路径是/usr/local/samba/lib/smb.conf,我们可以在运行smbd进程时,通过-s选项 来执行特定的smb.conf文件,一般不推荐使用-s选项,因为其配置工具,如smbclient、testparm等默认都是读 取/usr/local/samba/lib/smb.conf文件。

因为我们在samba的lib下还不存在smb.conf文件,我们可以通过如下命令从samba的安装目录里面copy一份到lib目录下:

此时我们可以看看这个文件,看看里面都有什么配置信息:

6.主配置文件smb.conf

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

7.启动Samba服务器

samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。

配置smb.conf文件后,在开始运行samba的服务进程之前。我们需要先做一些准备工作。运行smbpasswd命令(在目录/usr/local/samba/bin下)

然后运行命令

下面是运行samba的服务进程smbd和nmbd

此时我们可以通过如下命令来进行查看服务是否已经启动:

上面的-D选项指定smbd和nmbd以守护进程的方式启动.以守护进程 方式启动smbd和nmbd的优势是响应速度快,但是要关闭的话只能kill掉。

8.对Samba服务器进行测试检查

在启动samba之后,我们可以在本机使用smbclient(目录/usr/local/samba/bin下)来进行测试。下面命令

正常情况下会列出如下的信息:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

但是!!!我一直没能出现这个,折腾了我好久都没有搞定。。。。。所以在实在无法忍受后换了yum来进行安装。

我们也可以通过smbclient来访问samba服务器提供的服务,其命令格式如下:

其中serverAddress是要访问的samba服务器的IP地址,aservice指定samba服务器上提供的某个服务名称,选项-U username指定要以哪个用户名来访问samba服务器。例如:

上面个smb: \>表明了访问成功,此时我们可以输入一些命令来在samba服务器上进行操作,比如ls、mkdir等。q或quit命令执行退出,并断开连接。

如果我们需要在windows上来访问CentOS上的共享文件夹,可以在网上邻居中通过新建网上邻居来访问,或者在【开始】——【运行】中输入\\192.168.113.128\来访问samba服务器192.168.113.128上面提供的服务。

/********************************************这是一条华丽的分界线************************************************/

四、Samba服务器安装(通过yum来进行安装)

在上面的源码安装失败未果后,我果断选择了放弃,于是想着采用yum来进行安装,直接经历的艰辛过程就不再多陈述了。。。。。。。。。

有关yum的各种命令详解将会在后续的Linux学习中记录出来,这里只是简单的通过使用yum来进行Samba的安装。

1.通过yum来进行Samba服务器,注意,如果通过yum方式来下载软件,格式都是rpm的格式(有关rpm的命令详解也会在后续的Linux学习中记录下来)

在等待了一番时间后,我们可以看到如下界面(通过yum方式安装时,有依赖关系的包samba-common、samba-winbind-clients、libsmbclient将自动安装上去。):

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

安装包的说明:

经过一番下载、安装等待以后,如果出现以下界面,则表示Samba以及与Samba相关的包以及安装成功了

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

2.查看安装结果

我们可以通过如下命令来查看Samba的安装结果

得到的结果如下:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

3.启动Samba服务器

启动Samba服务器可以通过 /etc/init.d/smb start/stop/restart 来启动、关闭、重启Samba服务,启动SMB服务如下所示:

例如:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

4.查看Samba服务的启动情况

我们可以通过 service smb status 命令来查看服务启动情况,如:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

5.设置smb、nmb服务开机自启动

通过 chkconfig --list | grep smb 命令我们可以查看smb服务在各个启动级别的启动情况,通过 chkconfig --level 35 smb on 命令可以使的smb服务在3、5启动级别时随着系统启动而自动启动,如:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

6.关闭防火墙

如果不关闭防火墙,Samba服务器可能就访问不了

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

五、配置Samba服务器

Samba的主配置文件为/etc/samba/smb.conf

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

下面我们通过两个例子来验证一下Samba服务器是否可以正常访问

实例一:现有一个工作组workgroup,需要添加samba服务器作为文件服务器,并发布共享目录/share,共享名为public,此共享目录允许所有员工访问。

1.首先我们要修改一下我们的smb.conf文件,(我们最好先将这个文件备份一下)

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

2.因为上面设置了共享目录为/share,下面就需要建立/share目录:

然后在该目录下创建两个空文件:

由于要设置匿名用户(也就是所有的用户)可以下载或上传共享文件,所以要给/share目录授权为nobody权限。

3.重启smd、nmd服务:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

4.测试smb.conf是否配置成功

我们可以通过testparm来验证刚修改的smb.conf是否配置有错

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

5.访问Samba服务器的共享文件

  a.在Linux下访问Samba服务器的共享文件

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

【注意】如果在出现smb: \>时,则表示Samba服务器已经配置成功,我们可以通过 ls 命令来查看该分享文件夹下面的文件列表信息,如果是第一次访问可能会在输入ls 以后出现以下错误:

解决方法如下:关闭SELIUNX

SELINUX几种状态表示:

所以我们通过以下命令将SELIUNX设置成disabled或者permissive就行了

这时我们再在上面的smb: \> 输入  ls命令时,就可以看到我们共享文件夹里面的东西了

  b.在windows系统中访问Samba服务器的共享文件

  通过【开始】——【运行】中输入\\192.168.113.128\来访问samba服务器192.168.113.128上面提供的服务。

  

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

实例二:一个公司现有多个部门,因工作需要,将hr部的资料存放在samba服务器的/hr 目录中集中管理,以便hr人员浏览,并且该目录只允许hr部员工访问。

1.首先我们需要添加hr组以及hr组的组员

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

建立用户的同时加入到相应的组中的方式:useradd -g 组名 用户名

2.在根目录下建立/hr 文件夹

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

3.将刚才建立的两个帐户添加到samba的账户中,通过 smbpasswd -a USER姓名 命令

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

4.修改主配置文件如下:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网
CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

5.重新加载主配置文件smb.conf,通过service smb reload 命令

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

6.到windows客户端验证,访问\\192.168.113.128,提示输入用户名和密码,在此输入chris验证,如下图:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

7.访问成功,可以看到公共的public目录,用户chris的宿主目录,和其有权限访问的hr目录

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

六、Linux客户端访问操作

上面介绍了windows客户端访问Samba服务器的操作,那么在Linux作为客户端时,查看其它Linux Samba服务器共享的文件时,我们通过可以对其服务器共享的文件进行操作,这时用到smbclient这个工具,系统默认自带了这个命令,Smbclient常见用法介绍如下:

1、查看Samba服务器的共享资料

"-L"即为list的含义,"-U"是user的意思,如果Samba服务器是无密码访问的话,可以省略"-U  Samba用户名"。

例如:samba需要密码登陆时,查看共享方法如下:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

Samba无密码访问时,执行如下命令:

password: 直接回车即可。

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

2、登陆Samba服务器

如果需要在Linux客户端登陆Samba服务器,用法如下:

例如下面执行的操作:

CentOS6.4下Samba服务器的安装与配置Linux学习之CentOS(十)--虚拟机下的CentOS如何上网

操作过程与登陆FTP服务器很类似,登陆Samba服务器后,就可以进行文件的上传与下载,如果有足够的权限,还可以进行修改文件操作。

大概花了两个小时的时间来整理写出了这篇博文,直接也参考了许多其他朋友写的博文,给了我很多帮助,这里只是Samba服务器的安装配置第一篇,万事开头难,花了两天两夜终于过了第一个难关,在以后学习Linux的道路上时将会继续记录自己的学习心得!!!!!!

学习时的痛苦是暂时的 未学到的痛苦是终生的

继续阅读