识别 Samba 后台程序
Linux 服务器通常作为守护程序(daemon) 来实现,这一词源于希腊神话,其中守护神(daemon)是超自然生物。Linux 守护程序在后台运行以便执行一些有用的任务。Samba 服务器套件由几个守护程序组成,包括 smbd、nmbd 和 winbindd。swat 程序是另外一个 Samba 服务器,但是其通常都是从一个超级服务器运行,因此在技术上不是守护程序。
了解 smbd
smbd 程序提供 Samba 的大部分核心功能。其职责包括:
提供文件和打印机共享。此功能可以说是一个最重要的 Samba 职责,smbd 执行此功能。
验证用户。smbd 针对本地数据库验证用户或传递验证请求到另一台计算机。如果您的 Samba 服务器被配置为域控制器,则 smbd 还可从其他计算机响应验证请求。(在 设置您的安全模式 中将描述工作组和域配置)。
提供时间服务。Samba 可以告诉其他计算机当前的时间;smbd 可处理此细节。
默认情况下,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 和 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 提供一些关于如何验证用户的选项。最重要的是 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 服务器到域中。
共享级别安全已经过时;它的存在主要是为了为旧的无法理解用户名的客户端提供兼容性。它对于一些您可能想提供最少安全的共享类型(如打印机共享)也是有用的。因为 Linux 需要帐户用于所有访问,所以 Samba 尝试针对一系列帐户而提供的密码直到获得一个匹配或它们都失败。这些帐户包括:
访客帐户(通过 guest account 参数设置),如果 guest only = Yes
客户端提供的用户名(不是所有客户端都提供一个,而是只有一些客户端这样做)
用于客户端计算机的最后访问的用户名
被访问的共享名称
客户端的 NetBIOS 名
通过 username 参数指定的任何用户名

samba后台进程及安全模式简介的更多相关文章

  1. samba Doc

    Samba-HOWTO-Collection中文翻译版(2.20) 2013年08月23日 ⁄ 综合 ⁄ 共 19460字 ⁄ 字号 小 中 大 ⁄ 评论关闭 Samba计划文档 (初稿) Samba ...

  2. VM中 Ubuntu14.04 中Samba的安装配置和使用

    以前都是在Redhat 上搭建samba,现在改成在ubuntu12.04 上搭建发现 sudo /etc/init.d/samba restart  始终不行,原来,现在ubuntu下,启动服务要用 ...

  3. samba服务器安装测试

    samba服务器安装 1.简介 作用:samba文件服务器允许通过网络跨步同的操作系统进行文件共享. 2.安装samba服务器 $ sudo apt-get update $ sudo apt-get ...

  4. 实验二 Samba服务器配置

    实验二 实 验 基 本 信 息 实验名称:Samba服务器配置 实验时间:    年 月 日 实验地点: 实验目的: 了解Samba环境及协议 掌握Samba的工作原理 掌握主配置文件Samba.co ...

  5. linux学习笔记全-如何学习linux?

    简介 今天整理文件整理出了好多年前学习linux的笔记 就整理下发布在博客上怕文件形式会误删. linux入门基础对于新手而言不推荐看书!!不推荐看书!!(大牛跳过)先看视频看linuxcast的视频 ...

  6. Samba简介与配置(匿名&本地用户验证)

    Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实 ...

  7. samba服务简介

    1.1 Samba 概述Samba主要用于Windows和Linux之间的文件共享,也一样用于Linux和Linux之间的共享文件:不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS ...

  8. Samba 简介

    SMB 代表的是服务器消息块 (Server Message Block),它是用于在 Windows 上共享文件的协议的原始名称. CIFS 代表公共 Internet 文件系统 (Common I ...

  9. ubuntu samba 配置简介

    Ubuntu 11.04下虚拟机Samba的共享配置详细步骤 一. Ubuntu 11.04下Samba的安装: $ sudo apt-get insall samba                 ...

随机推荐

  1. C#基础语法总结

    C#笔记——基础篇 一.入门知识 VS中的常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+Z:撤销 Ctrl+S:保存(一定要经常保存!) Ctrl+J:快速弹出智能提示 Shift+End . ...

  2. 动软代码生成V2.74模版简介

    最近发现很多人用动软代码生成,确实方便,有些经验记录下,以后查看回顾. ..\Maticsoft\Codematic2\Template\TemplateFile 为模板文件夹,直接在目录下新建文件夹 ...

  3. 封装Socket.BeginReceive/EndReceive支持Timeout简介

    .NET中的Socket类提供了网络通信常用的方法,分别提供了同步和异步两个版本,其中异步的实现是基于APM异步模式实现,即BeginXXX/EndXXX的方式.异步方法由于其非阻塞的特性,在需考虑程 ...

  4. ref和out与SQL中的output

    什么时候会需要使用ref和out 有时,我们会需要获取某个值在方法中的运行状态,根据定义的方法,我们仅仅能够获得一个返回值,但是,有时我们也许想获取多个值,通过返回值就不能返回这样的信息,我们可以通过 ...

  5. Ubuntu中安装编译并测试HTK语音识别库

    1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...

  6. 02.Lua的数据类型

    简单认识Lua 百度了一下(偷哈懒就不自己写了) Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janei ...

  7. js实现网页收藏功能,动态添加删除网址

    <html> <head> <title> 动态添加删除网址 </title> <meta charset="utf-8"&g ...

  8. java并发编程_基本模块构建

    读<java并发编程实战>第五章学习记录:该章节主要介绍一些并发编程中一些基本的构建模块.如并发容器和并发工具类(闭锁和栅栏)以及一些需要注意的情况 并发容器 1. ConcurrentH ...

  9. 错误日志类C#

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

  10. GO实例3 Slice append打印

    package main import "fmt" func main(){ ]int slice:=array[:] slice[]='a' slice[]='b' s1:=ap ...