第 24 章Samba

目录

24.1. 术语
24.2. 配置 Samba 服务器
24.3. 配置客户端
24.4. 将 Samba 用作登录服务器
24.5. 有关详细信息

摘要

使用 Samba,可以将 Unix 计算机配置为 Mac OS X、Windows 和 OS/2 计算机的文件和打印服务器。Samba 已经发展成为一个功能完备且相当复杂的产品。使用 YaST、SWAT(Web 界面)或通过手动编辑配置文件来配置 Samba。

24.1. 术语

以下是 Samba 文档和 YaST 模块中使用的一些术语。

SMB 协议

Samba 使用基于 NetBIOS 服务的 SMB(服务器消息块)协议。Microsoft 发布该协议以便其他软件制造商能够与 Microsoft 域网络建立连接。使用 Samba 时,SMB 协议在 TCP/IP 协议之上工作,所以必须在所有客户端上安装 TCP/IP 协议。

CIFS 协议

(常用因特网文件系统)协议是 Samba 支持的另一种协议。CIFS 定义网络中使用的标准远程文件系统访问协议,使用户组能够一起工作并在网络中共享文档。

NetBIOS

NetBIOS 是为用于提供名称服务的计算机之间进行通讯而设计的软件接口 (API)。它使连接到网络的计算机能够为自己保留名称。之后便可以根据名称对这些计算机进行寻址。没有任何中心进程来检查这些名称。网络上的任何计算机均可以保留所需数量的名称,前提是这些名称均未使用。可以为不同的网络体系结构实施 NetBIOS 接口。NetBEUI 是与网络硬件结合相对密切的一种实施,但它常被称为 NetBIOS。使用 NetBIOS 实施的网络协议包括 Novell 的 IPX(通过 TCP/IP 的 NetBIOS)和 TCP/IP。

通过 TCP/IP 发送的 NetBIOS 名称与 /etc/hosts 中使用的名称或 DNS 定义的名称没有相同之处。NetBIOS 使用它自己的、完全独立的命名约定。但为了方便管理,仍建议您使用与 DNS 主机名对应的名称,或本机使用 DNS。Samba 默认采用这种方式。

Samba 服务器

Samba 服务器向客户端提供 SMB/CIFS 服务和 NetBIOS over IP 命名服务。对于 Linux,Samba 服务器有三个守护程序:smbd 用于 SMB/CIFS 服务,nmbd 用于命名服务,winbind 用于身份验证。

Samba 客户端

Samba 客户端是一种能够通过 SMB 协议从 Samba 服务器使用 Samba 服务的系统。所有常见操作系统(Mac OS X、Windows 和 OS/2 等)都支持 SMB 协议。必须在所有计算机上安装 TCP/IP 协议。Samba 为多种不同的 UNIX 系统提供客户端。对于 Linux,有一个用于 SMB 的内核模块,它允许在 Linux 系统级别上集成 SMB 资源。不需要对 Samba 客户端运行任何守护程序。

共享

SMB 服务器通过共享为其客户端提供资源。共享就是服务器上的打印机和目录及其子目录。可以通过名称来导出并访问共享。可以将共享名称设置为任何名称 - 它不一定是导出目录的名称。也可以为打印机指派一个名称。客户端可以根据打印机的名称来访问打印机。

DC

域控制器 (DC) 是处理域中的帐户的服务器。为了复制数据,一个域中可有更多域控制器可用。

24.2. 配置 Samba 服务器

关于配置 Samba 服务器,请参见 SUSE Linux Enterprise Server 文档。

24.3. 配置客户端

客户端只能通过 TCP/IP 访问 Samba 服务器。NetBEUI 和通过 IPX 的 NetBIOS 不能与 Samba 共用。

24.3.1. 使用 YaST 配置 Samba 客户端

配置 Samba 客户端来访问 Samba 或 Windows 服务器上的资源(文件或打印机)。在网络服务+Windows 域成员资格对话框中输入 NT 或 Active Directory 域或工作组。如果激活将 SMB 信息也用于 Linux 身份验证,则用户身份验证将在 Samba、NT 或 Kerberos 服务器上运行。

单击专家设置获取高级配置选项。例如,使用装入服务器目录表启用自动装入服务器用户主目录和身份验证。这样用户就能访问位于 CIFS 上的用户主目录。有关细节,请参见 pam_mount 手册页。

完成所有设置后,请确认对话框以完成配置。

24.4. 将 Samba 用作登录服务器

在主要由 Windows 客户端组成的网络中,使用户只能使用有效帐户和密码进行注册通常是最好的选择。在基于 Windows 的网络中,此任务由主域控制器 (PDC) 来处理。您可以使用配置为 PDC 的 Windows NT 服务器,但是此任务也可以借助 Samba 服务器来完成。中显示了必须在 smb.conf[global] 部分设置的项。例 24.1 “smb.conf 中的 global 部分”

例 24.1. smb.conf 中的 global 部分

[global]
    workgroup = TUX-NET
    domain logons = Yes
    domain master = Yes

如果使用加密密码进行校验,则 Samba 服务器必须能够处理加密密码。[global] 部分中的 encrypt passwords = yes 项启用了此功能(对于 Samba 版本 3,这是默认设置)。此外,还需要以适合 Windows 的加密格式来准备用户帐户和密码。使用命令 smbpasswd -a name 可完成此任务。使用以下命令为计算机创建 Windows 域概念要求的域帐户:

useradd hostname\$
smbpasswd -a -m hostname

使用 useradd 命令可添加一个美元符号。命令 smbpasswd 在使用参数 -m 时自动插入此符号。带注释的配置示例 (/usr/share/doc/packages/samba/examples/smb.conf.SUSE) 包含自动执行此任务的设置。

add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \
-s /bin/false %m\$
     

要确保 Samba 能够正确执行此脚本,请选择具有必需的管理员权限的 Samba 用户,并将其添加到 ntadmin 组中。然后可以使用以下命令为属于此 Linux 组的所有用户指派 Domain Admin 状态:

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

有关此主题的更多信息,请参见《Samba 3 操作指南》第 12 章,此指南可以在 /usr/share/doc/packages/samba/Samba3-HOWTO.pdf 中找到。

24.5. 有关详细信息

关于 Samba 的详细信息,请参见数字文档。在命令行输入 apropossamba 可显示一些手册页;如果安装了 Samba 文档,也可以浏览 /usr/share/doc/packages/samba 目录获得更多的联机文档和示例。examples 子目录中提供了一个带注释的示例配置 (smb.conf.SUSE)。

Samba 小组提供的《Samba 3 操作指南》中有一节专门介绍查错。此外,文档的第 V 部分提供了检查配置的逐步指南。安装包 samba-doc 后,可以在 /usr/share/doc/packages/samba/Samba 3-HOWTO.pdf 中找到《Samba 3 操作指南》。