开源 Samba 可将 UNIX 或 Linux 系统转换为供 Microsoft Windows 网络客户端使用的文件或打印服务器。Tom Syroid 为您提供了一个有趣的教程,演示了如何在 xSeries 服务器上将 Samba 配置为主域控制器。
Samba 简介
教程概况
虽然本教程并不要求您是 Samba 方面的专家,但具有常见管理任务的基本知识将很有帮助,这包括复制和移动文件、创建用户帐户和设置权限等任务。
完成本教程的学习后,您将知道如何完成以下任务:
- 使用 Redhat package manager (RPM) 或通过从源文件编译程序来安装 Samba。
- 将 Samba 服务器配置为主域控制器(Primary Domain Controller,PDC)。
- 配置服务器,以支持漫游配置文件。
- 配置服务器,以支持网络登录。
- 在服务器上创建所需的管理目录并设置相应权限。
- 在域控制器上创建用户和计算机(信任)帐户。
- 配置客户端计算机,以加入域。
- 对上述过程中可能出现的任何基本问题进行故障排除。
Samba 简介
Samba 很可能是所创建的开源项目中最成功的一个。该项目的最初提出也是和很多其他类似项目一样:由于需要。Andrew Tridgell 在其局域网中需要一个文件服务器程序,该程序支持 Digital Pathworks 的一个 DEC 旧协议。Andrew 并不知道这个协议后来成为了 SMB——Microsoft 文件系统的语言。从最开始出现后的 11 年中,Samba 逐渐发展成一个稳定可靠的产品,并已移植到各种平台上(AIX、HP-UX、BSD、Linux、DigitalUnix、IRIX、SCO、VMS、OSF 和 Solaris)。安装和配置后,Samba 可提供与现有 Windows 网络几乎无缝的集成,可用于任何用途;从用户的角度而言,Samba 就是另一个 Windows 文件服务器、打印服务器或域控制器。最大的优点在于,Samba 是免费的,不需要处理传统的许可证授权问题。对于本教程的主题——PDC 功能,Samba 目前支持以下功能:
- 从 Windows NT/2000 客户端登录域。
- Windows 9x/ME 客户端的用户级别安全性(Win9x/ME 客户端没有域级别安全性的概念;它们只知道如何登录到域控制器)。
- 漫游配置文件。
- NT4 样式的系统策略。
- 浏览列表。
- 检索 Samba PDC 上存储的用户和组列表。
撰写本教程时稳定的 Samba 当前版本为 2.2.3a 版,本教程将以此为基础。请注意,当前 SAMBA_2_2 CVS 开发树即将发布(从 2002 年 4 月中旬开始开发),即 2.2.4。有关发行说明和详细信息,请参考 Samba 的网站 (
www.samba.org);如果 Samba 2.2.4 已提供,则请使用这个版本——其中包含与打印和域控制器功能相关的几个重要错误修补程序。
当前程序约束
Samba 中的功能优于 Windows NT/2000 服务器,但 Samba 的确有一些您应当注意的限制:
- Samba 无法充当备份域控制器(Backup Domain Controller,BDC)角色。当前没有办法在 Samba 域控制器和 Windows NT/2000 控制器之间建立“信任”关系。虽然这样说,但 Scott Merrill 设计了一种方法,可以使用两台 Samba 计算机模拟 PDC/BDC 环境。请参阅参考资料部分,以获得有关细节和相关的 URL。
- 类似地,Samba 无法复制 Windows NT/2000 服务器的用户身份验证信息(user authentication information,SAM),反之亦然。
- Samba 尚不能读取或使用 Windows Active Directory (AD)。
- Samba 不支持通过 Windows User Manager for Domains 添加用户(主要是由于上述限制的原因)。
不过,不要担心。上面的很多限制(主要是与 AD 树通信的功能和 SAM 复制功能)将在 Samba 3.0 中消失(Samba 3.0 目前正在积极开发中,计划于 2002 年秋末推出)。除了与 Windows AD 连接外,Samba 3.0 还(可能)提供以下功能:Microsoft Kerberos 身份验证、经过完全重新编写的可配置身份验证系统、用于各种网络资源的终端访问的 Microsof 风格“NET”命令,经过改进的打印支持,以及常见的错误修补程序和稳定性增强功能。 有关 Samba 3.0 和其他开发项目的更多详细信息,请参阅
www.samba.org/samba/。
硬件注意事项
总的说来,Samba 是一个异常高效的程序,可使用很少的资源来完成其相关工作量。但和任何前端软件程序一样,其也有最低配置要求——您不能指望使用带有 64MB 的 RAM 和 1GB 的 IDE 硬盘的 Pentium 166 计算机支持 200 个 Samba 用户(大量用户会对系统的表现感到失望)。另一方面,如果文件传输负载不高,同一台 Pentium 166 计算机充当 SOHO Samba 文件服务器则可能卓卓有余。
通常来说,硬件方面我有以下建议:
- 大量内存——越多越好。每个用户连接都会产生一个 Samba 后台程序,因此,计划承载的用户越多,计算机的内存就应该越多。
- 磁盘访问非常关键。我曾以旧工作站 (PII-400) 为基础,通过直接添加 SCSI 子系统和质量好的 SCSI 硬盘,构建了性能相当不错的 Samba 文件服务器。同样要考虑伸缩——要服务的用户越多,磁盘子系统的质量应该越高。
- 我个人非常喜欢使用 SMP 文件服务器。多处理器并不一定能保证计算机运行速度越快,但对于在负载增大的情况下不会降低处理速度的计算机,的确能提高其速度。如果您考虑采用构建高端单 P4 处理器系统相同的成本来构建双 Celeron 系统,我认为这个选择并不明智。
用于编写和测试本教程的硬件包括 IBM 的一款新 xSeries 服务器:xSeries 220 型,双 Pentium 3 1.2GHz CPU,IBM ServeRAID 硬件 RAID 控制器,1GB SDRAM,三个 10,000 RPM 18GB 硬盘(采用 RAID5 配置,净可用硬盘空间约 36GB)。此计算机在各方面的性能都相当出色,并能持续保持此性能,而不出现任何错误或故障。
有关 IBM 的服务器产品系列,请参阅
eServer Developer Domain;或有关 xSeries 规范的信息,请参阅
xSeries Intel processor based servers 网站。另外,还有一本非常不错的
IBM 红皮书,名为《
Samba Installation, Configuration, and Sizing Guide》(SG24-6004-00),其中对其硬件要求和规模确定进行了很好的说明。
教程先决条件
将 Samba 安装并配置为 PDC,要求必须执行特定步骤。虽然本教程并不要求您是 Samba 方面的专家,但具有常见管理任务的基本知识将很有帮助,包括复制和移动文件、创建用户帐户和设置权限等任务。
如果您希望按照示例所示进行操作,需要以下配置和工具:
- 此教程基于 Redhat 7.2,应用了所有当前的 Errata(有关详细信息,请参阅 Redhat 的 Errata 页)。当然,您可以使用所选择的任何 UNIX 或 Linux 分发(甚至可以使用 HP-UX 或 Solaris)——只是要注意,本教程中所给的文件位置和路径是特定于 Redhat 的。不过,无论您选择的是哪个分发,在尝试安装和配置 Samba 之前,都要确保其按照预期的方式运行。
- vi 一类的文本编辑器的工作知识是值得学习和拥有的一项技能。本教程中将讨论一个基于浏览器的配置工具 (SWAT),有关此工具的信息可从故障排除与 SWAT 信息部分获得。
- 如果您计划从源文件编译 Samba(这是建议采用的方法,将在本教程中进行演示),则请确保在您的计算机上安装并正确配置了 gcc。
构建和配置 Samba PDC
服务器端配置
这一部分讨论使用 Samba 构建和配置 PDC 的服务器端细节。构建和配置 PDC 时,务必对细节加以注意。当项目未按预期工作时,十之八九都是由于人为错误造成的:缺少编译时选项、配置文件中的拼写错误、权限位设置不正确等等。此处的消息仅供参考。
以下是为了使 Samba PDC 联机而要求进行的一般步骤:
- 构建/安装 Samba(如果尚未安装)
- 配置 smb.conf 文件
- 在服务器上创建所需的目录(如果要使用登录脚本或漫游配置文件)
- 创建用户和计算机帐户
- 测试配置并启动后台程序
最后一步是配置各个客户端并将其加入到域中;这将在下一部分
客户端配置中进行讨论。
安装 Samba
第一步是要确保 Samba 已安装到计算机上。如果没有安装,则需要进行安装。对此进行检查的最简单方法(同样,我们在本教程中假定使用的是 Redhat 7.2)是键入以下命令:
这将产生一个已安装的与 Samba 相关的 RPM 包的列表或生成一个空白链接。如果已安装了 Samba,请注意其版本号。构建 Samba 域控制器时,我们的经验表明,至少应使用 2.2.2 版本。不过使用最新的稳定代码更好,在撰写本文时,最新的稳定代码版本为 2.2.3a。在最近的两个或三个版本中,域控制器功能方面进行了很多工作。此外,打印功能也进行了很大程度的重新开发,LDAP 后端现在足够稳定,可以视为能投入“生产”使用,并纠正了大量小错误。总的说来,2.2.3a 版本是一个稳定的、经过精心完善和良好测试的版本。
如果您计划安装或升级,有两种方式进行处理:从源文件进行编译,或安装预构建的 RPM 包。我们将在下一部分讨论如何从源代码进行编译。
通过 RPM 进行安装时,需要注意以下几点说明。
首先,Redhat 将其二进制 Samba RPM 包拆分为了三个部分:
samba-common-xxxxx.rpm、
samba-server-xxxxx.rpm 和
samba-manual-xxxxx.rpm,其中 x 表示发布版本。Samba 团队也为各种平台构建了二进制包(请参阅
http://us1.samba.org/ftp/Binary_Packages),但他们选择为 Redhat 分发创建单个安装 RPM。因此,为了确保正确升级所有内容,请在安装新版本前卸载任何现有的 Samba 包。 (
rpm -e samba).
其次,如果有希望保持的现有配置文件,请将其备份到安全位置。可能会在安装中错误地丢失有价值的配置文件。
请键入 man rpm,以了解安装 RMP 可用的各种选项。命令
rpm -ivh samba-package 可满足大部分需要。
从源文件构建
很多管理员喜欢从源文件构建所有关键服务器程序(如 Apache、BIND、Samba 等)。原因很简单:从源文件构建意味着可以根据需求对程序的功能和组件进行自定义。还可以通过“清洁的原样”源代码准确地知道在系统上安装了什么东西。不过,由于目录/文件位置的变化,在 Redhat 分发上构建 Samba 可能会有一定的麻烦。RH 的设计人员将 /usr 指定为基本
安装 目录。这意味着用户可访问的实用工具位于 /usr/bin 中,而管理员实用工具位于 /usr/sbin;配置文件将放入
/etc/samba。另一方面,默认 Samba 配置(即不使用配置选项从源代码构建)使用
/usr/local/samba 作为基本安装目录。因此,二进制文件将安装到
/usr/local/samba/bin 中,而安全二进制文件将安装到
/usr/local/samba/sbin 中,而相当不直观的是,Samba 的配置文件将进入
/usr/local/samba/lib 中。
如果某人不熟悉上面的惯例,而要在不卸载 Redhat 版本的情况下从源文件安装 Samba,就可能会出现问题。他会在系统上最终得到两个不同的版本,却不知道为什么——安装了一个全新的 Samba 版本后,他的旧版本仍在运行。由于以下原因,将调用旧版本:
- 旧版本在“路径”上,而新版本不在其上。
- 旧版本(RH 版本)将由 /etc/init.d 中的 samba 脚本(在有些安装上,此文件可能名为 smb)自动启动;从源代码进行安装并不会始终在脚本中创建或更正路径。
提示:可以通过键入
/usr/local/samba/bin/smbd -V(或您的 Samba 二进制驻留的任何位置)来确定 Samba 的版本。
因此,从源代码构建时要进行的第一项决策是:Samba 将驻留在何处?
将 Samba 安装到
/usr/local tree 中并没有错;只是必须记住其所在的位置,并在运行程序的某个实用程序时(或将文件位置添加到路径时)必须记住键入完成路径。后者并不是一个大问题,因为一旦配置并启动了 Samba,使其开始运行,就会持续正常工作。
另一方面,如果您要将所有程序文件保持在 bin/sbin 目录中,这也可能。下一部分中包含从源文件构建 Samba 的详细步骤检查清单,并提供了一个示例
./configure 命令来完成此工作。
从源文件进行构建:检查清单
下面的检查清单应该可以帮助不熟悉从源文件进行构建的人员轻松完成相关任务:
- 如果有现有 Samba 安装(也就是从 RH RPM 包),请转到 /etc/init.d 并将文件 samba(或 smb)复制到安全位置,以供以后参考。另外,按照本教程前面提到的,制作现有 smb.conf 的副本,以防万一。
- 删除任何现有 Samba 安装。
- 从选择的 Samba 站点下载源 Tarball。最新的稳定版本通常命名为 samba-latest.tar.gz。有关必需的 URL,请参阅参考资料部分。
- 我个人喜欢在 /usr/local/src 下构建所有源文件,因此此位置仅供参考——可以随意替换。将 tar.gz 文件复制到 /usr/local/src(或者,将 Tarball 直接下载到此位置更好)并键入 tar xvzf samba-latest.tar.gz。使用 CD 转到源目录 (/usr/local/src/samba/source)。请注意,很多应用程序配置到解压根目录 (/usr/local/src/samba) 下的 ./configure。对于 Samba 并非如此,这是很多不熟悉该程序的人经常犯的错误。如果可以接受将 Samba 安装到 /usr/local/samba 下,则 --prefix= and xxxdir= options 并不必要。
- 键入 ./configure --help,以查看 Samba 的配置选项。以下是 Redhat 配置选项列表。所示的目录放置选项会将 Samba 放入到与 Redhat 构建 RPM 相同的位置。
- 实现了无错误配置后,键入 make。
- 要将二进制文件复制到其最终的驻留位置,请键入 make install。
- 警告:如果必须返回并使用不同的选项配置 Samba,请确保在重新运行 ./configure 命令前删除 /usr/local/src/samba/source/config.cache 文件。如果不删除,Samba 将使用以前的选项设置配置自身。
完成了!现在应该获得了一个可正常工作的 Samba 安装。现在要配置其进行相应的操作……
清单 1. Samba 安装
./configure / --prefix=/usr / --bindir=/usr/bin / --sbindir=/usr/sbin / --libexecdir=/usr/libexec / --datadir=/usr/share/samba / --sysconfdir=/etc/samba / --localstatedir=/usr/local/samba/var / *** CHECK THE ABOVE *** --libdir=/usr/lib / --with-lockdir=/var/locks/samba / --with-swatdir=/usr/share/samba/swat / --with-codepagedir=/etc/samba/codepages / --with-configdir=/etc/samba / --with-smbwrapper / --with-automount / --with-smbmount / --with-pam / --with-pam_smbpass / --with-winbind |
smb.conf 简介
Samba 的功能和灵活性受到单个配置文件
smb.conf 的控制。如在这一部分前面提到的,
smb.conf's 位置取决于构建程序时所使用的程序位置选项。smb.conf 的两个典型位置为
/usr/local/samba/lib 和
/etc/samba。Samba 新手应做的第一件事是:(a) 制作
smb.conf 的副本,以便始终具有一个“干净”的原始版本;(b) 将其打印出来并仔细阅读!
smb.conf 包含很多内容,可为新手和有一定经验的用户提供宝贵的信息。
smb.conf 的结构和布局非常简单。它包含两个主要代码部分:[global](包含应用到程序全局的选项语句)和“共享”部分。每个共享都以用方括号包含的共享名称(例如 [homes])和应用到该共享的选项语句开始。以下是备份供将来参考之用的文件的重要说明:每个 Samba 选项语句都有一个缺省值。因此,在 global 部分指定的不同值将全面覆盖服务器的缺省值,在共享部分指定的值将覆盖全局选项和服务器的缺省选项(如果不同)。
举一个简单的例子。在缺省情况下(如全局缺省选项),Samba 允许任何通过身份验证过程(通常是有效的用户名/密码组合)的人访问列出的共享内容。不过,管理员可以通过使用 valid users = 选项限制用户对共享的访问。例如:
清单 2. 示例
[homes] comment = Home Directories valid users = tom, leah, suzie, bilbrey read only = No browseable = No |
上面的共享只能由用户 tom、leah、suzie 和 bilbrey 访问,从而有效地覆盖了在配置文件的 [global] 部分指定的任何其他选项(采用隐式方式或其他方法指定的)。
理论就讲到这里。接下来开始真正有趣的部分——配置 Samba 域控制器。
基本服务器设置
很多管理员创建了六页或七页的初始配置文件,如果他们的配置未能提供预期的结果,则需要进行大量的分析调整工作,这异常麻烦。所有这些工作导致了并不必要且复杂的六页或七页配置。正如您将要看到的,提供域身份验证、登录脚本选项、漫游配置文件和一些基本共享的“基本”配置真的非常简单。因此,为了尽量保持简单化,我们将把 smb.conf 文件划分为多个较小的独立块进行分析。这样就能了解各个选项的具体功能,以逐步消化理解更改过程。完整的全功能
smb.conf 可以从
参考资料部分下载。
我们不会浪费时间来删除和编辑随 Samba 一起安装的六页或七页配置文件,而将从一个空白文件开始,并添加以下域/计算机选项:
清单 3. 域/计算机选项
# /etc/samba/smb.conf # samba configuration file # last updated: 2/28/2002 by tms[global] ;basic server settings workgroup = syroidmanor netbios name = phoenix server string = Samba PDC running %v socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 |
以井号 (
#) 或分号 (
;) 开始的注释将被忽略;因此也可以视为空格。对于那些不熟悉这些选项的人,在配置文件中提供文本注释是一个非常好的习惯(特别在进行配置更改时;对更改本身仅进行更改的原因加以说明)。对于域控制器,workgroup 选项将设置控制器所服务的域名。当然,我可以使用
syroidmanor.com,但
syroidmanor 能正常工作,且用户和管理员可以键入更少的字符。netbios 选项指定主机名称。因此这个系统的完全限定域名(Fully Qualified Domain Name,FQDN)为
phoenix.syroidmanor[.com]。
server string 可提供一个说明,即在从 Windows 客户端浏览“网上邻居”时出现在共享旁边的文本。接下来,我们需要告知 Samba 此计算机是 PDC。最后,
socket options 设置控制 TCP/IP 性能。所示的设置经过证实,能与基于 Linux 的系统正常工作。如果您使用另一个 OS,请参考本教程最后列出的文档参考资料。
PDC 和主浏览器设置
首先,注意:网络上只能有一个 PDC。在网络上有多个 PDC 将出现无尽的问题和意外的情况——因此千万不要出现这种情况。
对于我们现有的 smb.conf 文件,将向 global 部分添加以下选项:
清单 4. smb.conf 文件——Global 部分
[global] ... ; DC and master browser settings os level = 64 preferred master = yes local master = yes domain master = yes ... |
援引 O'Reilly & Associates 的首创性作品《
Using Samba》(Eckstein、Collier-Brown 和 Kelly;有关更多详情,请参阅
参考资料)中的话:“...每个子网中有一台计算机始终保持着当前活动计算机的列表。此列表称为浏览列表,维护该列表的服务器称为
本地主浏览器。随着各个计算机连接和断开网络,本地主浏览器将不断更新浏览列表中的信息并将其提供给任何请求此列表的计算机。”考虑到本地主浏览器本身可能会不可用,可以定期执行
选举 操作,以确定谁具有绝对权威(即,哪台计算机上保存有最准确的本地主浏览列表)。“选举”的获胜者是由多个因素确定的:选举协议(此时无意义)、OS 级别、首选的主机设置、联机时间和最后一项,计算机的 NetBIOS 名称的字母先后顺序。上面配置中的前三个设置确保在涉及当前浏览列表时始终查询此计算机。
domain master 是告知 Samba 充当主域控制器的“开关”。
安全设置
下一步是添加一些安全和日志选项:
清单 5. 安全和日志选项
[global] ... ;security and logging settings security = user encrypt passwords = yes domain logons = yes l og file = /var/log/samba/log.%m log level = 2 max log size = 50 hosts allow = 127.0.0.1 192.168.1.0/255.255.255.0 |
... Samba 支持四个安全选项:share、user、server 和 domain。在 Samba PDC 上,安全选项必须设置为 user。有关其他安全模式的说明,请参阅前面提到的《
Using Samba》一书的 164 页。
encrypt passwords = yes 选项也是 PDC 的必需选项。我们将在本教程的
客户端配置部分对此设置的隐含效果进行简单的说明。
domain logons 选项只是告知 Samba 在此计算机上支持域登录(与以下方式相对:通过 PDC 进行身份验证,然后将客户端发送到另一台计算机,以获得登录脚本、主目录等)。下一个选项确定日志文件的保存位置;%m 是一个
替代变量。将使用连接计算机的 NetBios 名称将其替换(请参阅《
Using Samba》)。可接受变量的范围为:从 1 到10。除非需要非常详细的调试信息,否则不建议使用高于 3 的日志级别;高日志选项将大幅度减缓系统的运行速度,并产生大量输出。为了将日志文件保持在可控制的范围内(用完 /var 分区的空间会带来非常“不好”的后果),因此我们设置
max log size = 50。这就将每个日志文件大小约束为最大 50 kb;当文件达到此大小时,新的条目将替换旧的条目。最后一点也非常重要,我们将确保只有内部 192.168.1 子网的计算机能连接到该服务器。不要忘记添加
localhost 项,特别在计划使用 SWAT 时。
漫游配置文件
接下来我们将添加对
漫游 配置文件的支持。
本地 配置文件包含存储在用户计算机上
C:/Documents and Settings/username 下的所有文件和设置(桌面、不存储在注册表中的应用程序配置文件、Internet 缓存文件等等)。启用了漫游配置文件(或仅启用了配置文件)后,这些设置将存储在本地计算机的不同文件夹中(如
C:/Documents and Settings/tom.SYROIDMANOR)并会在注销时保存到 PDC 上的目录中。当用户再次登录时,会将服务器设置还原到本地主机。所有这些工作都是为了运行用户从此网络上的任何计算机登录到域,并像玩魔术一样获得其已保存的桌面设置、“开始菜单”和各种配置设置。关于配置文件,有一点需要注意:它们可能会占用大量带宽来同步所需的文件。如果您网络的带宽情况已经不太乐观,漫游配置文件肯定不是一个好选择。首先,让我们填充配置文件,然后将说明各个选项的用途。
清单 6. 配置文件
[global] ... ;user profiles and home directory logon home = //%L/%U/.profile logon drive = H: logon path = //%L/profiles/%U ... #===Shares=== [homes] comment = Home Directories browseable = no writeable = yes [profiles] path = /home/samba/profiles writeable = yes browseable = no create mask = 0600 directory mask = 0700 |
对于上面的 global 选项块,要注意的最重要事项是,所引用的目录必须伴随一个相匹配的共享(在此例中为 profiles)。还要确保全局引用和共享名称相同。
一个常见的错误是将其中一个拼写为“profile”,而另一个却拼写为“profiles”。出现这种情况时,将拒绝用户访问 PDC。此外,目录必须存在,且必须在其上设置了相应的权限。将在这一部分的后面对目录创建和权限进行详细说明。
正如您所看到的,logon path = 选项使用变量替代,且与
[profiles] 共享成对使用。假定我的用户名为 tom,我正在尝试连接到名为 phoenix 的 PDC,logon path 行将被替代为 //phoenix/profiles/tom(%L = Samba 服务器的 NetBios 名称 = phoenix;%U = 请求共享的用户名 = tom)。前面的配置文件名称引用
[profiles] 共享。综合起来,我们就得到以下的结论:“当用户 tom 尝试登录到 phoenix 时,可以在
/home/samba/profiles/tom 目录中找到他的配置文件(对于首次登录的情况,Samba 将会创建 tom 目录)。为了安全起见,我们将
[profiles] 共享设置为不可浏览(对浏览“网上邻居”的任何人隐藏)、可写入(如果要同步更新/保持用户的配置文件,则此为强制性选项),我们将 create mask 设置为 0600(rwx-xxx-xxx——只有用户才能在此处读/写文件),并强制将任何创建的目录设置为 0700(rwx-xxx-xxx——如果要导航,目录必须是可执行的)。
需要注意的另一件事:Windows NT/2000 客户端的配置文件实现方式与 Windows 9x/ME 客户端不同,因此要对“logon”路径使用两种不同的方法。logon home 是特定于 Win9x/ME 的;Win9x/ME 将配置文件限制为用户的主目录。logon path 是特定于 Windows NT/2000 的,没有此类限制。同时在配置文件中采用两个选项可以扩大其适用性。当然,如果没有 Win9x 客户端,则可以将相应选项删除。
接下来,我们将讨论特殊的
[homes] 共享及其工作方式。
[homes] 共享
[homes](
注意!是“homes”,而不是“home”)共享是 Samba 的配置文件中三个特殊部分之一(其他两个为
[global] 和
[printers])。如果客户端尝试连接到不存在的共享,而 smb.conf 中存在
[homes] 共享,Samba 将假定用户在尝试连接到其主目录。程序将随后搜索其用户数据库(smbpasswd;后文将介绍其相关的更多信息),以查找用户请求无效共享时使用的相同用户名密码组合。如果找到,会使用用户名对 logon home 选项语句中的内容进行替换。以我们的朋友 tom 为例,该全局选项将扩展为
//%L/%U,从而获得
//phoenix/tom。如果不存在名为
[tom] 共享,Samba 将使用
[homes] 共享中提供的 path = 选项来创建该共享,并将 Windows 驱动器号分配给该共享...好,您猜猜是什么……H:(根据全局选项 logon drive = H:;可以为任何客户端计算机尚未使用的任意驱动器号)。如果
[homes] 下不存在 path = 语句,则假定为 /home/username。相当聪明的程序,您说呢?
我们还有另一对 global/shares 选项需要考虑:netlogon。
netlogon 选项
最后(至少暂时可以这么说)将要向 smb.conf 添加的是 logon script 选项。与 [homes] 和 [profile] 共享一样,有两点需要说明:
清单 7. Netlogon 选项
[global] ... logon script = netlogon.bat ... # === shares === ... [netlogon] path = /home/netlogon read only = yes write list = tom |
[netlogon] 共享是一个管理工具,主要用于使用注册表修补程序、反病毒更新、程序更新等对客户端计算机进行全局更新。任何希望“推”向客户端的内容都可以通过 netlogon 完成。此外,可以使用共享来在客户机上强制执行系统策略,或者在每次用户登录时备份选择的一组文件。创建从 netlogon 运行的脚本不在本教程的讨论范围之内,但可以在
Samba.org 网站或通过在
Google 中搜索字符串“samba scripting”找到大量相关信息。
以下是 netlogon 的工作原理:任何时候用户登录到 PDC 且存在
logon script = option 和
[netlogon] 共享,Samba 将转到指示的路径,并执行 logon script 所引用的文件。同样,也要注意一些问题:
- logon script 引用的文件可以为任何文件,只要 Windows 可将其识别为可执行文件即可。
- 如果未找到所引用的文件,Samba 将继续工作,并将用户连接到所请求的共享。
- 请确保将 UNIX 端权限设置为可执行。
- 要在 netlogon 共享中委托脚本的职责,请创建一个“admin”组,并将此组以下面的格式添加到 write list = option 中:write list = @admin(“@”标记表示组)。
- 请确保在非生产环境中对您的脚本进行全面测试。破坏 600 台客户端计算机上的注册表绝对是您职业生涯中的一件坏事。
最后一步
下面是完全装配的 Samba PDC 配置文件,仅供参考:
清单 8. Samba PDC 配置文件
# /etc/samba/smb.conf # samba configuration file # last updated: 2/28/2002 by tms[global] ;basic server settings workgroup = syroidmanor netbios name = phoenix server string = Samba PDC running %v socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 #DC and master browser settings os level = 64 preferred master = yes local master = yes domain master = yes ;security and logging settings security = user encrypt passwords = yes log file = /var/log/samba/log.%m log level = 2 max log size = 50 hosts allow = 127.0.0.1 192.168.1.0/255.255.255.0 ;user profiles and home directory logon home = //%L/%U/ logon drive = H: logon path = //%L/profiles/%U logon script = netlogon.bat # ==== shares ==== [homes] comment = Home Directories browseable = no writeable = yes [profiles] path = /home/samba/profiles writeable = yes browseable = no create mask = 0600 directory mask = 0700 [netlogon] comment = Network Logon Service path = /home/netlogon read only = yes browseable = no write list = tom |
接下来要讨论身份验证的主题:将用户和计算机帐户添加到域控制器。
目录、帐户和身份验证
创建 PDC 管理目录
现在 PDC 配置文件已经就位,接下来就要完成剩余的其他服务器端管理项了;即,创建
smb.conf 中的共享所需的目录、在这些目录上设置相应的权限和添加必要的用户/计算机帐户。
但首先,让我们创建两个组来帮助进行域管理:
[root@phoenix root]# group -g 200 admins[root@phoenix root]# group -g 201 machines |
第一个命令使用 GID 200 创建 admin 组(选择此 GID 是为了不与其他现有组冲突);第二个命令使用 GID 201 创建一个 machine 组。第一个组将包含允许管理 PDC 特定方面的管理员。第二个组可用于方便地组织将随后创建的计算机帐户。
既然上面的组已经就位,接下来就可以继续下一步工作,创建两个所需的目录并设置正确的所有关系。
[root@phoenix root]# mkdir -m 0775 /home/netlogon [root@phoenix root]# chown root.admins /home/netlogon [root@phoenix root]# mkdir /home/samba /home/samba/profiles [root@phoenix root]# chmod 1757 /home/samba/profiles |
在上面的目录上设置正确的权限和所有关系是保证服务器安全的关键步骤。不要忘记,当客户端登录到服务器时,将自动执行
/home/netlogon 目录中名为(在我们的示例中如此)
netlogon.bat 的任何文件。很容易想到,可以很方便地编写一个破坏性的脚本或在网络的每台计算机上种木马。
/home/samba/profiles 上设置的“chown”命令对用户安全也同样重要。事实上,此命令会设置目录权限,以使 root 拥有树中一直到“profiles”分支的所有对象的权限,而用户拥有该分支下的所有权限(为了保存其配置文件而创建的目录及其所包含的所有信息)。这意味着用户无法超出其配置文件目录之外,而意外地(或有意地)与其他用户的文件混杂到一起。
对您上面键入的命令进行检查,确定要与所显示的内容完全相同——这一步很重要。
身份验证:用户和计算机帐户
现在已经配置了 Samba 且所需目录已就位,接下来将向域添加用户和计算机帐户。不过,这个主题相当复杂,您在理解之后会发现,这个过程还有些单调乏味。问题的症结在于,Windows 密码和 UNIX/Linux 密码分别属于不同类型。这两个不兼容格式之间的“桥梁”是 Samba 密码文件(在我们的示例中,为
/etc/samba/smbpasswd)。不过,Samba 密码文件要求在相同的计算机上有一个对应的 UNIX 帐户。因此,我们将得到两个位于不同密码文件(分别为 UNIX 和 Samba 或
/etc/passwd 和
/etc/samba/smbpasswd)中的两种类型的帐户(用户和计算机)。
用户帐户非常明了易懂。计算机帐户——此类帐户同时要求在 UNIX 和 Samba 密码文件中包含相应条目——称为
信任帐户(按 Windows 中的说法,
计算机帐户)。创建信任或计算机帐户时,将自动生成一个“密件”(与唯一的计算机名称/密码组合类似的概念)。这个密件将用作客户端和域控制器间的安全通信手段,以防止未授权的计算机采用相同的 NetBIOS 名称加入域并获得对该处存储的数据的访问权。
以下是一些比较麻烦的地方。Windows NT/2000/XP 客户端全面支持信任帐户的概念;而 Windows 9x/ME 不支持。事实上,Windows 9x/ME 所支持的唯一域概念是登录机制,如果不存在系统策略会将其下载,并在服务器上存储一个配置文件。Windows 9x/ME 没有计算机信任或安全的概念,从而使其可以相当方便地“哄骗”域控制器,以接受假冒的 Win9X 计算机登录。正是由于这个原因,Windows 9x/ME 客户端特别不适合用于域类型的网络。我们有一些跑题了,接下来让我们继续讨论如何在 PDC 上创建计算机或信任帐户。可以采用两种方法:
- 手动创建,UNIX 和 Samba 密码均“手动”添加。
- 通过 smb.conf 中的“add user”脚本自动创建。
计算机帐户:手动方法
正如所提到的,Samba 将不允许向 smbpasswd 文件(用户或计算机)添加任何条目,除非存在与该用户对应的现有 UNIX 帐户。因此,第一步是在
/etc/passwd 为客户端创建条目:
[root@phoenix root]# /usr/sbin/useradd -g machines -d /dev/null -c "machine id" -s /bin/false machine_name$ [root@phoenix root]# passwd -l machine_name$Changing password for user machine_name$Locking password for user machine_name$ |
第一个命令创建用户 machine_name(不要忘记美元符号,它是必需的,用于将相应条目标识为信任帐户),将其作为组 machines 的成员 (
-g),没有主目录 (
-d /dev/null),带描述性条目(
-c;例如“Tom's Notebook”)不允许 Shell 访问 (
-s /bin/false)。第二个命令为计算机创建“密件”,以针对其进行身份验证。
创建了 UNIX 帐户后,现在就可以按照以下所示将计算机添加到
/etc/samba/smbpasswd:
[root@phoenix root]# smbpasswd -a -m machine_nameAdded user machine_name$ |
上面的命令中有两点要注意:首先,如果您在
/usr/local/samba 下安装 Samba,您将可能必须提供完整路径(即,
/usr/local/samba/bin/smbpasswd)。其次,当输入 machine_name,不要在其后追加美元符号;smbpasswd 并不要求使用此符号。
警告:在 PDC 上创建了信任帐户后,最好连接客户端 ASAP(这将实际上更改计算机“密码”,并在服务器和客户端之间同步密件)。除非客户端正式连接到 PDC,否则该域就可能会受到另一台使用相同 NetBIOS 名称进行连接的计算机的攻击。
计算机帐户:自动方法
在 PDC 上创建计算机/信任帐户的第二种方法是允许 Samba 在客户端首次加入域时根据需要进行创建。这是通过向
smb.conf 添加
add user script 选项实现的。此选项将创建 UNIX 信任帐户,并告知 Samba 自动在 smbpasswd 中创建对应的条目。以下是基于 Redhat 分发的条目示例:
[global] ... add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u ... |
在上面命令中,需要注意的重要一点是,用于添加用户的命令可能会根据操作系统和/分发的不同而不同,因此应据此进行相应调整。
|
回页首 |
添加用户帐户
我们需要为 PDC 提供的最后一条信息是对用户进行身份验证的方法。正如这一部分开始时讨论的,这是通过同时向
/etc/passwd 和
/etc/samba/smbpasswd 添加用户帐户完成的。不过,没有易用的配置选项来实现此过程的自动化(Shell 脚本可以帮助简化这项烦琐的工作)。以下是创建两个所需用户帐户的三个必要命令:
[root@phoenix root]# useradd leah [root@phoenix root]# passwd leah New password: Retype new password: passwd: all authentication tokens updated successfully [root@phoenix root]# smbpasswd -a leahNew SMB password: Retype new SMB password: Added user leah. |
请注意,您将需要创建 root 用户帐户,以便将 Windows NT/2000 计算机加入到域中。采用处理 UNIX root 密码一样的方式谨慎而安全地处理此密码;这二者间具有相同的权限。
提示:我在我的网络中的所有系统上都使用相同的 UID;这样可轻松解决所有身份验证问题。我还确保每个用户都使用一个密码——即,我为 UNIX 和 Samba 使用了相同的密码。同样,这也十分便于系统和用户管理。
保持用户帐户同步
这一部分的最后一个主题是密码同步。使用 Samba 的挑战之一是保持 UNIX 和 Samba 间的密码同步。除了求助于后端管理系统(如 LDAP 或 NIS)外,还可以采用另一种方式完成此任务。下面的选项语句将允许用户从 Windows 客户端更改其 Samba 密码,而这将导致 UNIX 密码更新,以与新 Samba 条目匹配。不过,如果更改了 UNIX 密码,相同的技术并不能按相反的方法工作;必须手动同步 Samba 密码。
[global] ... ;sync UNIX passwords unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *New*UNIX*password* %n/n *Retype*new*UNIX*password* %n/n *Enter* new*UNIX*password* %n/n *Retype*new*UNIX*password* %n/n *passwd: *all* authentication*tokens*updated*successfully* ... |
上面语句中唯一值得一提的是,
passwd chat 选项需要在一行输入(虽然在此处显示的并非如此)。请注意,某些选项使用“password”而其他使用的是“passwd”。
Samba PDC 的配置已经完成。唯一需要进行的步骤就是将客户端加入到域。
客户端配置
将客户端加入域
不过,这项工作并不简单——将 Windows 客户端加入域(当然,假定这些客户端之前已经是域的成员了)是一项手工任务。如果您运气好,所有用户都使用单一类型的客户端,则可以编写一个操作手册,供所有用户参考,但大多数管理员并不这么幸运。混合客户端环境中的难题在于找到一种一致的方法。Microsoft 每次退出新版本的 Windows 时,似乎也在引入一种配置网络的新方法。这里一个新对话框、那里一个新复选框,某些系统要求通过“控制面板”进行配置,而其他系统要求双击“我的电脑”——这些从用户角度而言,无疑带来了很多混淆不清的地方。
相应的过程实际上相对比较简单和机械,但在各个 Windows 版本之间的确存在差异。考虑到这点后,最好的方法莫过于“分而治之”,而这正是我们要在此处采用的方法。
客户端配置:Windows 95/98/ME
要将 Windows 95/98/ME 客户端加入域,请执行以下操作:
- 首先,检查是否已安装“Microsoft 网络用户”;如果没有安装,则请安装(控制面板 > 网络 > Microsoft 网络用户)。要安装,请将您的 Windows CD 放入驱动器中,并从前面提到的对话框中选择“添加”,然后:客户 > 添加... > Microsoft > Microsoft 网络用户。
- 确保“Microsoft 网络用户”为主网络协议(控制面板 > 网络 > 主网络登录)。
- 然后,转到 控制面板 > 网络 > Microsoft 网络用户 > 属性 > 登录到 Windows NT 域。
- 如果已经采用了 add user script 选项,请选中复选框“在域中创建一个计算机帐户”;否则将需要确保已经存在该客户端的计算机帐户。
- 填写域,然后单击确定。
客户端配置:Windows NT/2000
在 Windows NT 下:
- 转到控制面板 > 网络 > 标识 > 更改选项。如果计算机当前配置在“工作组”选项下,请选择“域”单选按钮,然后输入域名称。
- 根据需要,在“域”中选择创建一个计算机帐户。
- 现在使用用户名 root 和相应的密码 登录到域。这是初始化服务器和客户端计算机之间的“密件”的必要操作。从此处开始,任何经过身份验证的用户都可以从此计算机上登录了。
- 应该出现一条欢迎消息,欢迎您登录到 domain_name 域。
对于 Windows 2000,相关步骤相同,只是网络设置位于
控制面板 > 系统 > 网络下(或者,在桌面上右键单击“我的电脑”,选择
属性、
计算机名,然后选择
更改按钮)。
客户端配置:Windows XP
进入 Windows XP,其过程是最为复杂的。但首先需要提醒一下:Windows XP Home Edition
无法 加入 Windows 域。为了使用域概念,
必须 使用 Windows XP Professional。其次,有时候,将 XP 计算机加入 XP 将需要进行以下步骤;不过在其他情况下,通过使用注册表修补程序就可以完成。不要问我何种情况——我不知道。
要将 Windows XP 计算机加入域,请执行以下操作:
- 打开“本地安全策略”编辑器(开始 > 所有程序 > 管理工具 > 本地安全策略)。
- 找到“域成员: 对安全通道进行数字加密和签名 (总是)”。将其禁用。
- 找到“域成员: 禁用计算机帐户密码更改”。也确保将其禁用。
- 找到“域成员: 需要强(Windows 2000 或以上版本)会话密钥”。将其禁用。
- 接下来,从 www.samba.org 下载 WinXP_SignOrSeal 注册表修补程序,或从本教程最后的参考资料部分获得。双击并在会话提示中单击 Yes,以应用它。
- 现在按照与 Windows NT 或 2000 相同的方式加入域。右键单击我的电脑,依次选择属性、计算机名 和 更改。或单击网络 ID 按钮,以运行网络标识向导。
故障排除与 SWAT 信息
出现故障时……
出现故障时,需要进行故障排除工作。下面的列表并不完全也并不是首创性的内容。这些只是通过数年使用 Samba、无数次通过 Samba 邮件列表帮助用户解决问题的经验积累。
- 首先,也是最重要的,确定问题的具体位置和症状。问题出现在服务器端还是客户端?是否同时伴随其他问题?是否可以将问题隔离?是否检查了网线?是否确定这个问题与 Samba 相关(这个问题经常给我带来不小的麻烦),是否可以从其他工作站方便地进行相同的操作?Samba 后台程序是否在运行?
- 如果您启动 Samba 后台程序,而这些程序意外停止,请对您的配置文件运行 Samba testparm 实用工具。可能是因为您在某处使用了错误的语法。事实上,我的经验表明,导致 Samba 停止运行或功能丢失的两个最常见错误是:(1) smb.conf 中存在键入错误,(2) 文件或目录上的权限不正确。
- 客户端不将配置文件保存到 PDC?请再次阅读上面的内容。并检查您的目录权限。
- 客户端无法加入域?进行相关检查,以确定控制器上存在用户和计算机帐户。如果有必要,请手动进行创建。
- 如果尝试加入域,得到“Cannot join domain...”或“Cannot create account, you already have a connection to the domain”消息,请进行相关检查,以确认没有到服务器的现有映射驱动器。如果有,请在命令提示符查看中键入 net use * /d 来进行取消。
- 如果无法加入域,且是通过手动方式创建的帐户,请进行检查,以确认在计算机名称后没有忘记添加美元符 ('$')。
- 如果无法加入域,且使用了 add user script 选项自动创建计算机帐户,请对此选项进行仔细检查。如果看起来不缺少任何内容,请禁用它,并手动创建计算机帐户。然后请再次尝试操作。
- 如果上面的方法都不起作用,请再次阅读本教程,并对所有内容重新进行系统检查。同样,需再次对此处所述的内容进行检查。smb.conf 文件已移动到干净的 Redhat 安装,按照所演示的创建/设置了目录和权限,控制器已经使用 Windows XP 客户端进行了测试。一切都在第一次启动时就正常工作,没有任何错误或事故。
- 最后,在尝试了所有方面的方法后,请发送邮件到 Samba 邮件列表寻求帮助。不要忘记清楚而详细地描述您的问题以及所进行的故障排除工作,并附上您的配置文件。这个邮件列表中有很多热心人士;无疑会有人可帮助您解决问题。
补充内容 I:SWAT
很多习惯于 GUI 配置工具的管理员发现使用 vi 或 emacs 之类的命令行编辑器让人缩手缩脚,常常力不从心。SWAT 正是设计用于处理此类情况的。SWAT 表示 Samba Web Administration Tool,捆绑在 Samba 包中。简单说来,SWAT 提供了使用任何 Web 浏览器导航
smb.conf 上的接口的便利。它还根据上下文为所有选项提供了相关帮助,并提供了到 Samba 随附的大量文档的链接。
不过,要方便总要付出一些代价。首先(也是最重要的),SWAT 要求使用 root 密码来完成大部分工作,且此密码以纯文本格式传输。这个危险的安全漏洞是由于 SSL/HTTPS 可用于远程连接的副产品(
www.samba.org/samba/docs/swat_ssl.html 处提供了相关的操作说明)。其次,在保存更改时,SWAT 通常会对 smb.conf 中的条目顺序进行重新排列。如果有一个经过精心排列的带直观注释的配置文件,我不建议使用 SWAT。
SWAT 的另一个难点在于,在缺省情况下,它是关闭的,对于 Redhat 的情况不熟悉的用户,要打开它会比较麻烦。最后这个问题很容易解决。
补充内容 II:SWAT 配置
有两种方法可用于启用 SWAT,具体取决于您的系统是配置为使用
xinetd,还是
inetd。
对于运行 xinetd 的系统(RH 7.2 和 7.1),必须对脚本
/etc/xinetd.d/swat 进行编辑(作为 root)。将
disable = yes 行更改为
disable = no。如果希望从远程计算机访问 SWAT(除非是有防火墙的内网,否则这个选择就非常糟糕),请在 only_from = localhost 行前添加一个井号 (
'#')。现在键入 service xinetd reload(通用也作为 root),以重新启动 xinetd 后台程序。现在应该能够从本地计算机上键入
httpd://localhost:901 来直接访问 SWAT,也可以通过在远程主机上将 localhost 替代为主机名称来访问。
在运行 inetd 的系统上,必须编辑两个文件。请确保
/etc/services 包含以下行:
接下来,打开 /etc/inetd.conf 并查找以下行:
swat stream tcp nowait.400 root /path/to/the/swat/binary swat |
使用正确路径替代
/path/to/the/swat/binary。例如,
/usr/sbin/swat。现在重新启动 inetd 服务:service inetd reload。按照上面一段中所述的过程连接到服务器。
尾声
总结
本教程详细说明了将 Samba 配置为本地网络上的主域控制器的步骤。其中讨论了以下主题:
- 简单了解了 Samba 项目的历史和重要性、Samba 可完成的工作、无法完成的工作、为了获得良好性能的重要硬件组件,以及如何最好地利用所提供的内容。
- 如何从 RPM 和源文件安装 Samba,如何配置构建过程来确保目录和文件放置的正确性,以及如何配置 smb.conf 以担任 PDC 角色、支持漫游配置文件和支持网络登录。
- 如何在服务器上创建所需的管理目录,如何在这些目录上设置正确权限,以及如何创建两组(UNIX 和 Samba)用于进行身份验证的用户和计算机帐户。
- 如何配置 Windows 95/98/ME/2000/XP 客户端来加入域。
- 如何对未按预期工作的安装进行故障排除。
- 最后,从何处获得更多的 Samba 资源。
我希望在学习本教程的过程中,您能够了解到希望看到的内容——更理想地——希望您能找到没有意识到需要的内容。我相信我肯定做到了这一点。而这正是生命中重要的一部分。学习新事物,突破限制。
参考资料
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文。
- 了解 Samba 2.2 如何对已经非常出色的 Samba 2.0.8 进行改进,以创建异常强大的企业级 Unix/Windows 集成解决方案。
- 请访问 Samba 网站,以获得所有联机文档,包括手册页、FAQ、HOWTO 和可下载 PDF。其中还包含一个公告页,提供了有关加入 Samba 的右键列表的信息、参与开发团队的信息以及常见的文件下载工具(CVS、FTP 和 HTTP)。
- IBM 技术中心提供了一个包含已合并到当前 CVS/HEAD 开发树中的许多当前修补程序的页面。
- Scott Merrill 撰写了一篇不错的有关如何使用基于 Samba 的服务器模拟 PDC/BDC 环境的文章。
- 如果您对 Microsoft 的 SMB 规范的更多细节感兴趣,请尝试一下此链接。
- IBM 在其红皮书系列中也提供了大量优秀的参考资料,可以在线阅读、下载 PDF 格式文件或购买图书。强烈推荐。如本教程中提到的,提供了标题分别为《Samba Installation, Configuration, and Sizing Guide》(SG24-6004-00,2002 年 7 月 14 日出版)和《Implementing Linux in your Network using Samba》的红皮书。这两本书虽然在 Samba 版本及与更新的 Windows 操作系统版本的互操作性方面有些过时,但均包含了一些没有随时间发生改变的有用部分(例如,规模设计建议和常规网络注意事项)。
- “终极”参考资料:
- 正如在本教程中多次提到的,Samba 方面的首创性作品应是《Using Samba》(O'Reilly & Associates),作者:Eckstein、Collier-Brown 和 Kelly。其内容有些过时,但核心内容仍然保持与撰写该书时一致。如果您只想要一本 Samba 方面的书籍,就请选择这本书。注意:虽然有些分发并不包含此书的内容,但从 Samba.org 下载的所有包以 HTML 格式提供了本书的完整文本;请参阅 /usr/share/swat/using_samba/。
- 另一本不错的书是《Special Edition: Using Samba》(QUE),作者:Sharpe、Turner 和 Potter。请特别留意该书的“Advanced Topics”部分的一些章节。
- 想要了解更多内容?请访问 developerWorks eServer™ 专区,以获得数百篇关于 eServer 品牌的入门级、中级和高级教程,您将大开眼界。
- IBM developerWorks 在全球举办数百场免费技术讲座,您可以免费参加。
获得产品和技术
- 下载最新的 Samba 源代码(撰写本文时为 2.2.3a)。
关于作者
|
|
|
在过去几年中,Tom Syroid 凭借自己的技术技巧和实践经验投身技术写作领域,他完成的作品包括《Outlook 2000 in a Nutshell》(O'Reilly) 和《OpenLinux Secrets》(Hungry Minds)。他还撰写了无数有关 Linux/UNIX 系统管理和安全问题的短文。Tom 非常精通 Samba、Apache、Microsoft Office(97、2000 和 XP)、SSH、DNS/BIND 和各种其他开源产品/技术。在操作前端方面,Tom 曾配置和管理过运行各种操作系统版本的系统,包括各种 Windows 变体(95、98、ME、NT、2000、XP)、大部分 Linux 分发版本(Redhat、OpenLinux、Mandrake、Slackware、TurboLinux、SuSE 和 Yellow Dog Linux)和 AIX(4.3.x 和 5L)。Tom 硬件方面的能力也非常广泛;他有各种各样 PC 的规范制订、构建和维护方面的经验,同时也有 IBM's RS/6000 产品系列(特别是 F50 系列)方面大量的工作经验。您可以通过 [email protected] 与 Tom 联系。
|
- 注:本教程原文来自IBM培训内容:https://www6.software.ibm.com/developerworks/cn/education/aix/samba/index.html