Samba服务及应用

它是 Microsoft 和 Intel 在 1987年开发的,该协议可以用在TCP/IP 之上,也可以用在其他网络协议(如 IPX 和 NetBEUI )之上。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序还可以访问远程服务器端的文件和打印机等资源。

110949732.jpg

Linux 使用一个被称为Samba 的程序集来实现SMB 协议。通过 Samba ,可以把Linux 系统变成一台SMB 服务器,使Windows 用户能够使用 Linux 的共享文件和打印机,同样的 Linux 用户也可以通过 SMB 客户端使用 Windows 上的共享文件和打印资源。

它的主要功能如下。

( 1 )提供 Windows 风格的文件和打印机共享。 Windows XP 、 Windows 2003等操作系统可以利用 Samba 共享 Linux 等其他操作系统上的资源,而从外表看起来和共享 Windows 的资源没有区别。

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

( 3 )提供 SMB 客户功能。利用Samba 程序集提供的 smbclient 程序可以 在Linux 中以类似于 FTP 的方式访问 Windows 共享资源。

( 4 )提供一个命令行工具,利用该工具可以有限制地支持 Windows 的某些管理功能。

Samba服务工作原理

110843873.jpg

①首先客户端发送一个 SMB negprot 请求数据报,并列出它所支持的所有 SMB 协议版本。服务器收到请求信息后响应请求,并列出希望使 用的协议版本。如果没有可使用的协议版本则返回 0XFFFFH ,结束通信。

②协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送 SesssetupX 请求数据报实现的。客户端发送一对用 户名和密码或一个简单密码到服务器,然后服务器通过发送一个 SesssetupX 应答数据报来允许或拒绝本次连接。

③当客户端和服务器完成了磋商和认证之后,它会发送一个 Tcon 或 TconX SMB 数据报并列出它想访问网络资源的名称,之后服务器会 发送一个 TconX 应答数据报以表示此次连接是否被接受或拒绝。

连接到相应资源后, SMB 客户端就能够通过 open SMB 打开一个文件,通过 read SMB 读取文件,通过 write SMB 写入文件,通过 close SMB 关闭文件。

Samba服务器安装

在RedHat Enterprise Linux 5系统中,默认时没有安装Samba服务的,不过系统光盘给我们提供了rpm安装包。由于在安装Samba软件包时,需要依赖其它的软件,所以最好使用本地yum来安装。

111101444.jpg

111110937.jpg

一旦Samba服务开启之后,就会通过别的主机搜索到Samba服务器主机。搜索主机的方式有四种:

1、搜索计算机

2、网上邻居

3、UNC路径\\IP或名称\共享资源

4、在cmd命令行模式下。net use,net share。

Samba服务的主配置文件

smb.conf的几个常用变量

①客户端变量

