学习 Linux,302(混合环境): Samba 角色
http://www.ibm.com/developerworks/cn/linux/l-lpic3-310-2/
在本文中,了解下列概念:
- Samba 安全模式
- 核心 Samba 守护程序的角色
- Samba 守护程序的管理
本文帮助您准备 LPI 混合环境专业考试(302)中主题 310 中的目标 310.2。该目标的权重为 1。
为了最有效地利用本系列中的文章,您应该具有高级 Linux 知识,并需要准备一个 Linux 系统,用于练习本文介绍的命令。特别是,本文假设您具有 Linux 命令行函数的工作知识且至少大致了解 “学习 Linux,302(混合环境):概念” 中所讲述的 Samba 的用途。要执行本文所描述的操作,您必须安装 Samba 软件。 一些操作需要拥有由您管理的工作的服务器消息块(SMB)/通用 Internet 文件系统(CIFS)网络。
关于可选的 LPI-302 考试
Linux Professional Institute Certification (LPIC)像许多其他认证一样提供不同的等级,每一个等级都需要比前一个等级更多的知识和经验。LPI-302 考试是一项可选的专业考试,其在 LPIC 层级中位于第三级且需要高级的 Linux 系统管理知识。
要获得 LPIC 3 级(LPIC-3)认证,您必须通过两个一级考试(101 和 102),两个二级考试(201 和 202),以及 LPIC-3 核心考试(301)。在您完成这一等级以后,您可以参与可选专业考试,如 LPI-302。
Linux 服务器通常作为守护程序(daemon) 来实现,这一词源于希腊神话,其中守护神(daemon)是超自然生物。Linux 守护程序在后台运行以便执行一些有用的任务。Samba 服务器套件由几个守护程序组成,包括 smbd
、nmbd
和 winbindd
。swat
程序是另外一个 Samba 服务器,但是其通常都是从一个超级服务器运行,因此在技术上不是守护程序。
smbd
程序提供 Samba 的大部分核心功能。其职责包括:
- 提供文件和打印机共享。此功能可以说是一个最重要的 Samba 职责,
smbd
执行此功能。 - 验证用户。
smbd
针对本地数据库验证用户或传递验证请求到另一台计算机。如果您的 Samba 服务器被配置为域控制器,则smbd
还可从其他计算机响应验证请求。(在 设置您的安全模式 中将描述工作组和域配置)。 - 提供时间服务。Samba 可以告诉其他计算机当前的时间;
smbd
可处理此细节。
构建您自己的提要
您可以构建自定义 RSS、Atom 或 HTML 提要,因此您会收到关于我们添加了新的文章或更新了内容的通知。转到 developerWorks RSS 提要。选择 Linux 作为专区,文章作为类型,同时输入 Linux Professional Institute
作为关键词。然后,选择您的首选提要类型。
默认情况下,smbd
守护程序绑定到 TCP 端口 139 和 445。SMB 协议通过 TCP 上的 NetBIOS 使用端口 139,它是许多旧客户端使用 SMB/CIFS 的方式。端口 445 在 TCP 服务上提供简单的 SMB,它是访问 Samba 服务器的新客户端数。
由于这些职责的关键性质(尤其是,提供文件和打印机共享及验证),smbd
可视为是 Samba 的核心。实际上,可以使用诸如 Samba 自己的 smbclient
等的程序连接到单独运行 smbd
的计算机以便执行文件传输。然而一些客户端依靠其他 Samba 守护程序提供的服务。
第二个关键的 Samba 守护程序是 nmbd
。此服务器的主要职责是处理名称相关的任务。您可以将其视为 Samba 自己版本的域名系统(DNS),只是它更易于配置且远没有 DNS 复杂。nmbd
执行的特定任务包括:
- 对名称广播进行响应。在操作的一个通用模式中,客户端将名称查询广播到整个网络段。
nmbd
服务器监听此类广播,并且在 Samba 配置为使用正在查询的名称时,该服务器将进行响应。在将其配置为另一计算机或网络的代理时,它也会响应。 - 注册 NetBIOS 名称。为使 NetBIOS 名称解析正常进行,计算机必须注册其名称,通过集中的 NetBIOS 名称服务器(NBNS;又名 Windows Internet 名称服务(Windows Internet Name Service [WINS]) 服务器)或通过广播名称并作为整体与网络协商其权利。
nmbd
负责执行此操作并与其他注册名称的计算机进行协商。 - 作为 NBNS 服务器运作。Samba 可被配置为 NBNS 系统,在这种情况下,
nmbd
可处理这些职责。 - 作为主浏览器运行。用户体验 SMB/CIFS 网络的一部分是浏览 — 浏览网络上的服务器的能力就像您浏览硬盘上的目录。此功能依赖于主浏览器 的存在,它收集并传播浏览列表。在 Samba 作为主浏览器运行时,它是从事此项工作的
nmbd
。
正如此列表所示,nmbd
执行很多工作。虽然它们不涉及提供文件或打印机,但是许多任务都是任何 SMB/CIFS 服务器的重要部分,因此 nmbd
应被认为是 Samba 的重要部分。它通常通过分布的启动脚本与 smbd
一起运行。
虽然大多数 nmbd
的功能都需要将其绑定到 TCP 端口 137,但是主浏览器职责涉及用户数据报协议(User Datagram Protocol)端口 138。
第三个 Samba 守护程序是 Winbind 守护程序,即 winbindd
。不同于 smbd
和 nmbd
,winbindd
不为远程计算机提供服务;相反,它作为 Windows®(或 Samba)域控制器与本地计算机自己的可插拔验证模块(Pluggable Authentication Modules)工具之间的接口,允许域控制器来托管 Linux 帐户信息。
在许多分布上,winbindd
被安装在与 Samba 的其余分布不同的包中 — 通常在称为 winbind
或 winbindd
的包中。它还通常被分别发布。原则上,您可以在不运行 Samba 服务器或或甚至用作 SMB/CIFS 客户端的计算机上运行 winbindd
,除了 winbindd
是 SMB/CIFS 客户端之外。不过,在实践中,如果其正在运行 winbindd
,那么您可能运行 Samba 服务器或使用 Linux 计算机作为 SMB/CIFS 客户端。
控制 Samba 至少涉及两个任务:使用其配置文件调整其配置选项和在临时的、实时的基础上变更其选项。通过 Samba 配置文件,您可以完成第一个任务,而第二个可通过 smbcontrol
配置工具完成。
主 Samba 配置文件被称为 smb.conf 且通常位于 /etc/samba,但也可位于其他位置。(如果您从源构建 Samba,那么 /usr/local/samba/lib 是一个通用位置。)
smb.conf 文件由一些部分组成,每一个都以方括号([]
)括起来的名称开始,如 [global]
或 [documents]
。大多数部分都定义了文件或打印机共享;然而,[global]
部分是特别的:它存放作为整体影响服务器的选项或设置后续共享定义中使用的默认值的选项。([global]
部分通常首先出现在文件中。)
smb.conf 中的行可能是以井号(#
)或分号(;
)开始的注释行;它们可以是部分的名称;或者它们是设置 Samba 参数的行。最后这个类型行采用以下形式:
parameter = Value |
parameter
是关键字,如 security
或 create mask
。参数名是不区分大小写的。一些常见的参数有同义词,而少数具有反义词。例如,writable
和 writeable
是同义词,而 read only
是这些的反义词 — 也就是说,read only = Yes
等同于 writable = No
。
您指定的参数 Value
可以是自由格式的字符串、数字(包括特殊数值,如 IP 地址)、Boolean 值、变量或列表。Boolean 值可取以下两种真值:Yes
、True
和 1
是同义词,No
、False
和 0
是同义词。
在编写配置文件时,变量都以百分比符号(%
)开始,表示未知的信息。例如,%D
指服务器工作组或域名称;%h
指服务器的 DNS 名称;%H
指用户的主目录;%L
指服务器的 NetBIOS 名称;%u
指用户的用户名。
一些参数采取若干值的列表,如用户名的列表。在这种情况下,列表元素以逗号分隔,如 george, mary
是指 george
和mary
。在大多数情况下,smb.conf 文件忽视空白。如果您需要在值中包括空白,请将其括在引号中。
smb.conf 文件包含适用于 smbd
、nmbd
、winbindd
和其他 Samba 服务器和程序的选项。不同程序的选项是不分开的或明确区分的,但是有时候名称使参数应用于的守护程序更加明显。
您可以使用 smbcontrol
程序在 Samba 运行时对其进行控制。例如,您可以告诉 Samba 关闭特定共享、强制主浏览器选择、重新加载配置文件,等等。此命令的基本句法是:
smbcontrol [-i] [-s configfile] |
在使用 -i
选项时,smbcontrol
进入互动模式,其中您可以按顺序传递一系列命令,使您不必在每一个命令前键入smbcontrol
。destination
是服务器名称(smbd
、nmbd
或 winbindd
),all
用来发送消息到所有守护程序或进程 ID 号。message-type
是命令,如表 1 中所总结。parameter
是一些命令可能需要的可选参数。
命令(消息类型) | 含义 |
---|---|
close-share |
关闭参数指定的共享。 |
debug |
设置调试等级为参数指定的值。 |
force-election |
强制新的主浏览器选择。 |
debuglevel |
显示守护程序的当前调试等级。 |
printnotify |
发送消息到与打印机共享连接的客户端,在客户端队列状态中强制变更。 |
samsync |
将用户数据库与域控制器同步。(官方文档指示此函数当前不使用;请在您依赖它以前对其进行测试。) |
shutdown |
关闭指定的守护程序。 |
pool-usage |
显示指定守护程序的内存使用信息。 |
drvupgrade |
通知客户端新的打印机驱动程序可供使用。该命令采用打印机共享名作为参数。 |
reload-config |
强制服务器重新加载 smb.conf 文件。 |
Samba 提供一些关于如何验证用户的选项。最重要的是 security
选项,它取五种可能的值:
Share
。此安全模式尝试模拟 Microsoft® Windows 9x/Windows Me 操作系统使用的验证方法,其中忽略用户名且密码与共享关联在一起。要做到这一点,Samba 尝试将客户端提供的密码用于各种用户名。User
。此安全模式是默认的,它使用用户名和密码进行验证,这类似于 Linux 通常工作的方式。在现在系统的大多数情况下,密码存储于仅 Samba 加密的密码数据库中。Server
。如果您想要 Samba 遵从另一个服务器进行验证,请使用此验证方法。对于客户端,虽然此方法看上去像用户级验证,但是 Samba 联系通过password server
参数指定的服务器来进行实际的验证。Domain
。使用此方法,您可以完全加入 Windows 域,其看上去像针对客户端的用户级验证。与服务器级别验证不同,域验证涉及更安全的域级别密码交换。同时,完全加入域需要在 Samba 系统上或也可能在域控制器上运行额外的命令。ADS
。此验证方法工作非常像域验证;然而,其需要 Active Directory® Domain Services 域控制器。
作为一般规则,如果您的 Samba 服务器是 Windows 工作组(它是 SMB/CIFS 网络的基本形式)的成员,那么用户级验证是最佳的选择。工作组不同于域,主要是因为域提供域控制器,它是为域提供验证服务的服务器。要使用域控制器,您必须使用服务器级别、域级别或 ADS 级别 security
。服务器级别安全是最简单的配置但最不安全,而 ADS 级别安全最难于配置但最安全。
要完全加入域以获得域级别或 ADS 级别安全的,您必须在 smb.conf 文件的 [global]
部分中设置几个选项:
password server = DOMCONT |
DOMCONT
系统是域控制器。您还必须在应该加入域的 Samba 服务器上键入以下命令:
# net join member -U adminuser |
您还可能需要配置域控制器以便接受 Samba 服务器到域中。(目标 312.4 涵盖了 Samba 服务器的此主题。)
共享级别安全已经过时;它的存在主要是为了为旧的无法理解用户名的客户端提供兼容性。它对于一些您可能想提供最少安全的共享类型(如打印机共享)也是有用的。因为 Linux 需要帐户用于所有访问,所以 Samba 尝试针对一系列帐户而提供的密码直到获得一个匹配或它们都失败。这些帐户包括:
- 访客帐户(通过
guest account
参数设置),如果guest only = Yes
- 客户端提供的用户名(不是所有客户端都提供一个,而是只有一些客户端这样做)
- 用于客户端计算机的最后访问的用户名
- 被访问的共享名称
- 客户端的 NetBIOS 名
- 通过
username
参数指定的任何用户名
因为目前使用的大多数客户端都了解用户名,所以很少需要支持共享级别安全。使用它只会造成混乱并增加安全风险 — 针对如此多帐户检查密码,落入坏人之手的单个密码可能成为您服务器的重要风险。
学习 Linux,302(混合环境): Samba 角色的更多相关文章
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...
- Linux系统介绍与环境搭建准备
1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是 ...
- 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...
- 一步步学习Linux开发环境搭建与使用
00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...
- 学习Linux(一)环境搭建
零基础学习Linux(一)环境搭建 从本文开始我会为大家介绍一下linux环境下详细的集群环境安装.配置.部署到实例演示的整个过程.在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用. ...
- 在Windows环境中学习Linux
如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个 ...
- Linux开发环境搭建与使用——Linux必备软件之Samba
假如我们是在ubuntu环境上做对应的开发.有的时候,我们须要把我们写的程序共享给别人,或者,自己拷贝出来备份一份.我们习惯用U盘拷贝,假设须要频繁拷贝的话,这样会不太方便.这里给大家介绍一种更好的方 ...
- 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机
本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...
- 零基础学习Linux(三)linux与windows文件共享
上次的博文零基础学习Linux(一)环境搭建中我们已经将linux环境部署完毕了,接下来我们就可以在linux上进行软件的安装和环境的配置.但在进行这些操作之前,我们还需要解决一个问题——Linux与 ...
随机推荐
- mysql 筛选重复项(单列或者多列同时重复)
原文:https://blog.csdn.net/luyaran/article/details/80929026 -------------单列----------------------- SEL ...
- Android Service总结03 之被启动的服务 -- Started Service
Android Service总结03 之被启动的服务 -- Started Service 版本 版本说明 发布时间 发布人 V1.0 添加了Service的介绍和示例 2013-03-17 Sky ...
- OAuth:Access to shared resources via web applications
A web application which wants to gain access to shared resources should redirect the user to a page ...
- SIP SDP Profile-level-id解析
转自:http://blog.csdn.net/wh8_2011/article/details/53558504 基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如: video ...
- EditText添加表情
package com.kale.edittext02; import java.lang.reflect.Field; import java.util.Random; import android ...
- [转]Haproxy 1.5.0 正式发布,Web 负载均衡
From : http://www.oschina.net/news/53070/haproxy-1-5-0 经过 4 年的不懈努力,HAProxy 1.5.0 终于发布了! 相对于 1.4 版本来说 ...
- Reloading Java Classes 201: How do ClassLoader leaks happen? Translation
The original link : http://zeroturnaround.com/rebellabs/rjc201/ From ClassLoaders to Classes 从ClassL ...
- Cesium学习笔记(七):Demo学习(自由控制飞行的飞机)[转]
https://blog.csdn.net/umgsoil/article/details/74923013# 这是官方的教程Demo,名字叫Use HeadingPitchRoll,顾名思义,就是教 ...
- xenapp 6.5 客户端插件第一次安装总是跳到官网
部署完xenapp6.5后,在没有安装插件的客户端登录时,会出现“下载客户端插件”界面 其实网上已经有很多解决方案,大同小已,只是不知道为什么不适合我安装的版本而已.我安装时最新的版本xenapp 6 ...
- SCRIPT5009: “Sys”未定义 部署.net ajax 解决方案
今天在部署asp.net ajax 的时候发现部署服务器的时候,ajax刷新不正确,开始以为是System.Web.Extensions没有引用到本地,baidu一圈发现(最近google上不了郁闷~ ...