系统管理指南:网络服务

Procedure如何在 /ws 下整合与项目相关的文件

假定您是某个大型软件开发项目的管理员。您计划在名为 /ws 的目录下提供所有与项目相关的文件。此目录将在站点上的所有工作站中通用。

  1. 向站点 auto_master 映射 NIS 或 NIS+ 添加 /ws 目录的项。


    /ws     auto_ws     -nosuid 

    auto_ws 映射可确定 /ws 目录的内容。

  2. 为防万一,添加 -nosuid 选项。

    此选项可阻止用户运行任何工作区可能存在的 setuid 程序。

  3. auto_ws 映射中添加项。

    auto_ws 映射已经过组织,因此每项都能描述一个子项目。首次尝试添加时将生成如下映射:


    compiler   alpha:/export/ws/&
    
    windows    alpha:/export/ws/&
    
    files      bravo:/export/ws/&
    
    drivers    alpha:/export/ws/&
    
    man        bravo:/export/ws/&
    
    tools      delta:/export/ws/&

    每项结尾的和符号 (&) 是指该项关键字的缩写。例如,第一项与以下内容等效:


    compiler		alpha:/export/ws/compiler 

    首次尝试添加时会提供一个外观简单的映射,但该映射不适当。项目组织者决定应提供 man 项中的文档作为每个子项目下的子目录。另外,每个子项目都要求子目录描述该软件的多个版本。必须将其中的每个子目录都指定给服务器上的整个磁盘分区。

    请按如下所示修改映射中的各项:


    compiler \
    
        /vers1.0    alpha:/export/ws/&/vers1.0 \
    
        /vers2.0    bravo:/export/ws/&/vers2.0 \
    
        /man        bravo:/export/ws/&/man
    
    windows \
    
        /vers1.0    alpha:/export/ws/&/vers1.0 \
    
        /man        bravo:/export/ws/&/man
    
    files \
    
        /vers1.0    alpha:/export/ws/&/vers1.0 \
    
        /vers2.0    bravo:/export/ws/&/vers2.0 \
    
        /vers3.0    bravo:/export/ws/&/vers3.0 \
    
        /man        bravo:/export/ws/&/man
    
    drivers \
    
        /vers1.0    alpha:/export/ws/&/vers1.0 \
    
        /man        bravo:/export/ws/&/man
    
    tools \
    
        /           delta:/export/ws/&

    尽管现在映射看起来比较大,但是映射仍然仅包含五个项。由于每项都包含多个挂载,因此每项都比较大。例如,对 /ws/compiler 的引用要求挂载 vers1.0vers2.0man 三个目录。每一行结尾的反斜杠通知 autofs 该项会继续进入下一行。实际上,尽管使用了换行符和一些缩进以使该项更具可读性,但该项仍是较长的一行。tools 目录包含所有子项目的软件开发工具,因此该目录不遵循相同的子目录结构。tools 目录仍然表示单个挂载。

    这种安排为管理员提供了许多灵活性。软件项目通常会占用大量磁盘空间。在项目的整个生命周期内,可能需要重新定位并扩展各种磁盘分区。如果这些更改反映在 auto_ws 映射中,则无需通知用户,因为 /ws 下的目录分层结构未被更改。

    由于服务器 alphabravo 查看的是同一个 autofs 映射,因此登录到这些计算机的任何用户都可以找到预期的 /ws 名称空间。系统将为这些用户提供通过回送挂载(而不是 NFS 挂载)对本地文件的直接访问。