首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将 LDAP 目录用于 Samba 认证-收集和构建必需的软件

将 LDAP 目录用于 Samba 认证-收集和构建必需的软件

关键字就是选择……如果有一种精神可以实实在在地体现开放源码软件运动的特色,那就是“选择”的观念。我们可以选择不同的分发版,因而又可以选择捆绑软件和多种文件系统布局。我们可以选择不同的软件包管理器和软件分发版 ― 是源代码还是预编译的二进制文件?尽管就其本身而言,所有这些选择的自由都是神圣而光荣的,但它也使提供如何构建复杂的结构(就象一台 LDAP 服务器,它担任 300 台工作站的 Samba PDC ― 其中一半工作站使用漫游概要 ― 一样复杂)的详细指示信息变得很难。
为了进行简化,并集中精力处理后面的任务,正如先前提到的那样,本文是基于Red Hat R7.3 的。为什么使用 Red Hat?因为它容易获得,而且 Linux 管理员们相对比较了解 Red Hat 的文件系统布局和 init 脚本约定,而且手头又恰好有 Red Hat 分发版。最后声明一下 ― 无论您使用 Red Hat、SuSE、Gentoo 还是 Slackware,基本过程都是相似的。但是,为了按照本教程的主题进行下去,我们必须从某处出发,该起点是一个正确的 Red Hat 安装、一些 RPM 包和一些 Perl 脚本。
必需的软件包如果您打算遵循本教程中提供的指示信息,则需要下载或预安装下列软件包:
  • 最新的稳定 Samba 发行版()。撰写本文时是 2.2.4。
  • 最新的稳定 OpenLDAP 发行版(),目前是 2.0.23。
  • 因特网上差不多有数百个由管理员和程序员们编写的脚本,它们用来减轻将用户帐户信息填充到 LDAP 目录的手工过程。 上有一个 Perl 脚本包,它允许管理员创建必需的 Samba 对象类并管理目录。 上的人们发布了一个脚本集,它允许管理员从常用 UNIX 配置文件(如 /etc/passwd, /etc/group、NIS 详细信息等)迁移多种帐户信息。关于 Samba 到 LDAP 的迁移脚本有必要警告一句:一组对于某个安装有效的脚本未必对另一个安装有效。开放源码应用程序在不同的修订版之间变化很大,Linux 分发版以使用自己独特的文件系统布局而“声名狼藉”,每个管理员都喜欢以自己的方式做事。所有这些累积起来,造成了前面提到的无规律状态。本教程使用来自 IDEALX 的脚本,因为它们看起来相对精练一些。如果您没有获得此处详细描述的脚本,则请尝试另一套脚本。无论您用哪一套脚本,都请确保在非生产系统上测试您选择的脚本。
从源代码编译 Samba第一步是下载最新的 (或者从 SAMBA_2_2 CVS 树检出最新版本;可在 Samba 网站上找到 CVS 下载说明)。之所以需要源代码,是因为必须将 Samba 配置成使用 LDAP 目录进行用户认证,这一配置必须在编译程序组件之前完成。您可能会找到为 LDAP 预构建的 RPM 包,但这种包少之又少( 过去常常构建基于 LDAP 的 Samba RPM,但我上次发现他们已经将该包从他们的站点上删除了)。
将源代码复制到方便的位置(例如,/usr/local/src),然后用下列命令对它解压缩:
1
tom@phaedrus src $ tar xvzf samba-latest.tar.gz




现在,用“cd”命令进入 samba/source 目录,然后输入 ./configure --help 来查看配置选项列表。出于本教程的目的,此处列出构建 Samba 的方法:
1
2
3
4
5
tom@phaedrus source $ ./configure \
--with-smbmount \
--with-automount \
--with-configdir=/etc/samba \
--with-ldapsam \




