学习 Linux,302(混合环境): 概念
http://www.ibm.com/developerworks/cn/linux/l-lpic3-310-1/
在本文中,学习以下概念:
- Server Message Block (SMB)/Common Internet File System (CIFS)
- 文件共享
- 打印服务
本文帮助您准备 LPI 的 Mixed Environment 特性考试(302)的主题 310 下的目标 310.1。该目标的权值为 1。
为了最有效地利用本系列中的文章,您应该具有高级 Linux 知识,并需要准备一个 Linux 系统,用于练习本文介绍的命令。另外,您应该能够访问一个用于测试文件和打印访问的 Windows 环境。
关于可选的 LPI-302 考试
与其他许多认证一样,Linux Professional Institute Certification (LPIC) 提供多个不同级别,每个级别都比前一个级别要求更多知识和经验。LPI-302 考试是 LPIC 层级的第三级中的一个可选特性考试,要求具有高级 Linux 系统管理知识。
要通过 LPIC 级别 3(LPIC-3)认证,您必须通过前两个一级考试(101 和 102),两个二级考试(201 和 202),以及 LPIC-3 核心考试(301)。到达这个级别后,才能参加一些可选特性考试,比如 LPI-302。
文件和打印共享的目标是支持计算机使用其他计算机上的磁盘和打印机,就好像它们是本地连接的一样。这个功能允许更多人使用相同的昂贵资源并从任意位置访问那些资源。作为中央资源,文件和打印机可能被更严格地控制和审计,如果需要的话。
一个文件和打印共享解决方案的理想属性包括:
- 此解决方案应该是网络独立的 — 即,独立于它在其上运行的网络类型(以太网、令牌网)。
- 应用程序应该不需要知道它们访问的是本地磁盘上的文件还是远程磁盘上的文件,也不需要知道它们正在打印到本地打印机还是远程打印机。
- 应该有一些方法来协调对同一个资源的多个同步请求,比如两个人想要同时打印到同一台打印机。
- 此解决方案应该实现某种类型的身份验证系统来理解谁正在请求一个资源,并实现一个授权系统来决定是否向其授予访问权。
构建您自己的提要
您可以构建一个 RSS、Atom 或 HTML 提要,以便在我们添加新文章或更新内容时收到通知。访问developerWorks RSS 提要。选择 Linux 作为专区,Articles 作为类型,输入 Linux Professional Institute
作为关键字。然后选择您想要的提要类型。
有几种方法可以共享文件和打印机。许多 UNIX 工具,比如 Berkeley 打印系统,从上世纪 80 年代初期起一直具有网络意识。Sun Microsystems 于 1984 年引入了 Network File System (NFS),NFS 允许 UNIX 计算机通过网络装载文件系统。IBM 和 Microsoft 使用 SMB 协议来执行许多网络共享任务,包括共享文件和打印机。文件和打印共享可以通过专用服务器、单独的工作站或者二者的结合来执行。
即使是从工作站共享文件,拥有用于共享的磁盘资源的设备也称为服务器,访问磁盘的设备称为客户端。服务器用于导出文件系统(UNIX 术语),或者共享磁盘和目录(Windows 术语)。然后,客户端将文件系统装载为一个本地磁盘或连接,以便共享。
共享关系的性质可以是临时的,也可以是长期的。客户端可以连接到服务器,获取几个文件,然后断开连接;客户端也可以一直保持连接,直到重新启动。客户端可以将远程文件系统视为一个本地磁盘或本地文件系统的一部分;它也可以选择在应用程序层访问资源,就像 File Transfer Protocol (FTP) 客户端所做的那样。
文件共享的另一个相关特性是概念浏览(browsing)。浏览允许客户端找到网络上的服务器 — 通常从一个动态填充的列表。
打印机可能没有直接连接到服务器,因此可能出现多种级别的共享。当多个客户端都配置同一台打印机时,它们通常通过一个名为后台处理程序(spooler)的服务来完成配置。后台处理程序的工作是管理打印作业列表,也称为打印队列。当多人提交打印作业时,后台处理程序将作业存储到磁盘。一旦打印机闲置,后台处理程序就可以将作业发送到打印机,而不必担心其他打印作业争用。
即便可以将多台打印机连接到网络,也通常使用一个服务器作为后台处理程序,该服务器然后通过网络打印到打印机。这样做的原因有三点:第一,与打印机相比,服务器可能拥有一个更大、更健壮的缓存区;第二,服务器能够进行访问控制;第三,服务器能够分发打印机驱动程序,如果需要的话。
SMB 是一个协议,而不是一个实现。这个协议已经在许多不同的操作系统中实现 — 从 Windows 到 UNIX 甚至到大型机环境。
SMB 起源于 IBM,但 Microsoft 在上世纪 90 年代初开始联网其产品时将其实现。那时,SMB 需要一个单独的产品,比如 LAN Manager 或 Windows for Workgroups,但文件共享在 Microsoft Windows NT 中最终成为常规操作系统的一部分。
为了在其操作系统中引入一些新特性,Microsoft 继续改进 SMB,最终诞生了一个名为 CIFS 版本,CIFS 然后被提交到 Internet Engineering Task Force 进行标准化。
大约与此同时,澳大利亚的一位博士生 Andrew Tridgell 开始反向工程 SMB 的一个大型机实现,并开始开发一个最终成为开源实现的 SMB 实现和一些称为 Samba 的 Microsoft 协议。这个项目开始作为一种文件移动方法,现在已经发展为一个完整的客户端和服务器实现,包括充当一个 Windows 域控制器和不久以后将充当一个 Active Directory 服务器的能力。
从技术上讲,CIFS 是一种 SMB 方言。SMB 协议多年来一直在修改,因此,客户端和服务器有必要协商使用哪种协议方言。CIFS 引用 NT LAN Manager (NTLM) 系列扩展。奇怪的是,这个协议并不使用字符串 CIFS
来标识自身,而是使用 NT LM 0.12
。
出于实际应用目的,SMB 和 CIFS 这两个术语可以互换,这是因为现在使用的是 SMB 的 CIFS 方言。CIFS 偶尔会被发音为“siffs”,而不是拼写为 SMB。
作为一个客户端-服务器协议,客户端与服务器进行联系。SMB 开始需要一个称为 Network Basic Input/Output System(NetBIOS) 的应用程序编程接口(API)层。这个 API 提供 SMB 使用的几个服务,以及几个名称解析和网络浏览相关服务。与 NetBIOS 联用时,SMB 可以在下面的网络上运行:
- Raw Ethernet,这时,SMB 使用 NetBIOS Frames(通常称为 NetBEUI)
- Novell Internetwork Packet Exchange (IPX)/Sequenced Packet Exchange(SPX),这时,SMB 使用 NetBIOS over IPX/SPX (NBX)
- TCP/IP,这时 SMB 使用 NetBIOS over TCP/IP (NBT)
NetBIOS 向 Microsoft 网络提供三个关键服务:
- 名称服务,以发现网络上的主机
- 会话服务,用于客户端和服务器之间的可靠通信和传输
- 数据报分布服务,用于小消息和网络广播
因此,SMB 主要利用会话服务,但也要依赖其他两种服务的支持,比如使用名称服务来查找服务器地址。
最终,TCP/IP 的支配地位和 Microsoft 转为依赖 Domain Name System (DNS) 进行名称解析导致 SMB 以一种称为直接托管(direct hosting)的方式直接在 TCP/IP 之上运行。尽管 NBT 在 TCP 和 User Datagram Protocol (UDP) 端口 137-139 上运行,直接托管使用 TCP 和 UDP 端口 445。
图 1 展示了 Open Systems Interconnection (OSI) 模型,该模型用于解释网络协议之间的交互。OSI 描述使应用程序通过网络工作所需的特性并将那些特性分解到一系列层中。每一层都使用下面的层提供的服务,并向上面的层提供服务。
层 1 和层 2 分别是物理层和数据链接层,通过以太网实现。这两个层从一个网络跳到另一个网络,收集小型信息片段。TCP 和 IP 占据下面两层,分别是传输和网络层。网络层负责端到端连通性,而传输层允许从小型消息构建大型消息,并允许一个服务器上存在多个服务。每一层都使用它下面的层,因此网络层不必担心网络上的每次跳转如何使用物理和数据链接等问题。
在使用 NetBIOS 的网络上,会话层 被使用。会话层提供此前描述的会话服务。SMB 在应用程序层(这里没有使用呈现层)操作,这意味着它能利用下面的层提供的所有特性。
在不使用 NetBIOS 的网络上,会话层将被简单地省略。TCP 已经有能力处理大多数会话服务,而名称服务则由 DNS 处理。
在 Internet 上,您已经熟悉了统一资源定位符(URI),比如 http://ibm.com/developerworks
。URI 标识特定文档或其他内容所处的位置。在上面的示例 URI 中,http
指的是主题 — 在本例中,文档将使用 HTTP 检索。请求内容的主机名为ibm.com
,/developerworks
指那个主机上被请求的资源。
类似地,Uniform Naming Convention (UNC) 路径标识 Windows 网络资源。UNC 路径看起来类似于\\shorty\documents\public\photo.jpg
。UNC 路径从两个反斜杠(\\
)开始,然后依次是服务器名称,又一个反斜杠,共享文件夹名称,以及一个针对共享文件夹的相对路径,该路径标识资源路径。
UNC 与 URI 有几点区别:
- 不必使用主题,而 SMB 使用主题。
- 使用反斜杠而不是正斜杠(
/
);尽管有时也可以使用正斜杠。 - 共享文件夹看起来就像资源名称的一部分,但引用的是服务器上的文件共享的名称,它不必存在于服务器的文件系统上。
Samba 宣称自己为“Linux 和 UNIX 程序的标准 Windows 互操作性套件”。尽管 Linux 和 UNIX 风格渗透到装载 SMB 文件共享的其他方法中,但更贴近 Samba 的功能的说法是,Samba 既是客户端又是服务器,或者更进一步,Samba 是进入 Windows 网络的一个集成点。
Samba 包含几个在后台运行并提供服务的守护进程和几个用于与 Windows 或 Samba 服务交互的命令行工具。本文章系列将详细讨论这些守护进程和工具,但其中一些需要特别注意的二进制文件是:
- smbd。 这个守护进程充当 SMB 文件和打印服务器。
- nmbd。 这个守护进程提供 NetBIOS 命名服务。
- mount.cifs。 这个工具将一个远程 SMB 文件系统装载到本地 UNIX 文件系统上,很像一个本地磁盘或 NFS 共享。
- smblient。 这个工具提供对 SMB 资源的命令行访问,很像一个 FTP 客户端。它还能列示远程服务器上的共享并浏览网络。
- smb.conf。 这不是一个工具,而是所有工具的配置文件,因此值得在二进制文件上下文中指出。
与其他开源软件一样,可以从源代码编译 Samba 或将其下载为您的发行版的一部分。它通过系统初始化脚本和配置文件管理。
学习 Linux,302(混合环境): 概念的更多相关文章
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...
- Linux系统介绍与环境搭建准备
1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是 ...
- 学习 Linux,302(混合环境): Samba 角色
http://www.ibm.com/developerworks/cn/linux/l-lpic3-310-2/ 概述 在本文中,了解下列概念: Samba 安全模式 核心 Samba 守护程序的角 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----基本概念及操作
本节联练习主要有: 1.环境介绍 2.常用 Shell 命令及快捷键 3.Linux 使用小技巧 一.Linux 桌面环境介绍 相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形 ...
- 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...
- Linux的几个概念,常用命令学习
Linux的几个概念,常用命令学习---------------------------------设备名装载点// 通过装载点访问设备-------------------------------- ...
- 学习Linux(一)环境搭建
零基础学习Linux(一)环境搭建 从本文开始我会为大家介绍一下linux环境下详细的集群环境安装.配置.部署到实例演示的整个过程.在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用. ...
- 在Windows环境中学习Linux
如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个 ...
- 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机
本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...
- 零基础学习Linux必会的60个常用命令
Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令. ...
随机推荐
- Android开发中,比较有特色的特性(与iOS相比)
1.界面代码和界面控件元素时时联动.同步 2.当我们创建一个Activity时,系统自动帮我们维护strings.xml 文件和AndroidManifest.xml文件. 3.有来无回,删除.修改时 ...
- 在websocket中怎么样注入service类
最近项目中用到了websocket,遇到很多问题,其中一个是@ServerEndpoint修饰的类无法注入其他的bean,注入的对象都是null,在网上找了好多资料,无意中发现一个朋友的答案给了思路. ...
- 如何解决SSH连接Linux超时自动断开?
最近项目开发中用到云服务器,部署了MySQL,开发团队总是反映MySQL过一会儿就断开连接了,必须手动重连才可以.反映越来越强烈,已经到了影响开发进度的高度了,必须解决! 查了资料,这个可能和SSH超 ...
- 【凯子哥带你学Framework】Activity界面显示全解析(下)
咱们接着上篇继续讲,上篇没看的请戳:[凯子哥带你学Framework]Activity界面显示全解析(上) 如何验证上一个问题 首先,说明一下运行条件: //主题 name="AppThem ...
- [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法
cp: https://blog.csdn.net/zengyonglan/article/details/53304487 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时 ...
- 转帖:向开源项目贡献源码(以 Orchard 为例)
原文地址:http://yangw80.blog.163.com/blog/static/247518002201552692516908/ 在开源项目满天飞的时代,仅仅把开源项目拿来用是不够的,要适 ...
- java操作mongodb(连接池)(转)
原文链接: java操作mongodb(连接池) Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接.我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置.因为Mong ...
- require.js 最佳实践【转】
https://www.cnblogs.com/digdeep/p/4607131.html require.js是一个js库,相关的基础知识,前面转载了两篇博文:Javascript模块化编程(re ...
- Linq to Sql并发冲突及处理策略
0. 并发冲突的示例 单用户的系统现在应该比较罕见了,一般系统都会有很多用户在同时进行操作:在多用户系统中,涉及到的一个普遍问题:当多个用户“同时”更新(修改或者删除)同一条记录时,该如何更新呢? ...
- 简单使用Google Analytics监控网站浏览行为
之前对网页做用户转化率调查这块,找到了谷歌GA事件,现在有时间对使用方法和遇到问题做个简单记录.官方文档其实也介绍的比较清楚,可以查看官方文档. 首先,在官网申请UA-id,然后在主页加入如下代码: ...