技术开发 频道

让UNIX和Linux一起工作

    【IT168 技术文档】正确设置和使用 nsswitch.conf 文件的几点提示:

  • 始终将文件指定为最后一个选项,特别对于 passwd、shadow 和 hosts 数据更要如此。未能这样做将可能导致计算机不能使用,因为如果 NIS 系统失败,甚至会拒绝 root 用户。
  • 请确保文件数据包含关键的登录、主机和其他信息。
  • 对于连接到 Internet 的计算机,通常使用 DNS 进行基于 Internet 的解析比依赖于 NIS 中的转发系统更为高效。

    通过遵从这些提示,应该能确保不会出现无法登录到自己系统的情况。

    通过 NFS 共享文件

    网络文件系统 (NFS) 也是由 Sun Microsystems 开发的,作为在计算机间共享文件的一种方法使用。当使用 NFS 共享目录时,可以像本地磁盘一样从另一个计算机加载目录。将会在 NFS 客户端和 NFS 服务器之间复制相同的安全设置、文件权限和其他数据。这就是应通过 NIS 共享用户数据的原因,因为用户 ID、组 ID 和其他信息都将应用到 NFS 共享文件。

    通常,在启动 NFS 服务器前,应首先将目录配置为共享。在 Linux 内,可以通过 /etc/exports 文件进行此操作,该文件将定义共享目录的相关目录和选项(如安全限制)。例如,如果要将 /export/data 仅共享给您的网络中的计算机,则可以使用与以下类似的配置行:

/export/data *.mcslp.pri(rw,sync) *(sync)

    rw 选项设置您网络中的所有客户端的共享读取或写入权限,而对所有其他主机将缺省设置为只读。sync 选项可确保远程加载会与服务器同步其文件系统。

     在 Solaris 内,可以使用 /etc/dfs/dfstab 文件来指定运行共享命令,以便通过 NFS 导出给定目录。例如,可以使用以下配置行共享相同的目录,以便允许进行读取或写入:

share -F nfs -o rw /export/data

    在 AIX 上,可使用 smit 工具来共享特定目录,或在 HP-UX 上使用 SAM 工具。

    在所有情况下,只要创建了文件和配置,就应该启动 NFS 服务器进程。

    在客户端上,只需要启动 NFS 客户端进程。然后可以使用 mount 命令加载 NFS 文件系统。应指定服务器名,后跟一个英文冒号和远程目录的完整路径,如下所示:

$ mount bear:/export/data /mnt/data

    还可以使用相同的基本格式来自动加载 NFS 目录,方法是使用 /etc/fstab 或 /etc/vfstab 文件在启动时加载 NFS 目录。还有一种更好的办法,即使用自动加载系统简化加载过程,并同时获得服务器的非常好的性能。

    使用自动加载器

     作为对 NFS 的扩展,应当考虑使用自动加载系统。此组件将在引用目录时自动加载这些目录。例如,通过使用为 /mnt/data 配置的 NFS 共享,与 /mnt/data 关联的 NFS 共享将在键入以下内容时自动加载和提供:

$ cd /mnt/data

    目录停止了频繁使用后,该目录将会被卸载。自动加载器在共享用户目录时尤为有用——个人可以登录到任何计算机并自动从远程 NFS 服务器加载其主目录并向其提供。

    使用自动加载器,不仅可以简化从 NFS 服务器加载远程目录的方式,还可以帮助减少使用 NFS 共享向不活动的客户端提供统计数据和检测信号 通信带来的负载。

    各个 UNIX 变体均包括自动加载功能。在 Linux 内,必须在内核中配置自动加载功能,并在配置自动加载配置和启动自动加载器前重新启动计算机。为了配置自动加载器,必须首先编辑 /etc/auto.master 或 /etc/autofs/auto.master 文件。这将定义优异共享设置,将优异目录映射到另一个映射文件。例如,以下文件会将 /home 和 /mnt 映射到其他两个映射:

/home /etc/autofs/auto.home /mnt /etc/autofs/auto.mnt

    可以随后在 /mnt directory 和对应的映射内配置其映射到的子目录和 NFS 目录。例如,清单 3 就是 mnt 映射中的一个片段。

    清单 3: mnt 映射中的片段

applications atuin:/Volumes/Shared1/Applications archiveprepare atuin:/Volumes/Shared1/ArchivePrepare backupprepare atuin:/Volumes/Shared1/BackupPrepare build atuin:/Volumes/Shared1/Build correspondence atuin:/Volumes/Shared1/Correspondence devprojects atuin:/Volumes/Shared1/DevProjects docarchive atuin:/Volumes/Shared1/DocArchive incoming atuin:/Volumes/Shared1/Incoming information atuin:/Volumes/Shared1/Information

    由于清单 3 中所示的片段位于 /mnt 映射中,因此,当用户访问 /mnt/applications 时,自动加载器将运行相关命令加载映射的 NFS 共享,在本例中为 atuin:/Volumes/Shared1/Applications。

    在 UNIX 上,您将需要随后启动自动加载后台程序。该程序在大部分 UNIX 变体上都称为 automount 或 automountd,而在很多 Linux 变体中,称为 autofs 且使用以下命令启动:

    同步时间

    当将 NIS 或 NIS+ 与 NFS 一起使用时,最好确定服务器之间的时间得到了正确的同步。这对 NIS 或 NIS+ 至关重要,因为将在信息分布期间使用时间来确保数据库保持最新。如果计算机没有同步,则从服务器可能会停止从主服务器下载信息,或可能会拒绝对主服务器的更新。

    实现时间同步的最简单方法是使用网络时间协议(Network Time Protocol,NTP),这是大部分 Linux 上的标准组件或可安装组件,在各个 UNIX 变体中也变得越来越普遍。

    下载并编译或独立安装了相应程序包后,就可以得到关键组件 ntpd 后台程序。ntpd 后台程序在后台执行,可以配置为提供时间同步信息和根据服务器自动更新本地计算机的时间。

    如果使用 NIS,请设置 NIS 主服务器为网络的其他计算机提供同步信息。将服务器配置为使用其内置时钟,或者,如果连接到 Internet,则使其从一个公共服务器获取其时间同步信息。例如,我的 ISP 就提供 NTP 服务。/etc/ntp.conf 配置文件中保存着我的 ISP 的 NTP 服务器的名称,如下所示:

server ntp0.zen.co.uk minpoll 12 maxpoll 17

    网络中的每个 NIS 服务器和客户端都将配置为使用相同的 /etc/ntp.conf 文件来与 NIS 主服务器通信,以获取时间信息:

server atuin.mcslp.pri minpoll 12 maxpoll 17

    配置了两个系统后,使用以下命令在 NIS 主服务器上启动 NTP 后台程序:

/etc/init.d/ntp start

    然后在每个 NIS 从服务器和客户端上重复该过程。

    总结

    通过传递和共享信息,可更为方便地将 UNIX 和 Linux 系统集成到一起。共享了登录和其他信息后,您的用户便可连接并使用您的 UNIX 和 Linux 计算机,而不需要考虑为其各自使用单独的密码。如果将此系统与 NFS 共享结合使用,还可以共享文件;而且,如果使用自动加载器处理用户个人的主目录,则他们可以继续使用自己的文件和资源以及那些通过文件系统共享的内容,而不受其当前所在的操作系统和计算机的限制。 

0
相关文章