上述配置的关键是 --with-ldapsam 选项;就是该选项通知 Samba 将 LDAP SAM 而不是 smbpasswd 用于用户认证。--with-smbmount 是仅用于 Linux 的选项,您可以完全按照自己的个人喜好来改换 Samba 配置文件的位置。
当配置过程完成时,输入 make && make install。现在,如果不出现任何错误,Samba 就已准备就绪了。
注意:可以将 Samba 配置成使用加密密码或明文密码。大多数管理员会选择前者。但是,加密密码与 PAM(可插入的认证模块,Pluggable Authentication Modules)是互斥的。如果您构建 Samba 时使用了 --with-pam 选项,并且尝试同时使用加密密码和 LDAP 目录,那么最终结果是您会碰到一些令人头疼的、前后不一致的行为。在这一点上请相信我。
来自简单 RPM 的 Samba如果您是铁杆 RPM 迷,或者只是想确保 RPM 数据库的完整性,以下是如何从  Samba SRPM(源 RPM)构建三个必需的 RPM 的方法。
  • 首先从 Red Hat( 或本地镜像)获取最新的 samba-2.2.X-X.src.rpm。
  • 安装 RPM:rpm -ivh samba-2.2.X-X.src.rpm
  • 编辑 /usr/src/redhat/SPECS/samba.spec 文件并添加您想要的选项。使用上一页的示例:--with-smbmount --with-pam --with-ldapsam。
  • 现在构建 RPM:cd /usr/src/redhat/SPECS/ && rpm -ba samba.spec。这个操作将创建三个 RPM 文件,samba-common-X.X.X-X、samba-client-X.X.X-X 和 samba-X.X.X-X。
处理 RPM 时的一个警告:如果您正在从 Red Hat 以外的来源(例如,从 Samba 站点下载的 RPM)安装 RPM,请总是卸载任何现有的 Samba 包。我多次看到许多人最终在他们的系统上得到两个不同的 Samba 副本,因为他们所安装的第三方 RPM 放置二进制文件的位置与 Red Hat 不同(也就是,新安装并未覆盖先前的安装)。这个警告同样适用于任何从源代码安装 RPM 的人 ― 首先卸载任何现有的 RPM
从 Red Hat 系统卸载 Samba RPM:
1
2
3
4
5
[root@pdc root]# rpm -qa | grep samba
samba-common-2.2.3a-3
samba-2.2.3a-3
samba-client-2.2.3a-3
[root@pdc root]# rpm -e samba




安装 OpenLDAP安装 OpenLDAP 很容易;如果您进行了标准的服务器安装,就已经完成了三分之二的 OpenLDAP 安装工作。
以下是您的“路线图”……在 Red Hat 7.2 和 7.3 上执行缺省的服务器安装,则会安装 openldap-version.rpm 和 openldap-clients-version.rpm,但却忽略安装 openldap-servers-version.rpm。因此,您应该做的第一件事就是进行检查,以确保撰写本文以来,Red Hat 的人们没有更改他们的安装策略:
1
[root@pdc root]# rpm -qa | greg samba




浏览上述操作产生的输出。您应该已经安装了三个 RPM:一个常用组件(只是 openldap)、一个客户机组件和一个服务器组件。您可能必须从安装 CD 找到服务器 RPM 并安装它。没有服务器 RPM,您将丢失一些关键配置文件、模式目录以及实际的 LDAP 守护进程。
安装 IDEALX Perl 脚本对于安装而言,最后一些问题是安装由  维护的一组脚本。尽管并非绝对必需(您可以总是使用 OpenLDAP 提供的实用程序手工插入记录),但在配置和填充服务器时,它们确实使工作变得轻松。实际上除此以外有许多许多与 LDAP 和 Samba 进行相互操作的脚本和程序,因此,如果您不喜欢 IDEALX 所提供的版本,请在  上进行搜索并找到您喜欢的脚本。
可以从获得 RPM 格式和 TGZ 格式的 IDEALX 脚本。将它们下载到硬盘并解压缩到选定的目录。出于本教程的用途,我们将脚本放置在 /usr/local/sbin 中。
现在,所有必需的软件都已就位,我们可以开始配置。
返回列表