一、简介:


1,什么是samba:



samba是一个能让你的Unix计算机和其它MS Windows计算机相互共享资源的软件。samba提供有关资源共享的三个功能,包括:smbd,执行它可以使Unix能够共享资源给其它的计算机;而smbclient就是让Unix去存取其它计算机的资源;最后一个smbmount,则是类似MS Windwos 下“网络磁盘驱动器”的功能,可以让你把其它计算机的资源挂在自己的档案系统下。它们功能虽然简单,但没有samba,Unix和Windows的资源就很难共享。samba的功能十分实用,虽然没用亮丽的外表,但在局域网络中,它的确是一个很重要的工具。



2,SMB协议:



SMB(ServerMessage Block,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。

SMB的工作原理是让NetBIOS(Win95网络邻居通信协议)与SMB这两种协议运行在TCP/IP的通信协议上,且使用NetBIOSnameserver让用户的Linux机器可以在Windows的网络邻居里被看到,所以就可以和Win95/NT主机在网络上相互沟通,共享文件与服务了。

目前Microsoft正在开发一种新的文件和打印共享协议--CIFS(Common Internet FilesSystem,通用网络文件协议),该协议支持TCP/IP和DNS 等协议,能在www上支持文件和打印共享。在CIFS下服务器实际上是DNS名,由主机名和域名组成。这种变化是从NetBIOS命令结构中分离出来的。目前CIFS还没有得到广泛的应用。现在在Linux和Win95/NT之间的文件共享注意还是SMB和NFS。


3,samba 的主要功能



(1)提供Windows NT风格的文件和打印机共享Windows7、Windows8、Windows 10等依据此共享UNIX等其他操作系统的资源,外表看起来和共享文件夹 的资源没有区别。

(2)解析NetBIOS名字IP在Windows网络中,为了能够利用网上资源,同时自己的资源也能被别人所利用;各个主机都定期地向网上广播自己的身份信息。而负责收集这些信息,为别的主机;提供检索情报的服务器就被称为浏览服务器.Samba 可以有效地完成这项功能在跨越网关的时候Samba还可以作WINS服务器使用。

(3)提供SMB客户功能利用Samba提供的smbclint程序可以从UNIX下以类似于FTP的方式访问Windows的资源。

(4)备份PC上的资源利用一个叫smbtar的shell脚本,可以使用tar格式备份和恢复一台远程Windows上的共享文件。

(5)提供一个命令行工具,在其上可以有限制地支持NT的某些管理功能。



二、系统环境:



Linux下搭建samba服务器_共享文件

Linux下搭建samba服务器_服务器_02

Linux下搭建samba服务器_共享文件_03



三、安装步骤:



1、安装samba


在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装。


#  yum install samba  samba-client samba-swat 

Linux下搭建samba服务器_linux_04

有依赖关系的包samba-common、samba-winbind-clients、libsmbclient将自动安装上去。




2、查看安装状况

Linux下搭建samba服务器_共享文件_05

3、安装包说明

  • samba-common-3.5.10-125.el6.x86_64               //主要提供samba服务器的设置文件与设置文件语法检验程序testparm
  • samba-client-3.5.10-125.el6.x86_64                    //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
  • samba-swat-3.5.10-125.el6.x86_64                    //基于https协议的samba服务器web配置界面
  • samba-3.5.10-125.el6.x86_64                             //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
    Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。



4、启动samba的服务器



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



Linux下搭建samba服务器_共享文件_06

5、查看samba的服务启动情况

Linux下搭建samba服务器_服务器_07

6、设置开机自启动

# chkconfig --level 35 smb on   //在3、5级别上自动运行samba服务

Linux下搭建samba服务器_swat_08


7、配置smb账号



# useradd username

# passwd userpasswd

# smbpasswd -a username /*windows客户端登陆的用户名跟密码*/




8、配置smb服务


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


a. 修改samba的主配置文件如下:


#======================= Global Settings =====================================

[global] //该设置与Samba服务整体运行环境有关,它的设置项目针对所有共享资源

# ----------------------- Network Related Options -------------------------
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname

workgroup = WORKGROUP //定义工作组,也就是windows中的工作组概念
server string = David Samba Server Version %v //定义Samba服务器的简要说明
netbios name = DavidSamba //定义windows中显示出来的计算机名称

# --------------------------- Logging Options -----------------------------
#
# Log File let you specify where to put logs and how to split them up.

log file = /var/log/samba/log.%m //定义Samba用户的日志文件,%m代表客户端主机名
//Samba服务器会在指定的目录中为每个登陆主机建立不同的日志文件
# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)

security = share //共享级别,用户不需要账号和密码即可访问

#============================ Share Definitions ==============================

[public] //设置针对的是共享目录个别的设置,只对当前的共享资源起作用
comment = Public Stuff //对共享目录的说明文件,自己可以定义说明信息
path = /share //用来指定共享的目录,必选项
public = yes //所有人可查看,等效于guest ok = yes






b. 建立共享目录


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

Linux下搭建samba服务器_服务器_09

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

Linux下搭建samba服务器_swat_10


c. 重启smb服务


Linux下搭建samba服务器_服务器_11


d. 测试smb.conf配置是否正确


Linux下搭建samba服务器_服务器_12


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


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

Linux下搭建samba服务器_linux_13

  • 在windows下访问Samba服务器的共享文件

Linux下搭建samba服务器_swat_14



如果您喜欢我的文章,请长按以下图片关注我的公众号,学习Linux的路上,期待与您同行。




Linux下搭建samba服务器_samba_15

本文分享自微信公众号 - 释然IT杂谈