%a | 客户端的体系结构(例如SambaNT,Win98,或者Unknown

%I | 客户端的IP地址(例如:192.168.2.200)

%m | 客户端的NetBios

%M | 客户端的DNS

---------------------------------------------------------------------

②用户变量

%g | %u的基本组

%G | %U的基本组

%H | %uHome目录

%u | 当前的unix用户名

%U | 被请求的客户端用户名(不总是被samba使用)

---------------------------------------------------------------------

③共享变量

%p | 如果和%p不同,automounter的路径对应共享的根目录

%P | 当前共享的根目录

%S | 但前共享的名称

---------------------------------------------------------------------

④服务器变量

%d | 当前服务器进程的ID

%h | Samba服务器的DNS主机名

%L | Samba服务器的netbios

%N | Home目录服务器,来自automount的映射

%v | samba版本

---------------------------------------------------------------------

⑤其他变量

%R | 经过协商的SMB协议

%T | 当前的日期和时间

Samba服务的主配置文件/etc/samba/smb.conf 由两部分构成。

1、Global Settings

该设置都是与 Samba 服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的。

①设置 Samba 服务器所属的群组名称或 Windows 的域名

workgroup= MYGROUP

②设置 Samba 服务器的简要说明

serverstring = Samba Server Version %v

③设置可访问 Samba 服务器的主机、子网或域

hostsallow = 192.168.1. 192.168.2. 127.

④设置 Samba 服务启动时,将自动加载的打印机配置文件

printcap name = /etc/ printcap

⑤设置是否允许打印配置文件中的所有打印机开

loadprinters = yes

⑥设置 guest 账号名

guestaccount = pcguest

⑦指定 Samba 服务器使用的安全等级

security= user

Samba服务器的安全等级共有以下 5 类。

(1)share安全等级

用户不要账号及密码即可登入SAMBA服务器

(2)user安全等级

由提供服务的SAMBA服务器负责检查账户及密码(默认的安全等级)

(3)server安全等级

检查账户及密码的工作由另一台Windows NT/2000或SAMBA服务器负

(4)domain 安全等级

使用windows域中的服务器来验证用户和密码

(5)ads安全等级

当samba服务器使用ads安全级别加入到windows域环境中,其中包含有domain中的所有功能,并且可以具备域控制器的功能

⑧有多个网卡的 Samba 服务器设置需要监听的网卡

interfaces= 网卡 IP 地址或网络接口

bindinterfaces only=yes

⑨设置 Samba 服务器同时充当 WINS 服务器

winssupport = yes

⑩设置 WINS 服务器的 IP 地址

wins server = w.x.y.z

2、Share Definitions

该设置针对的是共享目录个别的设置,只对当前的共享资源起作用。

[homes]

comment = Home Directories //目录文字说明

browseable = no //是否允许用户浏览homes主目录,建议使用默认值,不允许

writable = yes //是否允许写入个人主目录


[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

创建Samba帐号库
samba将用户名和密码存放到了/etc/samba/smbpasswd中,在客户端提交用户名和密码资料后,samba回将其与该文件中的信息做比较,如果相同并且samba服务器其他安全设置允许,客户端与samba服务器连接才能成功。

建立samba账号:
samba账号不能直接建立,必须在系统中存在同名的系统账号,如建立一个user1的账号那么在系统中必须提前有一个user1的系统账号,一般的话Samba帐号库中的用户都不作为系统登录用户。
建立方式如下:
useradd -s:/bin/bash/nologin user1 #建立系统账号
passwd user1 #设置系统账号密码
smbpasswd -a user1 #建立samba账号

两个密码可以不一样

访问Samba服务器:
1.Linux客房机访问Samba共享服务:
smbclient -L //主机名或IP -U 登陆名 //列出共享
smbclient -L //localhost
//查看本地情况.

smbclient //主机名或IP -U 登陆名%密码

113515324.jpg

应用案例:

要求:
1.所有的员工在公司都能流动办公,都能把自己的文件保存到Samba服务器上.
2.技术部和市场部都有各参的目录,同一个部门的人拥有一个共享目录,共它部门的人都只能访问在
3.所有的用户都不允许使用服务器上的shell,只能通过Samba访问服务器.
4.要求提供一个软件共享目录,存放一个常用软件,供公司员工使用.
5.提供临是文件目录,任何用户都可以对其进行读写(谁创建的,谁可以删)

分析:
1.要求员工都能流动办公,都能把文件保存Samb服务器上,这个利用home目录就可以实现.
2.创建market,tech组,创建组共享目录.
3.利用不可用的shell就可以如,/bin/false.
4.软件共享:software
公司任何人都可以访问, 不能写.
5.TmpUpload:临时上传文件:
公司员工名单:
总经理:boss

技术部: tec (wj)
市场部:mkt(dom)

113645313.jpg

113700622.jpg

113709735.jpg

创建两个公共的目录,其中tmpupload的权限是所有用户可以访问并且可以操作文件。

113816738.jpg

113818469.jpg

113907564.jpg

在windows主机上显示的内容,如果一个用户登录过之后,就不允许另一个用户在同一台主机上进行连接。不过可以使用smaba服务器自带的工具smbclient来进行测试。

113952794.jpg

114037450.jpg

114050104.jpg

114125974.jpg

本文出自 “人生在勤,不索何获” 博客,谢绝转载!

你可能感兴趣的:(Samba服务及应用)