下一页 上一页 目录

9. 配置您的 Linux 机器作为 NCP 客户端。

如果您是混合技术网络的用户,该网络同时包含 IP 和 IPX 协议,那么您可能在某个时候希望您的 Linux 机器访问存储在网络中 Novell 文件服务器上的数据。 Novell 长期以来为其文件服务器提供 NFS 服务器软件包,从而允许这样做,但如果您是一个小型站点,或者只有少数人对此感兴趣,那么商业软件包的成本难以证明其合理性。

Volker Lendecke <lendecke@namu01.gwdg.de> 编写了一个 Linux 文件系统内核模块,该模块支持 Novell NCP 的一个子集,这将允许您将 Novell 卷挂载到您的 Linux 文件系统中,而无需为您的文件服务器添加任何额外的产品。 Volker 将该软件包称为 ncpfs,并主要从 Manfred Hill 和 Ralf Zessin 编写的 “Netzwerkprogrammierung in C” 一书中获得了必要的信息(该书的更多详细信息包含在 ncpfs 软件包中的 README 文件中)。

该软件使 Linux 能够模拟正常的 Novell 工作站以进行文件服务。它还包含一个小型打印实用程序,允许您打印到 Novell 打印队列(这将在后面的打印客户端部分中介绍)。 ncpfs 软件包可与 3.x 及更高版本的 Novell 文件服务器一起使用,但不能与 Novell 2.x 一起使用。 ncpfs 客户端也可以与接近 Novell 兼容的产品一起使用,但不幸的是,一些声称兼容的产品不够兼容。 要将 ncpfs 与 Novell 4.x 文件服务器一起使用,最好在 bindery 模拟模式下使用 Novell 服务器。 NDS 支持是 ncpfs 最近添加的早期 beta 版本,此外,由于包含专利技术,在您的国家/地区可能禁止使用它。

9.1 获取 ncpfs

最新的 ncpfs 软件包旨在针对 1.2.13 内核或晚于 1.3.71 的内核(包括 2.x.x)构建。如果您没有使用这些类别中的内核,则必须升级您的内核。 Kernel-HOWTO 详细描述了如何执行此操作。

您可以从 Volker 的主站点通过匿名 ftp 获取 ncpfs 软件包: ftp.gwdg.desunsite.unc.edu 或镜像站点。 撰写本文时的当前版本是

ncpfs-2.0.11.tgzncpfs-2.2.0.tgz,后者添加了 NDS 支持。

9.2 为内核 1.2.13 构建 ncpfs

构建一个支持以太网和 IPX 的内核

您需要做的第一件事是确保您的内核已构建并启用了 IPX 支持。 在 1.2.13 版本内核中,您只需要确保对问题 “The IPX protocol” 回答 Y,如图所示

 ...
 ...
Assume subnets are local (CONFIG_INET_SNARL) [y] 
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] 
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
 ...
 ...
您还需要确保包含适用于您的以太网卡的相应驱动程序。 如果您不知道如何执行此操作,则应阅读 Ethernet-HOWTO

然后您可以继续构建您的内核。 确保您记得在完成后运行 lilo 来安装它。

解压 ncpfs 软件

# cd /usr/src
# tar xvfz ncpfs-2.0.11.tgz
# cd ncpfs

检查 Makefile

如果您打算使用 kerneld 自动加载 ncpfs 内核模块,则必须取消注释 Makefile 中引用 KERNELD 的行。 如果您不确定这意味着什么,则应阅读 Kernel-HOWTO 以熟悉内核模块配置。

制作 ncpfs 软件

该软件应干净地编译,无需其他配置

# make

如果您还没有 IPX 工具,请将其复制到有用的位置。

make 完成后,您应该在 ncpfs/bin 目录中找到您需要的所有工具。 您可以使用

# make install

