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)网络。

回页首

识别 Samba 后台程序

关于可选的 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 服务器套件由几个守护程序组成,包括 smbdnmbd 和 winbinddswat 程序是另外一个 Samba 服务器,但是其通常都是从一个超级服务器运行,因此在技术上不是守护程序。

了解 smbd

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 守护程序提供的服务。

了解 nmbd

第二个关键的 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。

了解 winbindd

第三个 Samba 守护程序是 Winbind 守护程序,即 winbindd。不同于 smbd 和 nmbdwinbindd 不为远程计算机提供服务;相反,它作为 Windows®(或 Samba)域控制器与本地计算机自己的可插拔验证模块(Pluggable Authentication Modules)工具之间的接口,允许域控制器来托管 Linux 帐户信息。

在许多分布上,winbindd 被安装在与 Samba 的其余分布不同的包中 — 通常在称为 winbind 或 winbindd 的包中。它还通常被分别发布。原则上,您可以在不运行 Samba 服务器或或甚至用作 SMB/CIFS 客户端的计算机上运行 winbindd,除了 winbindd是 SMB/CIFS 客户端之外。不过,在实践中,如果其正在运行 winbindd,那么您可能运行 Samba 服务器或使用 Linux 计算机作为 SMB/CIFS 客户端。

回页首

控制 Samba

控制 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 值可取以下两种真值:YesTrue 和 1 是同义词,NoFalse 和 0 是同义词。

在编写配置文件时,变量都以百分比符号(%)开始,表示未知的信息。例如,%D 指服务器工作组或域名称;%h 指服务器的 DNS 名称;%H 指用户的主目录;%L 指服务器的 NetBIOS 名称;%u 指用户的用户名。

一些参数采取若干值的列表,如用户名的列表。在这种情况下,列表元素以逗号分隔,如 george, mary 是指 george 和mary。在大多数情况下,smb.conf 文件忽视空白。如果您需要在值中包括空白,请将其括在引号中。

smb.conf 文件包含适用于 smbdnmbdwinbindd 和其他 Samba 服务器和程序的选项。不同程序的选项是不分开的或明确区分的,但是有时候名称使参数应用于的守护程序更加明显。

通过 smbcontrol 控制 Samba

您可以使用 smbcontrol 程序在 Samba 运行时对其进行控制。例如,您可以告诉 Samba 关闭特定共享、强制主浏览器选择、重新加载配置文件,等等。此命令的基本句法是:

smbcontrol [-i] [-s configfile]
smbcontrol [destination] [message-type] [parameter]

在使用 -i 选项时,smbcontrol 进入互动模式,其中您可以按顺序传递一系列命令,使您不必在每一个命令前键入smbcontroldestination 是服务器名称(smbdnmbd 或 winbindd),all 用来发送消息到所有守护程序或进程 ID 号。message-type 是命令,如表 1 中所总结。parameter 是一些命令可能需要的可选参数。

表 1. 文件系统卷和大小限制

命令(消息类型) 含义
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
domain logons = No
encrypt passwords = Yes

DOMCONT 系统是域控制器。您还必须在应该加入域的 Samba 服务器上键入以下命令:

# net join member -U adminuser
			

您还可能需要配置域控制器以便接受 Samba 服务器到域中。(目标 312.4 涵盖了 Samba 服务器的此主题。)

共享级别安全已经过时;它的存在主要是为了为旧的无法理解用户名的客户端提供兼容性。它对于一些您可能想提供最少安全的共享类型(如打印机共享)也是有用的。因为 Linux 需要帐户用于所有访问,所以 Samba 尝试针对一系列帐户而提供的密码直到获得一个匹配或它们都失败。这些帐户包括:

  • 访客帐户(通过 guest account 参数设置),如果 guest only = Yes
  • 客户端提供的用户名(不是所有客户端都提供一个,而是只有一些客户端这样做)
  • 用于客户端计算机的最后访问的用户名
  • 被访问的共享名称
  • 客户端的 NetBIOS 名
  • 通过 username 参数指定的任何用户名

