Tux 知道分享是美好的,第五部分
那么,如果您一直在关注本系列的过去四篇文章,您现在已经运行了 NFS,NIS 服务器和一些客户端,并且由于您新的老朋友 Linux automounter,所有这些共享都在自动挂载和卸载。生活不能更美好了。直到……市场部的那个家伙决定他想让您备份他们部门的 PC,并且由于他们的空间都快用完了(那些 Flash 游戏占用了大量空间),他希望您在网络上设置一台 NT 服务器来做这两件事。您无语了,而且您的血压正在升高。安装 NT?绝不!
幸运的是,您运行的是 Linux,为 Windows 客户端提供文件空间不过是跳个小舞就能解决的事情。不,不是在他头上跳舞。我说的是一点 Samba,这个用于其他操作系统的 Linux/UNIX 文件和打印服务程序。嘿,为什么不让那些市场部的人也共享打印机呢?他们不会感激,但您会从中获得极大的满足感 <此处插入适当的笑脸>。对于那些在家中有一两台 Windows 95 工作站和您的 Linux 服务器并排坐着的人来说,这也是为您准备的。
Samba 最初是由 Andrew Trigdell 在澳大利亚开发的。使用 SMB(服务器消息块)协议,Samba 使得在惊人广泛的操作系统之间共享资源成为可能。SMB,像许多网络协议一样,随着开发人员做他们所做的事情而不断发展。因此,当前版本的 SMB 协议(或者如果您喜欢,可以称之为化身)实际上称为 CIFS,即通用 Internet 文件系统。嘿,我不是编造这些东西。如果您想知道 NetBIOS 在这个图中处于什么位置,SMB 就是从它演变而来的,尽管 NetBIOS 与其说是一种协议,不如说是一个 API(应用程序编程接口),旨在为创建 LAN 软件提供构建块。为了尽可能简洁,我不会再追溯到更早的时候了。
现在,尽管我开玩笑地谈论 Windows 和市场部的家伙,Samba 可以在 Windows 95/98/NT、OS/2、VMS、AIX、HPUX、Linux(当然)和许多其他系统之间提供文件共享服务。虽然大多数人倾向于将 Samba 视为我们用 Linux 机器替换 NT 服务器的手段,但 Samba 比这灵活得多。例如,办公室里唯一的 Windows PC 安装了 Microsoft 网络客户端,因此它可以共享“网上邻居”中的文件。如果您还记得我在上一篇文章中的例子,我不仅共享了 PC 的 C 盘,而且还自动挂载了它。这里是一个回顾。
# Windows PCs natika_c -fstype=smb,username=natika,password=secret ://speedy/natika_c
我也可以像这样挂载该驱动器。
mount -t smbfs -o username=natika,password=secret //speedy/natika_c /mnt/natika
哦!Susan Aglukark 现在在唱歌,那很适合跳舞。
如果我在我的 Linux 服务器上定义了一个 Samba 共享,我可以从另一台 Linux 服务器挂载它,就像我挂载一个 Windows 共享一样。我有一台小型笔记本电脑(名为 wiltravl)运行 Linux。在一台稍大的服务器(名为 testsys)上,我运行了 Samba。它有一个名为 winstuff 的共享。使用 NFS,我会使用 -t 标志指定 NFS 作为文件系统类型,传递适当的选项,并告诉它我们要挂载到的目录。
# mount -t smbfs -o username=marcel,password=itsasecret //testsys/winstuff /mnt/winstuff
顺便说一句,该命令都在一行上。现在,如果我执行 df,我将看到文件系统作为我的本地驱动器之一挂载。
[root@wiltravl /root]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 1517920 1405640 35172 98% / /dev/hda5 2514172 1737840 648620 73% /data1 //testsys/winstuff 6109952 4611072 1498880 75% /mnt/winstuff
非常酷的东西。使用 Samba,我还可以使打印机可供网络上的 Windows 机器使用。没有什么能阻止我从 Linux 使用 Samba 导出的打印机。如果您愿意,您甚至可以使用 Samba 作为您网络上的文件共享系统,如果心情好,可以替换 NFS(我们稍后会讨论)。这是一种魔力(注意到专栏中的音乐主题了吗?)。
无论如何,为了让这种魔力发生,我们需要让 Samba 启动并运行。几乎每个 Linux 发行版 CD-ROM 都带有一个 Samba 版本,这使得使用 RPM 或 dpkg(取决于您的发行版)进行安装非常简单。你们 Debian 用户当然可以使用 apt-get 从 Debian 站点拉取最新的发行版。但是,如果您真的想要最新和最好的版本,那么您需要访问 Samba 网站。
转到下载部分。最新的源代码总是被称为 samba-latest.tar.gz。如果您愿意,您还可以找到各种平台的最新二进制文件,但它们不一定像源文件那样是最新的。要从源代码构建和安装 Samba,请将 tarball 解压缩到临时目录中,并按照以下步骤操作。
tar -xzvf samba-latest.tar.gz
这将创建一个以 Samba 源代码的当前发布版本号为后缀的目录。
cd samba-2.0.7 more README cd source ./configure make make install
默认情况下,Samba 将安装在 /usr/local/samba 目录中。如果您希望将其安装在另一个目录结构中,那么您可以在执行 ./configure 步骤时使用 --prefix=/path/to_dir 标志。安装完成后(假设您接受了默认值),我们需要创建一个 Samba 配置文件,该文件将位于 /usr/local/samba/lib 中。最简单的方法是将源代码随附的示例文件复制到相应的目录中。
cd /tmp_install_dir/samba-2.0.7/examples cp smb.conf.default /usr/local/samba/lib/smb.conf
我正在听的 CD 上开始播放一首新歌。是 Diana Krall...那种缓慢的爵士声音不太像 Samba,但这没关系。
使用您最喜欢的编辑器(是的,我的是 vi),打开 smb.conf 文件并更改这两个参数:一个是名为 “workgroup = ”,另一个是 “server string = ”。对于 workgroup 参数,我将其命名为 “ROCKGROUP”,服务器名称为 “Marcel's Musical Samba Server”。现在,让我们启动 Samba 守护进程。
# /usr/local/samba/bin/smbd -D # /usr/local/samba/bin/nmbd -D
您需要将其添加到 rc.local 中的启动脚本中。(如果您正在寻找有关如何执行此操作的详细信息,我在 过去的文章中介绍过。)假设您的服务器名为 “myserver”。要测试 Samba 并查看您是否做对了所有事情,请键入以下命令。
/usr/local/samba/bin/smbclient -L myserver
如果一切顺利,您应该在屏幕上看到如下内容。
added interface ip=192.168.1.100 bcast=192.168.1.255 nmask=255.255.255.0 Password: Anonymous login successful Domain=[ROCKGROUP] OS=[Unix] Server=[Samba 2.0.7] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Marcel's Musical Samba Server) lp Printer hp710c Printer colour Printer win Printer Server Comment --------- ------- Workgroup Master --------- -------
我一直想要自己的摇滚乐队。说到魔力,您注意到了吗?除了使用有效的配置文件启动 Samba 之外,我什么也没做,我的打印机就作为网络上的资源可用了。无需单独定义每台打印机,Samba 默认它们是共享资源(毕竟您正在运行服务器)。
因此,再一次,我必须结束本周的专栏了。这是另一个 重要 的主题,我肯定无法在一篇专栏中涵盖所有内容。在我离开之前……我知道我不是每周都这样做,但我想感谢所有给我写信、评论以及为本系列提供建议或想法的人。你们知道自己是谁,我感谢你们的投入。现在,您卑微的极客和叙述者必须告别了(伴随着 Barenaked Ladies 的声音)。直到我们下次在这个 <夸张> 整个万维网上最阳光的角落 </夸张> 相遇,请记住您妈妈说过的话,“分享是美好的”。
正在寻找本系列过去的文章? 点击此处查看列表。