2023年11月24日发(作者:)

Samba培训

学习目标

Samba原理

安装Samba服务

启动与停止Samba服务

Samba的打印共享

学习效果

了解Samba的原理

掌握Samba的安装

掌握Samba的启动与停止

熟悉Samba的打印共享配置

Samba原理

Samba概述

接触Linux我们听的最多的就是Samba服务,为什么Samba应用

这么广泛呢,原因是Samba最先在LinuxWindows两个平台之

间架起了一座桥梁,正是由于Samba的出现,我们可以在Linux

统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系

统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文

件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,

甚至我们可以使用Samba Server完全取代NT/2K/2K3中的域控制

器,做域管理工作,使用也非常方便。

Samba应用环境

文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB

进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以

访问。

身份验证和权限设置:smbd服务支持user modedomain mode

等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打

印机。

名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name

Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP

地址。

浏览服务:局域网中,Samba服务器可以成为本地主浏览服务器

LMB保存可用资源列表,当使用客户端访问Windows网上邻

居时,会提供浏览列表,显示共享目录、打印机等资源。

Samba工作原理

Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅

提供目录和打印机共享,还支持认证、权限设置。在早期,SMB

行于NBT协议NetBIOS over TCP/IP上,使用UDP协议的137

138TCP协议的139端口,后期SMB经过开发,可以直接运行

TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

Samba工作流程

步骤1:协议协商

客户端在访问Samba服务器时,发送negprot指令数据包,告知

目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,

选择最优的SMB类型,并做出回应。

步骤2:建立连接

SMB类型确认后,客户端会发送session setup指令数据包,提

交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身

份验证,Samba服务器会对session setup报文作出回应,并为用

户分配唯一的UID,在客户端与其通信时使用。

步骤3:访问共享资源

客户端访问Samba共享资源时,发送tree connect指令数据包,

通知服务器需要访问的共享资源名,如果设置允许,Samba服务器

会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共

享资源。

步骤4:断开连接

共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,

与服务器断开连接。

Samba相关进程

Samba服务是由两个进程组成,分别是nmbdsmbd

nmbd其功能是进行NetBIOS名解析,并提供浏览服务显

示网络上的共享资源列表。

smbd其主要功能就是用来管理Samba服务器上的共享目录、打

印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服

务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管

理数据传输。

安装Samba服务

Samba所需软件

该包为Samba服务的主程序包,

服务器必须安装该软件包。

该包为Samba的客户端工

具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具。

该包存放的是通用的工

具和库文件,无论是服务器还是客户端都需要安装该软件包。

Samba的安装

建议在安装Samba服务之前,使用rpm -qa命令检测系统是否安装

Samba相关性软件包:rpm -qa|grep samba

如果系统还没有安装Samba软件包,我们可以使用rpm命令安

装所需软件包。

安装Samba主程序包:rpm -ivh

安装Samba客户端工具:rpm -ivh

安装Samba通用工具和库文件:

所有软件包安装完毕之后,我们可以再次使用rpm命令进行查询:

rpm -qa | grep samba

启动与停止Samba服务

samba服务的启动

service smb start /etc/rc.d/init.d/smb start

samba服务的停止

service smb stop /etc/rc.d/init.d/smb stop

samba服务的重启

service smb restart /etc/rc.d/init.d/smb restart

samba服务配置重新加载

service smb reload /etc/rc.d/init.d/smb reload

注意:Linux服务中,当我们更改配置文件后,一定要记得重启服务,让服

务重新加载配置文件,这样新的配置才可以生效。

自动加载samba服务

我们可以使用chkconfig命令自动加载smb服务:

chkconfig --level 3 smb on #运行级别3自动加载

chkconfig --level 3 smb off #运行级别3不自动加载

Samba的打印共享

默认情况下,samba的打印服务是开放的,所以我们只要把打印

机安装好后客户端的用户就可以使用打印机了。

设置global配置项

修改全局配置,开启打印共享功能

[global]

printcap name = /etc/printcap

load printers = yes

cups options = raw

设置printers配置项

[printers]

comment = All Printers

path =/var/spool/samba

browseable = no

printable = yes

一般使用默认设置就可以让客户端正常使用权打印机了,需要注

意的就是printable一定要设置成yespath字段定义打印机队

列,可以根据需要自己定制,另外共享打印和共享目录不一样,

安装完打印机后必须重新启动samba服务,否则客户端可能无法

看到共享的打印机。如果对使用打印机设置权限,我们可以使用

valid usershosts allowhosts deny字段来实现。