因为目前使用的大多数客户端都了解用户名,所以很少需要支持共享级别安全。使用它只会造成混乱并增加安全风险 — 针对如此多帐户检查密码,落入坏人之手的单个密码可能成为您服务器的重要风险。

学习 Linux,302(混合环境): Samba 角色的更多相关文章

  1. android开发学习---linux下开发环境的搭建&& android基础知识介绍

    一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  2. Linux系统介绍与环境搭建准备

    1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心.   操作系统的作用是 ...

  3. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

  4. 一步步学习Linux开发环境搭建与使用

    00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...

  5. 学习Linux(一)环境搭建

    零基础学习Linux(一)环境搭建 从本文开始我会为大家介绍一下linux环境下详细的集群环境安装.配置.部署到实例演示的整个过程.在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用. ...

  6. 在Windows环境中学习Linux

    如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个 ...

  7. Linux开发环境搭建与使用——Linux必备软件之Samba

    假如我们是在ubuntu环境上做对应的开发.有的时候,我们须要把我们写的程序共享给别人,或者,自己拷贝出来备份一份.我们习惯用U盘拷贝,假设须要频繁拷贝的话,这样会不太方便.这里给大家介绍一种更好的方 ...

  8. 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机

    本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...

  9. 零基础学习Linux(三)linux与windows文件共享

    上次的博文零基础学习Linux(一)环境搭建中我们已经将linux环境部署完毕了,接下来我们就可以在linux上进行软件的安装和环境的配置.但在进行这些操作之前,我们还需要解决一个问题——Linux与 ...

随机推荐

  1. Oracle Apps DBA R12.2 Syllabus

    1. What is Oracle R12.2 R12.2 Definition Architecture Advantages of R12.2 Limitations of R12.2 What ...

  2. 一篇linux的通讯文章

    今年的linux内核开发大会上,google的开发人员也上台做了名为“how google use linux”的演讲.我斗胆翻译注解一番――括号内为注解,欢迎读者斧正. 原文链接参见:http:// ...

  3. SharePoint 内容编辑器部件介绍

    前言 在SharePoint的使用过程中,我们经常会往页面中插入一些东西,这时候很可能就需要内容编辑器部件了.比如:插HTML.插样式.插脚本.插图片,统统都拿来,用内容编辑器部件. 正文 使用内容编 ...

  4. Android之Android apk动态加载机制的研究

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/22597587 (来自singwhatiwanna的csdn博客) 背景 问题 ...

  5. .AVLFile Extension

    .AVLFile Extension File Type 1ArcView Legend File   Developer ESRI Popularity           4.1 (7 Votes ...

  6. HTTPS安全证书介绍

    IIS配置web SSL 安全证书Https访问 From : http://cao416451347ming.blog.163.com/blog/static/1154556162010217441 ...

  7. python的日志模块:logging;django的日志系统;django日志输出时间修改

    Django的log,主要是复用Python标准库中的logging模块,在settings.py中进行配置 源代码 1.__init__.py包含以下类: StreamHandler Formatt ...

  8. java将XML文档转换成json格式数据

    功能 将xml文档转换成json格式数据 说明 依赖包:1. jdom-2.0.2.jar : xml解析工具包;2. fastjson-1.1.36.jar : 阿里巴巴研发的高性能json工具包 ...

  9. Parallels Desktop与VirturalBox对比

    笔者用了这两款产品,Parallels 和VirtualBox. 下面各讲下各自的优势吧. 先说说Parallels:Parallels和Mac的系统整合非常紧密,并且对于Mac系统,在性能上有很大的 ...

  10. 8Manage PMP 项目管理工具

    范围与需求管理 8Manage 项目管理平台提供先进的机制集中管理项目的范围与需求: 提供需求申请功能:获取,过滤,解析和明确项目的需求 提供需求矩阵功能:整理分析需求并跟踪需求从开始到完成的整个过程 ...