nsswitch.confLinux 和 UNIX 上的 nsswitch.conf 文件通常用于确定系统在何处查找有关不同数据的信息。例如,可以将 nsswitch.conf 文件配置为在文件中查找主机信息、查询 DNS 或使用 NIS 系统查找该信息。
该文件不仅对用于查找信息的源进行配置,而且也用于配置不同源的查询顺序。选择正确的顺序可以影响是否能查询正确的数据源以及在出现故障时网络的恢复能力。
该文件的格式如下:首先是简单的系统数据库列表,后跟按照所需顺序排列的数据源列表,每行一个服务。例如, 显示了为 NIS、DNS 和本地文件解析设置的简单 nsswitch.conf 文件的前几行数据。
清单 2. 简单 nsswitch.conf 文件的前几行数据1
2
3
4
5
6
| passwd: nis files
shadow: nis files
group: nis files
hosts: nis dns files
networks: nis dns files
|
在 中,可以看到 passwd 的定义为首先使用 NIS 数据库(如果可用)。当用户登录时,将首先构造 NIS 表。如果服务返回用户无法找到的错误,则系统将查询列表中的第二项——在本例中为本地文件。
正确设置和使用 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 仅共享给您的网络中的计算机,则可以使用与以下类似的配置行:
1
| /export/data *.mcslp.pri(rw,sync) *(sync)
|
rw 选项设置您网络中的所有客户端的共享读取或写入权限,而对所有其他主机将缺省设置为只读。sync 选项可确保远程加载会与服务器同步其文件系统。
在 Solaris 内,可以使用 /etc/dfs/dfstab 文件来指定运行共享命令,以便通过 NFS 导出给定目录。例如,可以使用以下配置行共享相同的目录,以便允许进行读取或写入:
1
| share -F nfs -o rw /export/data
|
在 AIX 上,可使用 smit 工具来共享特定目录,或在 HP-UX 上使用 SAM 工具。
在所有情况下,只要创建了文件和配置,就应该启动 NFS 服务器进程。
在客户端上,只需要启动 NFS 客户端进程。然后可以使用 mount 命令加载 NFS 文件系统。应指定服务器名,后跟一个英文冒号和远程目录的完整路径,如下所示:
1
| $ mount bear:/export/data /mnt/data
|
还可以使用相同的基本格式来自动加载 NFS 目录,方法是使用 /etc/fstab 或 /etc/vfstab 文件在启动时加载 NFS 目录。还有一种更好的办法,即使用自动加载系统简化加载过程,并同时获得服务器的最佳性能。
使用自动加载器作为对 NFS 的扩展,应当考虑使用自动加载系统。此组件将在引用目录时自动加载这些目录。例如,通过使用为 /mnt/data 配置的 NFS 共享,与 /mnt/data 关联的 NFS 共享将在键入以下内容时自动加载和提供:
目录停止了频繁使用后,该目录将会被卸载。自动加载器在共享用户目录时尤为有用——个人可以登录到任何计算机并自动从远程 NFS 服务器加载其主目录并向其提供。
使用自动加载器,不仅可以简化从 NFS 服务器加载远程目录的方式,还可以帮助减少使用 NFS 共享向不活动的客户端提供统计数据和检测信号 通信带来的负载。
各个 UNIX 变体均包括自动加载功能。在 Linux 内,必须在内核中配置自动加载功能,并在配置自动加载配置和启动自动加载器前重新启动计算机。为了配置自动加载器,必须首先编辑 /etc/auto.master 或 /etc/autofs/auto.master 文件。这将定义顶级共享设置,将顶级目录映射到另一个映射文件。例如,以下文件会将 /home 和 /mnt 映射到其他两个映射:
1
2
| /home /etc/autofs/auto.home
/mnt /etc/autofs/auto.mnt
|
可以随后在 /mnt directory 和对应的映射内配置其映射到的子目录和 NFS 目录。例如, 就是 mnt 映射中的一个片段。
清单 3. mnt 映射中的片段1
2
3
4
5
6
7
8
9
| 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
|
由于 中所示的片段位于 /mnt 映射中,因此,当用户访问 /mnt/applications 时,自动加载器将运行相关命令加载映射的 NFS 共享,在本例中为 atuin:/Volumes/Shared1/Applications。
在 UNIX 上,您将需要随后启动自动加载后台程序。该程序在大部分 UNIX 变体上都称为 automount 或 automountd,而在很多 Linux 变体中,称为 autofs 且使用以下命令启动:
1
| /etc/init.d/autofs start
|
|