📄 0370samba.htm
字号:
</span>
4. <a href="#client">Samba 用户端软体功能</a><br />
<span class=text_h2>
4.1 <a href="#client_win">Windows 系统的使用</a>∶ <a href="#client_win_fire">WinXP 防火墙</a>,
<a href="#client_win_445"> port 445</a><br />
4.2 <a href="#client_linux">Linux 系统的使用</a>∶ <a href="#smbclient">smbclient</a>,
<a href="#smbmount">smbmount</a>, <a href="#nmblookup">nmblookup</a>,
<a href="#smbstatus">smbstatus</a><br />
</span>
5. <a href="#other">伺服器进阶管理</a><br />
<span class=text_h2>
5.1 <a href="#other_pdc">让 Samba 管理网域使用者∶PDC</a><br />
5.2 <a href="#other_faq">问题克服</a><br />
5.3 <a href="#other_smbpasswd">使用者修改自己的密码</a><br />
5.4 <a href="#other_acl">利用 ACL 配合单一使用者时的控管</a><br />
</span>
6. <a href="#review">重点回顾</a><br />
7. <a href="#ex">课后练习</a><br />
8. <a href="#reference">参考资料</a><br />
<span class=text_h2>
9. <a href="http://phorum.vbird.org/viewtopic.php?p=118976"
target="_blank">针对本文的建议∶http://phorum.vbird.org/viewtopic.php?p=118976</a><br />
</span>
</span>
</div>
<!-- 本文的正式部分 -->
<hr /><a NAME="before"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">本章的行前准备工作</span><br />
<div class=block1>
这一章的主要目的为介绍在不同的平台上面利用同样的协定来进行档案的传输,
其实主要就是让 Linux 与 Windows 主机之间能彼此透过『网路上的芳邻』这个方式来分享档案,
而最主要的目的就是当你的区域网路内办公用的主机大多是 Windows 系统时,
可以透过网芳来存取 Linux 主机上面的资源,让你不觉得有任何不一样!
而阅读之前你至少需要有底下的一些基础概念∶<br />
<ul>
<li><a href="0110network_basic.php">网路基础</a>是不能少的,尤其是 Samba 用到很多埠口;
<li><a href="0120intranet.php">区域网路架构的设定</a>也是要了解的啊!
<li><a href="../linux_basic/0610hardware.php#cups">印表机的设定与使用</a>也不能忘记呐!
</ul>
</div>
<hr /><a NAME="theory"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">什么是 SAMBA ?</span><br />
<div class=block1>
在这个章节中,我们要教大家跳的是热情有劲的<span class=text_import2>巴西 SAMBA 舞蹈</span>.....
喔不~搞错了~是要向大家介绍 <span class=text_import2>SAMBA</span> 这个好用的伺服器啦!咦!怪了!
怎么伺服器的名称会使用 SAMBA 呢?还真是怪怪的呢!那么这个 SAMBA 伺服器的功能是什么呢?另外,
他最早是经由什么样的想法而开发出来的呢?呵呵!底下就让我们慢慢的谈一谈吧!<br /><br />
<hr /><a NAME="theory_source"></a><img src="images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">SAMBA 的发展历史与名称的由来</span><br />
<div class=block2>
在早期的网路世界当中,档案资料在不同主机之间的传输大多是使用 <a href="0410vsftpd.php">FTP</a>
这个好用的伺服器软体来进行传送。不过使用 FTP 传输档案却有个小小的问题,
<span class=text_import2>那就是您无法直接修改主机上面的档案资料</span>!也就是说,您想要更改
Linux 主机上面的某个档案时,你必须要将该档案自伺服器上下载下来后才能修改。
也因此该档案在伺服器与用户端都会存在。这个时候,万一如果有一天您修改了某个档案,
却忘记将资料上传回主机,那么等过了一阵子之后,呵呵,您如何知道那个档案才是最新的?<br /><br />
<li><span class=text_import1>让档案在两部主机之间直接修改</span></li>
<div class=block2>
既然有这样的问题,那么好吧,我可不可以在用户端的机器上面直接取用 server 上面的档案,
如果可以在用户端直接进行 Server 端档案的存取,那么我在用户端就不需要存在该档案资料棉,也就是说,
我只要有 Server 上面的档案资料存在就可以啦!有没有这样的档案系统啊 (File System)!
很高兴的是,前面我们已经提过的 <a href="0330nfs.php">Network File System, NFS</a>
就是这样的档案系统之一啦!我只要在用户端将 Server 所提供分享的目录挂载进来,
那么在用户端的机器上面就可以直接取用 Server 上的档案资料棉,而且,
<span class=text_import2>该资料就像是我用户端上面的 partition 一般</span>,真是好用!<br /><br />
而除了可以让 Unix Like 的机器互相分享档案的 NFS 伺服器之外,在微软 (Microsoft)
作业系统上面也有类似的档案系统,那就是 <span class=text_import2>Common Internet File System,
CIFS</span> 这个咚咚啦!CIFS 最简单的想法就是目前常见的『<span class=text_import2>网路上的芳邻</span>』咯!
Windows 系统的电脑可以透过桌面上『网路上的芳邻』来分享别人所提供的档案资料哩!真是方便。
不过,NFS 仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。伤脑筋,那么有没有让
Windows 与 Unix-Like 这两个不同的平台相互分享档案资料的档案系统呢?<br /><br />
</div>
<li><span class=text_import1>利用封包侦测逆向工程发展的 SMB Server</span></li>
<div class=block2>
在 1991 年一个名叫 Andrew Tridgwell 的大学生就有这样的困扰,他手上有三部机器,分别是跑 DOS
的个人电脑、DEC公司的 Digital Unix 系统以及 Sun 的 Unix 系统。在当时, DEC 公司有发展出一套称为
PATHWORKS 的软体,这套软体可以用来分享 DEC 的 Unix 与个人电脑的 DOS 这两个作业系统的档案资料,可惜让
Tridgwell 觉得较困扰的是,Sun 的 Unix 无法藉由这个软体来达到资料分享的目的。<br /><br />
这个时候 Tridgwell 就想说∶『<span class=text_import2>咦!既然这两部系统可以相互沟通,没道理 Sun
就必需这么苦命吧?可不可以将这两部系统的运作原理找出来,然后让 Sun 这部机器也能够分享档案资料呢?</span>』,
为了解决这样的的问题,他老兄就自行写了个 program 去侦测当 DOS 与 DEC 的 Unix
系统在进行资料分享传送时所使用到的通讯协定资讯,然后将这些重要的资讯撷取下来,
并且基于上述所找到的通讯协定而开发出Server Message Block (SMB) 这个档案系统,而就是这套 SMB
软体就能够让 Unix 与 DOS 互相的分享资料棉!<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 再次的给他强调一次,在 Unix Like 上面可以分享档案资料的 file system 是 NFS,那么在 Windows
上面使用的『网路上的芳邻』所使用的档案系统则称为 Common Internet File System, CIFS
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div> </div>
<li><span class=text_import1>取名 SAMBA 的主因 ^_^</span></li>
<div class=block2>
既然写成了软体,想一想,总是需要注册一下商标吧!因此 Tridgwell 就去申请了 SMBServer
(Server Message Block 的简写) 这个名字来做为他撰写的这个软体的商标,可惜的是,因为 SMB
是没有意义的文字,因此没有办法达成注册。既然如此的话,那么能不能在字典里面找到相关的字词可以做为商标来注册呢?
翻了老半天,呵呵!这个 <span class=text_import2><b>S</b>A<b>MB</b>A</span> 刚好含有 SMB ,
又是热情有劲的拉丁舞蹈的名称,不然就用这个名字来做为商标好了!
这成为我们今天所使用的 SAMBA 的名称由来啦! ^_^
</div>
</div>
<hr /><a NAME="theory_using"></a><img src="images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">SAMBA 常见的应用</span><br />
<div class=block2>
由上面说明的 SAMBA 发展缘由,您就应该不难知道咯, SAMBA 最初发展的主要目就是要用来沟通 Windows 与
Unix Like 这两个不同的作业平台,那么 SAMBA 可以进行哪些动作呢?<br />
<ul><span class=text_import2>
<li>分享档案与印表机服务;
<li>可以提供使用者登入 SAMBA 主机时的身份认证,以提供不同身份者的个别资料;
<li>可以进行 Windows 网路上的主机名称解析 (NetBIOS name)
<li>可以进行装置的分享 (例如 Zip, CDROM...)
</span></ul>
底下我们来谈几个 SAMBA 伺服器的应用实例吧!<br /><br />
<li><span class=text_import1>利用软体直接编修 WWW 主机上面的网页资料</span></li>
<div class=block2>
相信很多人都是利用个人电脑将网页制作完毕之后,再以类似 FTP 之类的服务将网页上传到 WWW 主机的,
但这样有个困扰,那就是同时在用户端与 WWW 主机上头都有一份网页资料,常常会忘记哪一份是最新的,
最麻烦的是,有时候下载下来的档案已经经过好多修改了,却在下次的 FTP 作业,不小心又下载一次旧资料,
结果将已经修改过的资料覆盖过去~天呐!又要重写一遍.....真是讨厌!<br /><br />
如果你有安装 SAMBA 伺服器的设定的话,那么透过『网芳』的功能,直接连线远端伺服器所提供的目录,
如此一来你可以直接在你的个人电脑上面修改主机的档案资料,只有一份正确的资料而已喔!
这就有点像是『线上编修』呢,一修改完成,在 Internet 上面可以立刻检验,方便的很呐!<br /><br />
</div>
<li><span class=text_import1>做成可直接连线的档案伺服器</span></li>
<div class=block2>
在鸟哥实验室中,由于电脑数量不多,研究生常常会使用到不同的电脑 (因为大家都得抢没有人用的电脑啊!)
,此外,也常常有研究生拿自己的 NoteBook 来工作,因此,有些团队的资料就分散在各个电脑当中,使用上相当的不方便。
这个时候,鸟哥就使用 SAMBA 将硬碟空间分享出来,由于使用者要登入 SAMBA 这个伺服器主机时需要输入使用者资料
(帐号与密码),而不同的登入者会取得不一样的目录资源,所以可以避免自己的资料在公用电脑上面被窥视,
此外,在不同的公用电脑上面都可以登入 SAMBA 主机,资料的使用上面真是相当的棒啊!<br /><br />
</div>
<li><span class=text_import1>印表机伺服器</span></li>
<div class=block2>
SAMBA 除了分享档案系统外,也可以分享印表机喔,鸟哥的研究室好几部电脑就是直接以 Linux
分享的印表机来印制报告的。您会说『啊 Windows 也可以办的到啊!没有什么了不起的!』是啊。
但是因为 Linux 做为伺服器主机时,鸟哥认为 Linux 毕竟还是比较稳定一点,可以 24
小时且全年无休的努力工作呐。此外,因为目前透过『网路上的芳邻』来攻击区域网路的 Windows
作业系统的电脑病毒实在是太多了,防不胜防, Linux 对于这样的攻击并没有很大的影响
(因为常见的攻击手法均针对 Windows 而来~),所以也比较安全一些说~<br /><br />
</div>
SAMBA 的应用挺广泛的,尤其对于区域网路内的电脑来说,更是一项不可多得的好用的伺服器,
虽然或许你会说,SAMBA 的功能不过是模仿 Windows 的网芳以及 AD 相关的软体,
那我直接使用 Windows 不就 OK 了?可惜的是, <span class=text_import2>Windows XP 对于网芳的连线限制依版本而有所不同,
以企业常见的专业版 (Professional) 来说,他仅能提供最多同时十个连线到网芳的连线能力</span>,这.....不太够用吧!
所以棉,SAMBA 稳定、可靠又没有限制连线数,值得学习吧!^_^!更多的应用您可以自行发掘呐!<br /><br />
</div>
<hr /><a NAME="theory_netbios"></a><img src="images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">SMB 使用的 NetBIOS 通讯协定</span><br />
<div class=block2>
事实上,<a href="0330nfs.php">就像 NFS 是架构在 RPC Server 上面</a>一样, SAMBA
这个档案系统是架构在 <span class=text_import2>NetBIOS (Network Basic Input/Output System, NetBIOS)</span>
这个通讯协定上面所开发出来的。既然如此,我们当然就要了解一下 NetBIOS 棉!<br /><br />
最早 IBM 发展出 NetBIOS 的目的仅是要让区域网路内少数电脑进行网路连结的一个通讯协定而已,
所以考虑的角度并不是针对大型网路,因此,这个 <span class=text_import2>NetBIOS 是无法跨路由的
(Router / Gateway)</span>。这个 NetBIOS 在区域网路内实在是很好用,
所以微软的网路架构就使用了这个咚咚来进行沟通的呐!而 SAMBA 最早发展的时候,其实是想要让 Linux
系统可以加入 Windows 的系统当中来分享使用彼此的档案资料的,所以当然 SAMBA 就架构在 NetBIOS 发展出来棉。<br /><br />
不过 NetBIOS 是无法跨路由的,因此使用 NetBIOS 发展起来的伺服器理论上也是无法跨越路由的呢!
那么该伺服器的使用范围不就受限相当的多了?好在,我们还有所谓的 <span class=text_import2>NetBIOS over
TCP/IP</span> 的技术呢!这是什么样的技术啊?<br /><br />
举个例子来说好了,我们知道 TCP/IP 是目前网路连接的基本协定,现在我们将 NetBIOS 想成是一封明信片,
这个明信片只能让您自己欣赏而已,如果今天我们要将这个明信片送到远方的朋友那边时!就需要透过邮件系统
(例如邮局啦、国际快递啦等等的) 来传送了!这个 TCP/IP 就可以视为邮件传递系统啦!透过这个
NetBIOS over TCP/IP 的技术,我们就可以跨路由的使用 SAMBA 伺服器所提供的功能咯!
当然啦,目前 SAMBA 还是比较广泛的使用在 LAN 里面说。<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 或许您会发现在 Windows 网路设定里面常常看到 NetBEUI 这个咚咚,那是什么呢?那个是 NetBIOS Extened
User Interface 的简写,也是 IBM 在 NetBIOS 发展出来之后的改良版本。虽然这两者的技术不太相同,
不过,我们只要知道一些简单的概念就可以了!所以,在这里我们不针对 NetBEUI 来介绍。
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div> </div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -