为您的环境编译、安装和配置 Samba
Daniel Robbins
总裁/CEO,Gentoo Technologies, Inc.
内容:
下载 Samba
编译和安装
配置服务器
安全性选项
测试共享
创建用户
最终配置
启动 Samba
配置客户机
进行测试
下一次
参考资料
关于作者
在他的上一篇文章中,Daniel 介绍了 Samba 的用途。现在该让它在系统上运行了。在本文中,他将指导您完成 Samba(版本 2.0.7)的编译、安装和最初的配置,使它可以在您的环境中使用。
下载 Samba
现在应该从 Samba.org 网站上下载 Samba 2.0.7 或更高版本(请参阅本文后面的参考资料)。选择最近的镜象站点后,单击 \"download\"(下载)链接。这时我们开始准备下载源代码了。您可以在页面中间紧接着 \"Download\" 标题后的那一段中找到正确的链接。我说明这一点是因为人们很容易错过这段,而导致不知道应该在哪个链接上单击。
安装说明:
要从头开始编译 Samba,可以选择从二进制软件包(例如和 Linux 发行版一起提供的 RPM)中安装 Samba。这当然可以。但如同我在上一篇文章中讲到过的,如果您这样做,文件位置与在这里所引用的会有略微不同。
下载了 Samba 2.0.7 或更高版本后,就可以把它解压缩到您选择的目录位置中了。从命令提示上输入:
% tar xzvf samba-2.0.7.tar.gz
将创建一个 samba-2.0.7 目录。cd 到它,然后查看它包含的内容。首先请注意 docs 目录。在这个目录中,可以看到另一个称为 textdocs 的目录。texdocs 包含整个 Samba 文档集。在 textdocs 目录中一个最重要的文件是 DIAGNOSIS.txt。如果您在使用相应的 Samba 操作时遇到了一些问题,它会指导您完成问题诊断的一步一步的过程。我们会介绍在该文件中提到的某些诊断过程,但不是全部。
编译和安装 Samba
还需要关注一下主 samba-2.0.7 目录中的 sources 目录。在 sources 中,可以找到一个设计完美的配置脚本,它是为正确建立所有 makefile 而设计的。和所有其它配置脚本一样,要获得配置选项的列表,输入:
$ ./configure --help
可以将输出定向到 \'more\',这样就能查看所有的选项:
$ ./configure --help | more
请注意目录和文件名选项。要注意每个文件的安装位置,缺省的安装路径是 /usr/local/samba。 可以在配置 Samba 时通过传递 \"--prefix=/usr/local\" 选项来将它更改为 /usr/local。 例如,我将使用以下路径设置:
$ ./configure --prefix=/usr/local --localstatedir=/var/log --sysconfdir=/etc
上述配置选项会导致除配置文件以外的 Samba 的缺省树都在 /usr/local 中。Samba 将在 /etc 中查找这些文件,而日志文件往往在 /var/log 中。如果省略这些配置选项, 可以在 /usr/local/samba(/usr/local/samba/var、/usr/local/samba/etc 等等)目录中找到所有文件。
现在可以开始进行编译了。运行完配置后,输入:
$ make
编译完成后,以 root 输入以下命令来安装软件:
# make install
配置服务器
配置通常是从 smb.conf 文件开始和结束的。这是 Samba 的主配置文件。它有许多不同的配置选项。为避免混淆,我们只介绍一些对于 Samba 正确操作必不可少的那些选项。首先,需要找出 smb.conf 的位置。如果使用我在上面指定的那些配置选项,应该将 smb.conf 放在 /etc 中。如果使用缺省路径,Samba 将在 /usr/local/samba/etc 中查找它。要开始使用,cd 到相应的目录,启动您常用的文本编辑器,然后输入以下几行。我会随时提供一些注释,帮助您理解每个选项都起什么作用。将以下几行添加到 smb.conf 文件中:
[global]
workgroup = YOURWORKGROUP
security = user
encrypt passwords = yes
guest account = guest
第一行告诉 Samba 我们将选项放在了 \"global\" 那一节。有许多选项只能在这一节中定义。 这些选项控制着 Samba 的整体行为。
第二行告诉 Samba 它将创建的 Windows 工作组的名称。用您工作组的相应名称来替代 YOURWORKGROUP。
在第三行上,我们告诉 Samba 以用户级别的安全性方式来运行。 这个选项将导致 Samba 通知所有连接的 Windows 客户机,它们需要提供有效的用户名/口令组合来获得对任何网络资源的访问。这绝对是个好办法。用户级安全性是 Samba 最常用的安全性级别,因为它是绝大多数文件共享情况下的最佳方案。但也可以使用其它的安全性级别。有一种方便的方式,它告诉 Samba 根据现有 Windows NT 或 2000 Server 的安全性数据库来认证所有用户。在这篇文章中将不介绍这种特定方式。如果希望了解有关它的更详细信息,请查看 smb.conf 主页的 \"security\"(安全性)选项。
现在该轮到第四行了。在这里,我们告诉 Samba 与 Samba 之间以加密方式交换口令。 通常您总是希望以加密方式运行 Samba,除非所有客户机都极其古老(例如 Windows for Workgroup 时代的机器)。支持加密口令的确会使 Samba 除了标准 Unix 口令数据库以外还需要自己的口令文件。如果您认为不使用加密口令比较好,从而可以避免维护两个口令文件,千万不要这么做!不使用加密口令将导致在 Windows 2000 以及不太旧版本的 Windows NT 4.0 中产生共享问题。如果确实希望避免维护两个单独数据库,Samba 提供了几种同步两个数据库的方法,这将是一种比较好的办法。
下一行指定了用于 guest 访问的有效 Unix 用户帐户。人们通常会使用 \"guest account=nobody\", 因此如果还没有这样的用户,建议您向系统添加一个字面上就是 \"guest\" 的用户。新的 \"guest\" 帐户不需要设置口令,并且不需要以交互方式登录。 (也可以选择使用口令和有效的缺省外壳来配置 guest。)
现在,我们可以向 smb.conf 添加 WINS 支持选项了。需要向 global 节添加以下两行之一:
wins support = yes
或者
wins server = WINS 服务器的 IP 地址
如果在当前子网中已有一个 WINS 服务器(例如,运行 WINS 的 Windows NT Server),则需要使用另一个选项,并在等号右边指定 WINS 服务器的名称。这样就禁用了 Samba 的内部 WINS 服务,并且将使用您指定的 WINS 服务器。
如果子网中没有 WINS 服务器在运行,或者您是在家中设置 Samba,不知道确切的 WINS 服务器,那么就需要使用第一个选项。它将通知 Samba 让它成为 LAN 的 WINS 服务器。
您一定想知道 WINS 是做什么用的。从根本上说,可以把 WINS 看做是本地的动态 DNS 数据库。当 Samba 作为 WINS 服务器运行的时侯,同一子网上每个与 Windows 兼容的机器都会向 Samba 注册它的 IP 地址和 NetBIOS 名称(又称“计算机名”)。这可以让 Windows 机器使用 Samba 的 WINS 数据库来请求特定 NetBIOS 名称的 IP 地址。WINS 是网络浏览的关键组件;您在 Windows 机器上“网络邻居”中四处查看时的行为就是一种网络浏览。
现在可以将更多选项添加到 global 节:
local master = yes
os level = 99
domain master = yes
preferred master = yes
现在开始一一说明。所有这些选项都与网络浏览有关。我已提到过 WINS 是网络浏览的关键组件,但要使浏览正确运行,还需要另一种元素。必须有一个本地主浏览器。听上去比较奇怪吧? 需要进一步解释。
为使浏览正常进行,必须有一些中央位置,用来保存本地子网上存在哪些机器和工作组信息的记录。这个特别的列表称为浏览列表。浏览列表用于构建您在第一次单击“网络邻居”时看到的工作组、域和机器的列表。 任何现代的 Windows 机器都可以成为本地主浏览器。理想情况下,我们希望 Samba 是网络上的本地主浏览器。
这是怎样实现的呢?基本上,在子网上会有几个强健的与 Windows 兼容的机器定期地在 LAN 上来回传递信息包,尝试确定谁将成为本地主浏览器,通过这种方法把情况搞明白。这一过程称为“浏览器选举”。
作个大度的人
请别使用 Samba 可以在所有“浏览器选举”中打败 Windows 的能力来作为取笑您所在组织 Microsoft 管理员的理由。记住,重要的是作个有道德的赢家。
最后,这种广播信息包大战中的“赢家”将成为本地主浏览器。我们可以通过使用选项 os level = 99 来使 Samba 赢得这场竞赛, 这个选项可以让它打败 LAN 上的其它所有机器。这是因为 Windows 的每个版本(从 Windows 95 到 NT 再到 2000)都有个硬编码的 OS 级别,导致最高版本的 Windows 成为本地主浏览器(Windows 版本越新,数字就越大)。 将 Samba 设置为 99 可以让它打败所有 Microsoft 的产品,使它每次都成为本地主浏览器。
安全性选项
在结束 global 这一节前,有一些您可能感兴趣的安全性选项。主机的 \'allow\' 选项可以让您限制与 Samba 连接的 IP 地址:
hosts allow = 192.168.1. 127.
除 localhost 127 以外,这个选项只允许 192.168.1 网络中的机器与 Samba 连接。要确保在 hosts allow 那一行的结尾有个 127。
接口选项在机器碰巧有多个网络接口时特别有用。它可以让您指定在哪个网络接口上可以使用 Samba。其使用方法如下: