Linux下搭建samba服务器

偶尔善良 提交于 2020-12-22 10:47:23



一、简介:

1,什么是samba:

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


2,SMB协议:

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

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

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

3samba 的主要功能

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

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

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

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

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


二、系统环境:



三、安装步骤:


1、安装samba

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

#  yum install samba  samba-client samba-swat 

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


2、查看安装状况


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服务如下所示:

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

6、设置开机自启动

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


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目录:

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

c. 重启smb服务

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

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

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



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


点击文末右下角的 “在看” 解锁更多惊喜哦!

更多精彩推荐,请关注我们

本文分享自微信公众号 - 释然IT杂谈(gh_ad4551519762)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!