将工具安装到 Volker 选择的目录中。 如果您在基于 ELF 的系统上运行,则需要重新运行 `ldconfig -v' 以确保可以找到共享库。

如果需要,将 ncpfs.o 模块复制到有用的位置。

如果您正在为 1.2.* 内核编译,那么您将在 make 完成后在 ncpfs/bin 目录中找到一个名为 ncpfs.o 的文件。 这是 ncpfs 内核模块。 您应该将其复制到有用的位置。 在我的 debian 系统上,我已将其复制到 /lib/modules/1.2.13/fs 目录,并将 ncpfs 添加到 /etc/modules 文件中,以便在启动时自动启动它。 如果您使用其他发行版,则应找到其模块的存放位置并将其复制到那里,或者只是将其复制到您的 /etc 目录。 要手动加载模块,您需要使用命令

# insmod ncpfs.o

9.3 为内核 1.3.71++/2.0.* 构建 ncpfs

对于最新版本的 ncpfs,您必须使用内核 1.3.71 或更新版本,这包括 2.0.* 内核。

如果您打算使用版本为 1.3.71 或更新版本的内核,则 ncpfs 内核代码已包含在标准内核发行版中。 您只需要对

Networking options  --->
    ...
    ...
    <*> The IPX protocol
    ...
Filesystems  --->
    ...
    ...
    <*> NCP filesystem support (to mount NetWare volumes)
    ...

您仍然需要按照内核 1.2.* 的构建说明进行操作,以便您可以构建工具,但不会有模块文件供您安装。

9.4 配置和使用 ncpfs

配置 IPX 网络软件

配置 IPX 网络软件有两种方法。 您可以手动配置所有 IPX 网络信息,也可以选择让软件使用以下命令自行确定一些合理的设置

# ipx_configure --auto_interface=on --auto_primary=on

这在大多数情况下应该是合理的,但如果它不适合您,请阅读上面的 “IPX 工具” 部分以手动配置您的软件。 已注意到在包含 Windows '95 客户端的网络上使用此方法时出现问题。

测试配置

配置 IPX 网络后,您应该能够使用 slist 命令查看网络上所有 Novell 文件服务器的列表

# slist
如果 slist 命令显示类似以下消息: ncp_connect: Invalid argument,则您的内核可能不支持 IPX。 检查您是否已实际从相应的内核启动。 启动时,您应该在系统启动消息中看到有关 “IPX” 和 “ncpfs” 的消息。 如果 slist 命令未列出所有文件服务器,则您可能需要使用手动网络配置方法。

挂载 Novell(tm) 服务器或卷。

如果您的 IPX 网络软件工作正常,您现在应该能够将 Novell 文件服务器或卷挂载到您的 Linux 文件系统中。 ncpmount 命令用于此目的,并且需要您至少指定以下信息

  1. 文件服务器名称
  2. (可选)要挂载的文件服务器目录
  3. 文件服务器登录 ID。 如果它有密码,您也需要密码。
  4. 挂载点,即您希望挂载到哪里。 这将是您机器上的现有目录。

有一个等效的 ncpumount 命令来卸载已挂载的 NCP 文件系统。 如果您正常关闭计算机,NCP 文件系统将被干净地卸载,因此您无需担心在 haltshutdown 之前手动 ncpumount 您的文件系统。

一个示例命令,用于挂载文件服务器 ACCT_FS01,登录 ID 为 guest,无密码,在 /mnt/Accounts 目录下,可能如下所示

# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
请注意使用 -n 选项来指示登录不需要密码。 相同的登录指定密码为 secret 将如下所示
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret
如果您未指定 -n-P 选项,系统将提示您输入密码。

检查挂载

如果挂载成功,您将找到所有可供登录用户 ID 访问的卷,这些卷作为挂载点下的目录列出。 然后,您也应该能够遍历目录结构以查找其他文件。 您也可以选择使用 -V 选项来挂载单个卷。

NCP 不提供文件的 uid 或 gid 所有权。 所有文件都将具有分配给挂载点目录的权限和所有权,并受 Novell 服务器上的 trustee 权限限制。 在 Linux 用户之间共享挂载时,请记住这一点。

配置要自动执行的挂载。

如果您需要永久挂载 ncp,那么您将希望将上述命令配置到您的 rc 文件中,以便它们在启动时自动发生。 如果您的发行版尚未提供像 debian 这样的 IPX 配置方式,那么我建议您将它们放在您的 /etc/rc.local 文件中(如果您有该文件)。 您可以使用类似以下内容

#
# Start the ncp filesystem

/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o

# configure the IPX network
ipx_configure --auto_interface=on --auto_primary=on

# guest login to the Accounting fileserver
ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n

#
还有另一种配置 NCP 挂载的方法,那就是构建一个 $HOME/.nwclient 文件。 此文件包含临时或用户特定的 NCP 挂载的详细信息,这些挂载将定期执行。 它允许您存储挂载的详细信息,以便您可以重新创建它们,而无需每次都指定所有详细信息。

它的格式非常简单

# The first entry is the 'preferred server' entry and is
# used whenever you do not specify a server explicitly.
#
# User TERRY login to DOCS_FS01 fileserver with password 'password'
DOCS_FS01/TERRY password
#
# Guest login to the ACCT_FS01 fileserver with no password.
ACCT_FS01/GUEST -
要激活这些挂载,您可以使用
$ ncpmount /home/terry/docs
挂载:DOCS_FS01,登录名为 TERRY,在 /home/terry/docs 目录下。 请注意,选择此条目是因为挂载命令中未指定文件服务器。 如果使用以下命令
$ ncpmount -S ACCT_FS01 /home/terry/docs
那么 GUEST 登录到 ACCT_FS01 将挂载到那里。

注意: 要使此机制工作,$HOME/.nwclient 文件的权限必须为 0600,因此您需要使用命令

$ chmod 0600 $HOME/.nwclient
如果允许非 root 用户使用此机制,则 ncpmount 命令必须是 Set Userid Root,因此您需要为其授予权限
# chmod 4755 ncpmount

试用 nsend 实用程序

软件包中还包含一个用于向 Novell 用户发送消息的实用程序,它称为 nsend,其使用方法如下

# nsend rod hello there
将向您的 “主要” 文件服务器(第一个出现在您的 .nwclient 文件中的文件服务器)上的已登录用户 “rod” 发送消息 “hello there”。 您可以使用与 ncpmount 命令相同的语法指定另一个文件服务器。


下一页 上一页 目录