由于 Novell NetWare 使用的是 IPX/SPX 协议,在 Windows NT 访问 NetWare 资源就要通过协议转换。Windows NT 服务器提供了 GSNW 网关服。
2.1 Samba 组成
一个 samba 服务器实际上包含了两个服务器程序:smbd 和 nmbd。Smbd 是 samba 的核心。它负责建立对话进程、验证用户身份、提供对文件系统和打印机的访问机制。Nmbd 实现了"network browser"(网络浏览服务器)的功能。它的作用是对外发布 samba 服务器可以提供的服务。Nmbd 可以使 samba 服务器出现在 Windows 95 或 Windows NT的“Network Neighborhood”(网络邻居)中并且可以客户机浏览到可以访问的资源。完全可以不运行 nmbd 而起动 samba 服务器进程,但是也许客户除了想看到 samba 服务器的 NetBIOS 名外,还想看到 samba 服务器可以提供的服务。
2.2 Samba 配置
由于 SMB 是一个非常复杂的协议,所以配置 samba 是十分繁复的,大约有超过 170 条配置项出现在 smb.conf文 件中。在 RedHat 和 Debian 中 Smb.conf 文件缺省位置是在 /etc/ 下,所有的 samba 程序都要参照这个配置文件。其结构十分类似 Windows 的 *.ini 文件。文件中的每一节都由一个被方括号括起来的标识开始,例如:[global]、[home] 和 [printers]。
每一个配置参数或是一个全局参数(影响或控制整个服务器),或是一个服务参数(影响或控制服务器提供的某项服务)。[global] 节设置全局选项和一些缺省的服务选项。[home] 节是用来动态的映射到每个用户的 home 目录下。[printers] 节用来设置将按照系统 printcap 文件配置的打印机共享至指定用户。
2.3 一个简单的 smb.conf
下面的 smb.conf 描绘了一个简单的但能工作的配置:
[global]
netbios name = FRODO workgroup = UAB-TUCC server string = John Blair's Linux Box security = user printing = lprng
[homes]
comment = Home Directory browseable = no read only = no
在 [global] 节中设置了主机的 netbios 名,主机所在的工作组的组名和将在 browse list 出现的提示字串。安全参数提示 samba 使用“user level”(用户级) 安全级别。SMB 有两种安全级别:share(共享级,对每个特定的资源使用口令保护和指定每个用户有各自不同的访问权限)和 user level(用户级)。不过在大多数情况下,你使用的是用户级安全级别。 由于没有指定特殊的加密方式,samba 缺省使用标准的 unix 口令字验证方式既 plaintext 口令字验证方式验证每个连接。若你的 linux 使用 PAM 模块,那麽你必须修改 PAM 配置使 samba 可以通过口令字数据库验证口令字。RadHat 自动进行这些处理。
[homes] 节中的设置用来控制每个用户 home 目录的共享情况。Comment parameter(注解参数)是在 browse list 中标示该条目的字串。 browseable 参数控制是否该项服务出现在 browse list 中。
下列的配置使每个可以登录至 samba 服务器的用户使用在系统 printcap 文件中定义过的打印机。
[printers]
browseable = no guest ok = yes printable = yes
完成 smb.conf 文件的配置后,可以使用 Testparm 命令来快速检查 smb.conf 文件的语法错误。 通过以上配置,在 Linux 主机上运行 Samba 服务程序:smbd 和 nmbd。Windows 与 Unix、Linux 便可以很方便地进行进行数据交换。