death-to-docs-20090605
[openafs.git] / doc / html / AdminGuide / auagd007.htm
diff --git a/doc/html/AdminGuide/auagd007.htm b/doc/html/AdminGuide/auagd007.htm
deleted file mode 100644 (file)
index 10b031e..0000000
+++ /dev/null
@@ -1,2375 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4//EN">
-<HTML><HEAD>
-<TITLE>Administration Guide</TITLE>
-<!-- Begin Header Records  ========================================== -->
-<!-- /tmp/idwt3570/auagd000.scr converted by idb2h R4.2 (359) ID      -->
-<!-- Workbench Version (AIX) on 2 Oct 2000 at 11:42:14                -->
-<META HTTP-EQUIV="updated" CONTENT="Mon, 02 Oct 2000 11:42:13">
-<META HTTP-EQUIV="review" CONTENT="Tue, 02 Oct 2001 11:42:13">
-<META HTTP-EQUIV="expires" CONTENT="Wed, 02 Oct 2002 11:42:13">
-</HEAD><BODY>
-<!-- (C) IBM Corporation 2000. All Rights Reserved    --> 
-<BODY bgcolor="ffffff"> 
-<!-- End Header Records  ============================================ -->
-<A NAME="Top_Of_Page"></A>
-<H1>Administration Guide</H1>
-<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auagd002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auagd006.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Bot_Of_Page"><IMG SRC="../bot.gif" BORDER="0" ALT="[Bottom of Topic]"></A> <A HREF="auagd008.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auagd026.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P> 
-<HR><H1><A NAME="HDRWQ29" HREF="auagd002.htm#ToC_33">Issues in Cell Configuration and Administration</A></H1>
-<P>This chapter discusses many of the issues to consider when
-configuring and administering a cell, and directs you to detailed related
-information available elsewhere in this guide. It is assumed you are
-already familiar with the material in <A HREF="auagd006.htm#HDRWQ5">An Overview of AFS Administration</A>.
-<P>It is best to read this chapter before installing your cell's first
-file server machine or performing any other administrative task.
-<A NAME="IDX5609"></A>
-<A NAME="IDX5610"></A>
-<A NAME="IDX5611"></A>
-<HR><H2><A NAME="HDRWQ30" HREF="auagd002.htm#ToC_34">Differences between AFS and UNIX: A Summary</A></H2>
-<P>AFS behaves like a standard UNIX file system in most
-respects, while also making file sharing easy within and between cells.
-This section describes some differences between AFS and the UNIX file system,
-referring you to more detailed information as appropriate.
-<A NAME="IDX5612"></A>
-<P><H3><A NAME="Header_35" HREF="auagd002.htm#ToC_35">Differences in File and Directory Protection</A></H3>
-<P>AFS augments the standard UNIX file protection mechanism in two
-ways: it associates an <I>access control list</I> (<I>ACL</I>)
-with each directory, and it enables users to define a large number of their
-own groups, which can be placed on ACLs.
-<P>AFS uses ACLs to protect files and directories, rather than relying
-exclusively on the mode bits. This has several implications, which are
-discussed further in the indicated sections:
-<UL>
-<P><LI>AFS ACLs use seven access permissions rather than the three UNIX mode
-bits. See <A HREF="auagd020.htm#HDRWQ567">The AFS ACL Permissions</A>.
-<P><LI>For directories, AFS ignores the UNIX mode bits. For files, AFS
-uses only the first set of mode bits (the <B>owner</B> bits) , and their
-meaning interacts with permissions on the directory's ACL. See <A HREF="auagd020.htm#HDRWQ580">How AFS Interprets the UNIX Mode Bits</A>.
-<P><LI>A directory's ACL protects all of the files in a directory in the
-same manner. To apply a more restrictive set of AFS permissions to
-certain file, place it in directory with a different ACL.
-<P><LI>Moving a file to a different directory changes its protection. See <A HREF="auagd020.htm#HDRWQ566">Differences Between UFS and AFS Data Protection</A>.
-<P><LI>An ACL can include about 20 entries granting different combinations of
-permissions to different users or groups, rather than only the three UNIX
-entities represented by the three sets of mode bits. See <A HREF="auagd020.htm#HDRWQ566">Differences Between UFS and AFS Data Protection</A>.
-<P><LI>You can designate an AFS file as write-only as in the UNIX file system, by
-setting only the <B>w</B> (<B>write</B>) mode bit. You cannot
-designate an AFS directory as write-only, because AFS ignores the mode bits on
-a directory. See <A HREF="auagd020.htm#HDRWQ580">How AFS Interprets the UNIX Mode Bits</A>.
-</UL>
-<P>AFS enables users to define the groups of other users. Placing these
-groups on ACLs extends the same permissions to a number of exactly specified
-users at the same time, which is much more convenient than placing the
-individuals on the ACLs directly. See <A HREF="auagd019.htm#HDRWQ531">Administering the Protection Database</A>.
-<P>There are also system-defined groups, <B>system:anyuser</B> and
-<B>system:authuser</B>, whose presence on an ACL extends access to a
-wide range of users at once. See <A HREF="auagd019.htm#HDRWQ535">The System Groups</A> and <A HREF="auagd020.htm#HDRWQ571">Using Groups on ACLs</A>.
-<A NAME="IDX5613"></A>
-<A NAME="IDX5614"></A>
-<P><H3><A NAME="HDRWQ31" HREF="auagd002.htm#ToC_36">Differences in Authentication</A></H3>
-<P>Just as the AFS filespace is distinct from each
-machine's local file system, AFS authentication is separate from local
-login. This has two practical implications, which are discussed further
-in <A HREF="#HDRWQ65">Using an AFS-modified login Utility</A>.
-<UL>
-<P><LI>To access AFS files, users must both log into the local machine's
-UNIX file system and authenticate with the AFS authentication service.
-(Logging into the local UNIX file system is necessary because the AFS
-filespace is accessed through the Cache Manager, which resides in the local
-machine's kernel.)
-<P>AFS provides a modified login utility for each system type that
-accomplishes both local login and AFS authentication in one step, based on a
-single password. If you choose not to use the AFS-modified login
-utility, your users must login and authenticate in separate steps, as detailed
-in the <I>IBM AFS User Guide</I>.
-<P><LI>Passwords are stored in two separate places: the Authentication
-Database for AFS and each machine's local password file
-(<B>/etc/passwd</B> or equivalent) for the UNIX file system. A
-user's passwords in the two places can differ if desired, though the
-resulting behavior depends on whether and how the cell is using an
-AFS-modified login utility.
-</UL>
-<P><H3><A NAME="Header_37" HREF="auagd002.htm#ToC_37">Differences in the Semantics of Standard UNIX Commands</A></H3>
-<P>This section summarizes how AFS modifies the functionality of some UNIX
-commands.
-<DL>
-<A NAME="IDX5615"></A>
-<A NAME="IDX5616"></A>
-<A NAME="IDX5617"></A>
-<P><DT><B>The chmod command
-</B><DD>Only members of the <B>system:administrators</B> group can use
-this command to turn on the setuid, setgid or sticky mode bits on AFS
-files. For more information, see <A HREF="auagd015.htm#HDRWQ409">Determining if a Client Can Run Setuid Programs</A>.
-<A NAME="IDX5618"></A>
-<A NAME="IDX5619"></A>
-<P><DT><B>The chown command
-</B><DD>Only members of the <B>system:administrators</B> group can issue
-this command on AFS files.
-<A NAME="IDX5620"></A>
-<A NAME="IDX5621"></A>
-<P><DT><B>The chgrp command
-</B><DD>Only members of the <B>system:administrators</B> can issue this
-command on AFS files and directories.
-<A NAME="IDX5622"></A>
-<A NAME="IDX5623"></A>
-<P><DT><B>The ftpd daemon
-</B><DD>The AFS-modified version of this daemon attempts to authenticate remote
-issuers of the <B>ftp</B> command with the local AFS authentication
-service. See <A HREF="#HDRWQ78">Using UNIX Remote Services in the AFS Environment</A>.
-<A NAME="IDX5624"></A>
-<A NAME="IDX5625"></A>
-<P><DT><B>The groups command
-</B><DD>If the user's AFS tokens are associated with a process authentication
-group (PAG), the output of this command sometimes includes two large
-numbers. To learn about PAGs, see <A HREF="#HDRWQ64">Identifying AFS Tokens by PAG</A>.
-<A NAME="IDX5626"></A>
-<A NAME="IDX5627"></A>
-<P><DT><B>The inetd daemon
-</B><DD>The AFS-modified version of this daemon authenticates remote issuers of
-the AFS-modified <B>rcp</B> and <B>rsh</B> commands with the local AFS
-authentication service. See <A HREF="#HDRWQ78">Using UNIX Remote Services in the AFS Environment</A>.
-<P><DT><B>The login utility
-</B><DD>AFS-modified login utilities both log the issuer into the local file
-system and authenticate the user with the AFS authentication service.
-See <A HREF="#HDRWQ65">Using an AFS-modified login Utility</A>.
-<A NAME="IDX5628"></A>
-<A NAME="IDX5629"></A>
-<P><DT><B>The ln command
-</B><DD>This command cannot create hard links between files in different AFS
-directories. See <A HREF="#HDRWQ32">Creating Hard Links</A>.
-<A NAME="IDX5630"></A>
-<A NAME="IDX5631"></A>
-<P><DT><B>The rcp command
-</B><DD>The AFS-modified version of this command enables the issuer to access
-files on the remote machine as an authenticated AFS user. See <A HREF="#HDRWQ78">Using UNIX Remote Services in the AFS Environment</A>.
-<A NAME="IDX5632"></A>
-<A NAME="IDX5633"></A>
-<P><DT><B>The rlogind daemon
-</B><DD>The AFS-modified version of this daemon authenticates remote issuers of
-the <B>rlogin</B> command with the local AFS authentication
-service. See <A HREF="#HDRWQ78">Using UNIX Remote Services in the AFS Environment</A>.
-<P>The AFS distribution for some system types possibly does not include a
-modified <B>rlogind</B> program. See the <I>IBM AFS Release
-Notes</I>.
-<A NAME="IDX5634"></A>
-<A NAME="IDX5635"></A>
-<P><DT><B>The remsh or rsh command
-</B><DD>The AFS-modified version of this command enables the issuer to execute
-commands on the remote machine as an authenticated AFS user. See <A HREF="#HDRWQ78">Using UNIX Remote Services in the AFS Environment</A>.
-</DL>
-<A NAME="IDX5636"></A>
-<A NAME="IDX5637"></A>
-<A NAME="IDX5638"></A>
-<A NAME="IDX5639"></A>
-<A NAME="IDX5640"></A>
-<A NAME="IDX5641"></A>
-<P><H3><A NAME="Header_38" HREF="auagd002.htm#ToC_38">The AFS version of the fsck Command</A></H3>
-<P>Never run the standard UNIX <B>fsck</B> command on an AFS file
-server machine. It does not understand how the File Server organizes
-volume data on disk, and so moves all AFS data into the <B>lost+found</B>
-directory on the partition.
-<P>Instead, use the version of the <B>fsck</B> program that is included in
-the AFS distribution. The <I>IBM AFS Quick Beginnings</I> explains
-how to replace the vendor-supplied <B>fsck</B> program with the AFS
-version as you install each server machine.
-<P>The AFS version functions like the standard <B>fsck</B> program on data
-stored on both UFS and AFS partitions. The appearance of a banner like
-the following as the <B>fsck</B> program initializes confirms that you are
-running the correct one:
-<PRE>   --- AFS (R) <VAR>version</VAR> fsck---
-</PRE>
-<P>where <VAR>version</VAR> is the AFS version. For correct results, it
-must match the AFS version of the server binaries in use on the
-machine.
-<P>If you ever accidentally run the standard version of the program, contact
-AFS Product Support immediately. It is sometimes possible to recover
-volume data from the <B>lost+found</B> directory.
-<A NAME="IDX5642"></A>
-<A NAME="IDX5643"></A>
-<P><H3><A NAME="HDRWQ32" HREF="auagd002.htm#ToC_39">Creating Hard Links</A></H3>
-<P>AFS does not allow hard links (created with the UNIX
-<B>ln</B> command) between files that reside in different directories,
-because in that case it is unclear which of the directory's ACLs to
-associate with the link.
-<P>AFS also does not allow hard links to directories, in order to keep the
-file system organized as a tree.
-<P>It is possible to create symbolic links (with the UNIX <B>ln -s</B>
-command) between elements in two different AFS directories, or even between an
-element in AFS and one in a machine's local UNIX file system. Do
-not create a symbolic link to a file whose name begins with either a number
-sign (<B>#</B>) or a percent sign (<B>%</B>), however. The
-Cache Manager interprets such links as a mount point to a regular or
-read/write volume, respectively.
-<A NAME="IDX5644"></A>
-<A NAME="IDX5645"></A>
-<A NAME="IDX5646"></A>
-<P><H3><A NAME="HDRWQ33" HREF="auagd002.htm#ToC_40">AFS Implements Save on Close</A></H3>
-<P>When an application issues the UNIX <B>close</B> system
-call on a file, the Cache Manager performs a synchronous write of the data to
-the File Server that maintains the central copy of the file. It does
-not return control to the application until the File Server has acknowledged
-receipt of the data. For the <B>fsync</B> system call, control does
-not return to the application until the File Server indicates that it has
-written the data to non-volatile storage on the file server machine.
-<P>When an application issues the UNIX <B>write</B> system call, the Cache
-Manager writes modifications to the local AFS client cache only. If the
-local machine crashes or an application program exits without issuing the
-<B>close</B> system call, it is possible that the modifications are not
-recorded in the central copy of the file maintained by the File Server.
-The Cache Manager does sometimes write this type of modified data from the
-cache to the File Server without receiving the <B>close</B> or
-<B>fsync</B> system call, for example if it needs to free cache chunks for
-new data. However, it is not generally possible to predict when the
-Cache Manager transfers modified data to the File Server in this way.
-<P>The implication is that if an application's <B>Save</B> option
-invokes the <B>write</B> system call rather than <B>close</B> or
-<B>fsync</B>, the changes are not necessarily stored permanently on the
-File Server machine. Most application programs issue the
-<B>close</B> system call for save operations, as well as when they finish
-handling a file and when they exit.
-<P><H3><A NAME="Header_41" HREF="auagd002.htm#ToC_41">Setuid Programs</A></H3>
-<A NAME="IDX5647"></A>
-<P>Set the UNIX setuid bit only for the local superuser <B>root</B>;
-this does not present an automatic security risk: the local superuser
-has no special privilege in AFS, but only in the local machine's UNIX
-file system and kernel.
-<P>Any file can be marked with the setuid bit, but only members of the
-<B>system:administrators</B> group can issue the <B>chown</B>
-system call or the <B>/etc/chown</B> command.
-<P>The <B>fs setcell</B> command determines whether setuid programs that
-originate in a foreign cell can run on a given client machine. See <A HREF="auagd015.htm#HDRWQ409">Determining if a Client Can Run Setuid Programs</A>.
-<A NAME="IDX5648"></A>
-<A NAME="IDX5649"></A>
-<A NAME="IDX5650"></A>
-<A NAME="IDX5651"></A>
-<HR><H2><A NAME="HDRWQ34" HREF="auagd002.htm#ToC_42">Choosing a Cell Name</A></H2>
-<P>This section explains how to choose a cell name and explains
-why choosing an appropriate cell name is important.
-<P>Your cell name must distinguish your cell from all others in the AFS global
-namespace. By conventions, the cell name is the second element in any
-AFS pathname; therefore, a unique cell name guarantees that every AFS
-pathname uniquely identifies a file, even if cells use the same directory
-names at lower levels in their local AFS filespace. For example, both
-the ABC Corporation cell and the State University cell can have a home
-directory for the user <B>pat</B>, because the pathnames are
-distinct: <B>/afs/abc.com/usr/pat</B> and
-<B>/afs/stateu.edu/usr/pat</B>.
-<P>By convention, cell names follow the ARPA Internet Domain System
-conventions for site names. If you are already an Internet site, then
-it is simplest to choose your Internet domain name as the cellname.
-<P>If you are not an Internet site, it is best to choose a unique
-Internet-style name, particularly if you plan to connect to the Internet in
-the future. AFS Product Support is available for help in selecting an
-appropriate name. There are a few constraints on AFS cell names:
-<UL>
-<P><LI>It can contain as many as 64 characters, but shorter names are better
-because the cell name frequently is part of machine and file names. If
-your cell name is long, you can reduce pathname length by creating a symbolic
-link to the complete cell name, at the second level in your file tree.
-See <A HREF="#HDRWQ42">The Second (Cellname) Level</A>.
-<P><LI>To guarantee it is suitable for different operating system types, the cell
-name can contain only lowercase characters, numbers, underscores, dashes, and
-periods. Do not include command shell metacharacters.
-<P><LI>It can include any number of fields, which are conventionally separated by
-periods (see the examples below).
-<P><LI>It must end in a suffix that indicates the type of institution it is, or
-the country in which it is situated. The following are some of the
-standard suffixes:
-<DL>
-<P><DT><B>.com
-</B><DD>For businesses and other commercial organizations. Example:
-<B>abc.com</B> for the ABC Corporation cell.
-<P><DT><B>.edu
-</B><DD>For educational institutions such as universities. Example:
-<B>stateu.edu</B> for the State University cell.
-<P><DT><B>.gov
-</B><DD>For United States government institutions.
-<P><DT><B>.mil
-</B><DD>For United States military installations.
-</DL>
-</UL>
-<P>Other suffixes are available if none of these are appropriate. 
-<A NAME="IDX5652"></A>
-<A NAME="IDX5653"></A>
-You can learn about suffixes by calling the Defense Data Network [Internet]
-Network Information Center in the United States at (800) 235-3155. The
-NIC can also provide you with the forms necessary for registering your cell
-name as an Internet domain name. Registering your name prevents another
-Internet site from adopting the name later.
-<A NAME="IDX5654"></A>
-<A NAME="IDX5655"></A>
-<A NAME="IDX5656"></A>
-<A NAME="IDX5657"></A>
-<P><H3><A NAME="Header_43" HREF="auagd002.htm#ToC_43">How to Set the Cell Name</A></H3>
-<P>The cell name is recorded in two files on the local disk of each file
-server and client machine. Among other functions, these files define
-the machine's cell membership and so affect how programs and processes
-run on the machine; see <A HREF="#HDRWQ35">Why Choosing the Appropriate Cell Name is Important</A>. The procedure for setting the cell name is different
-for the two types of machines.
-<P>For file server machines, the two files that record the cell name are the
-<B>/usr/afs/etc/ThisCell</B> and <B>/usr/afs/etc/CellServDB</B>
-files. As described more explicitly in the <I>IBM AFS Quick
-Beginnings</I>, you set the cell name in both by issuing the <B>bos
-setcellname</B> command on the first file server machine you install in your
-cell. It is not usually necessary to issue the command again. If
-you run the United States edition of AFS and use the Update Server, it
-distributes its copy of the <B>ThisCell</B> and <B>CellServDB</B>
-files to additional server machines that you install. If you use the
-international edition of AFS, the <I>IBM AFS Quick Beginnings</I> explains
-how to copy the files manually.
-<P>For client machines, the two files that record the cell name are the
-<B>/usr/vice/etc/ThisCell</B> and <B>/usr/vice/etc/CellServDB</B>
-files. You create these files on a per-client basis, either with a text
-editor or by copying them onto the machine from a central source in
-AFS. See <A HREF="auagd015.htm#HDRWQ406">Maintaining Knowledge of Database Server Machines</A> for details.
-<P>Change the cell name in these files only when you want to transfer the
-machine to a different cell (it can only belong to one cell at a time).
-If the machine is a file server, follow the complete set of instructions in
-the <I>IBM AFS Quick Beginnings</I> for configuring a new cell. If
-the machine is a client, all you need to do is change the files appropriately
-and reboot the machine. The next section explains further the negative
-consequences of changing the name of an existing cell.
-<P>To set the default cell name used by most AFS commands without changing the
-local <B>/usr/vice/etc/ThisCell</B> file, set the AFSCELL environment
-variable in the command shell. It is worth setting this variable if you
-need to complete significant administrative work in a foreign cell.
-<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">The <B>fs checkservers</B> and <B>fs mkmount</B> commands do not use
-the AFSCELL variable. The <B>fs checkservers</B> command always
-defaults to the cell named in the <B>ThisCell</B> file, unless the
-<B>-cell</B> argument is used. The <B>fs mkmount</B> command
-defaults to the cell in which the parent directory of the new mount point
-resides.
-</TD></TR></TABLE>
-<A NAME="IDX5658"></A>
-<P><H3><A NAME="HDRWQ35" HREF="auagd002.htm#ToC_44">Why Choosing the Appropriate Cell Name is Important</A></H3>
-<P>Take care to select a cell name that is suitable for
-long-term use. Changing a cell name later is complicated. An
-appropriate cell name is important because it is the second element in the
-pathname of all files in a cell's file tree. Because each cell
-name is unique, its presence in an AFS pathname makes the pathname unique in
-the AFS global namespace, even if multiple cells use similar filespace
-organization at lower levels. For instance, it means that every cell
-can have a home directory called <B>/afs/<VAR>cellname</VAR>/usr/pat</B>
-without causing a conflict. The presence of the cell name in pathnames
-also means that users in every cell use the same pathname to access a file,
-whether the file resides in their local cell or in a foreign cell.
-<P>Another reason to choose the correct cell name early in the process of
-installing your cell is that the cell membership defined in each
-machine's <B>ThisCell</B> file affects the performance of many
-programs and processes running on the machine. For instance, AFS
-commands (<B>fs</B>, <B>kas</B>, <B>pts</B> and <B>vos</B>
-commands) by default execute in the cell of the machine on which they are
-issued. The command interpreters check the <B>ThisCell</B> file on
-the local disk and then contact the database server machines listed in the
-<B>CellServDB</B> file for the indicated cell (the <B>bos</B> commands
-work differently because the issuer always has to name of the machine on which
-to run the command).
-<P>The <B>ThisCell</B> file also determines the cell for which a user
-receives an AFS token when he or she logs in to a machine. The cell
-name also plays a role in security. As it converts a user password into
-an encryption key for storage in the Authentication Database, the
-Authentication Server combines the password with the cell name found in the
-<B>ThisCell</B> file. AFS-modified login utilities use the same
-algorithm to convert the user's password into an encryption key before
-contacting the Authentication Server to obtain a token for the user.
-(For a description of how AFS's security system uses encryption keys, see
-<A HREF="#HDRWQ75">A More Detailed Look at Mutual Authentication</A>.)
-<P>This method of converting passwords into encryption keys means that the
-same password results in different keys in different cells. Even if a
-user uses the same password in multiple cells, obtaining a user's token
-from one cell does not enable unauthorized access to the user's account
-in another cell.
-<P>If you change the cell name, you must change the <B>ThisCell</B> and
-<B>CellServDB</B> files on every server and client machine. Failure
-to change them all can prevent login, because the encryption keys produced by
-the login utility do not match the keys stored in the Authentication
-Database. In addition, many commands from the AFS suites do not work as
-expected.
-<A NAME="IDX5659"></A>
-<A NAME="IDX5660"></A>
-<A NAME="IDX5661"></A>
-<HR><H2><A NAME="HDRWQ36" HREF="auagd002.htm#ToC_45">Participating in the AFS Global Namespace</A></H2>
-<P>Participating in the AFS global namespace makes your
-cell's local file tree visible to AFS users in foreign cells and makes
-other cells' file trees visible to your local users. It makes file
-sharing across cells just as easy as sharing within a cell. This
-section outlines the procedures necessary for participating in the global
-namespace.
-<UL>
-<P><LI>Participation in the global namespace is not mandatory. Some cells
-use AFS primarily to facilitate file sharing within the cell, and are not
-interested in providing their users with access to foreign cells.
-<P><LI>Making your file tree visible does not mean making it vulnerable.
-You control how foreign users access your cell using the same protection
-mechanisms that control local users' access. See <A HREF="#HDRWQ40">Granting and Denying Foreign Users Access to Your Cell</A>.
-<P><LI>The two aspects of participation are independent. A cell can make
-its file tree visible without allowing its users to see foreign cells'
-file trees, or can enable its users to see other file trees without
-advertising its own.
-<P><LI>You make your cell visible to others by advertising your database server
-machines. See <A HREF="#HDRWQ38">Making Your Cell Visible to Others</A>.
-<P><LI>You control access to foreign cells on a per-client machine basis.
-In other words, it is possible to make a foreign cell accessible from one
-client machine in your cell but not another. See <A HREF="#HDRWQ39">Making Other Cells Visible in Your Cell</A>.
-</UL>
-<A NAME="IDX5662"></A>
-<A NAME="IDX5663"></A>
-<A NAME="IDX5664"></A>
-<A NAME="IDX5665"></A>
-<A NAME="IDX5666"></A>
-<A NAME="IDX5667"></A>
-<P><H3><A NAME="HDRWQ37" HREF="auagd002.htm#ToC_46">What the Global Namespace Looks Like</A></H3>
-<P>The AFS global namespace appears the same to all AFS cells
-that participate in it, because they all agree to follow a small set of
-conventions in constructing pathnames.
-<P>The first convention is that all AFS pathnames begin with the string
-<B>/afs</B> to indicate that they belong to the AFS global
-namespace.
-<P>The second convention is that the cell name is the second element in an AFS
-pathname; it indicates where the file resides (that is, the cell in which
-a file server machine houses the file). As noted, the presence of a
-cell name in pathnames makes the global namespace possible, because it
-guarantees that all AFS pathnames are unique even if cells use the same
-directory names at lower levels in their AFS filespace.
-<P>What appears at the third and lower levels in an AFS pathname depends on
-how a cell has chosen to arrange its filespace. There are some
-suggested conventional directories at the third level; see <A HREF="#HDRWQ43">The Third Level</A>.
-<A NAME="IDX5668"></A>
-<A NAME="IDX5669"></A>
-<A NAME="IDX5670"></A>
-<P><H3><A NAME="HDRWQ38" HREF="auagd002.htm#ToC_47">Making Your Cell Visible to Others</A></H3>
-<P>You make your cell visible to others by advertising your cell
-name and database server machines. Just like client machines in the
-local cell, the Cache Manager on machines in foreign cells use the information
-to reach your cell's Volume Location (VL) Servers when they need volume
-and file location information. Similarly, client-side authentication
-programs running in foreign cells use the information to contact your
-cell's authentication service.
-<P>There are two places you can make this information available:
-<UL>
-<A NAME="IDX5671"></A>
-<A NAME="IDX5672"></A>
-<P><LI>In the global <B>CellServDB</B> file maintained by the AFS Product
-Support group. This file lists the name and database server machines of
-every cell that has agreed to make this information available to other
-cells. 
-<P>To add or change your cell's listing in this file, have the official
-support contact at your site call or write to AFS Product Support.
-Changes to the file are frequent enough that AFS Product Support does not
-announce each one. It is a good policy to check the file for changes on
-a regular schedule.
-<A NAME="IDX5673"></A>
-<A NAME="IDX5674"></A>
-<P><LI>A file called <B>CellServDB.local</B> in the
-<B>/afs/</B><VAR>cellname</VAR><B>/service/etc</B> directory of your
-cell's filespace. List only your cell's database server
-machines.
-</UL>
-<P>Update the files whenever you change the identity of your cell's
-database server machines. Also update the copies of the
-<B>CellServDB</B> files on all of your server machines (in the
-<B>/usr/afs/etc</B> directory) and client machines (in the
-<B>/usr/vice/etc</B> directory). For instructions, see <A HREF="auagd008.htm#HDRWQ118">Maintaining the Server CellServDB File</A> and <A HREF="auagd015.htm#HDRWQ406">Maintaining Knowledge of Database Server Machines</A>.
-<P>Once you have advertised your database server machines, it can be difficult
-to make your cell invisible again. You can remove the
-<B>CellServDB.local</B> file and ask AFS Product Support to remove
-your entry from the global <B>CellServDB</B> file, but other cells
-probably have an entry for your cell in their local <B>CellServDB</B>
-files already. To make those entries invalid, you must change the names
-or IP addresses of your database server machines.
-<P>Your cell does not have to be invisible to be inaccessible, however.
-To make your cell completely inaccessible to foreign users, remove the
-<B>system:anyuser</B> group from all ACLs at the top three levels of
-your filespace; see <A HREF="#HDRWQ40">Granting and Denying Foreign Users Access to Your Cell</A>.
-<A NAME="IDX5675"></A>
-<A NAME="IDX5676"></A>
-<A NAME="IDX5677"></A>
-<A NAME="IDX5678"></A>
-<P><H3><A NAME="HDRWQ39" HREF="auagd002.htm#ToC_48">Making Other Cells Visible in Your Cell</A></H3>
-<P>To make a foreign cell's filespace visible on a client
-machine in your cell, perform the following three steps:
-<OL TYPE=1>
-<P><LI>Mount the cell's <B>root.cell</B> volume at the second
-level in your cell's filespace just below the <B>/afs</B>
-directory. Use the <B>fs mkmount</B> command with the
-<B>-cell</B> argument as instructed in <A HREF="auagd010.htm#HDRWQ213">To create a cellular mount point</A>.
-<P><LI>Mount AFS at the <B>/afs</B> directory on the client machine.
-The <B>afsd</B> program, which initializes the Cache Manager, performs the
-mount automatically at the directory named in the first field of the local
-<B>/usr/vice/etc/cacheinfo</B> file or by the command's
-<B>-mountdir</B> argument. Mounting AFS at an alternate location
-makes it impossible to reach the filespace of any cell that mounts its
-<B>root.afs</B> and <B>root.cell</B> volumes at the
-conventional locations. See <A HREF="auagd015.htm#HDRWQ395">Displaying and Setting the Cache Size and Location</A>.
-<P><LI>Create an entry for the cell in the list of database server machines which
-the Cache Manager maintains in kernel memory. 
-<P>The <B>/usr/vice/etc/CellServDB</B> file on every client machine's
-local disk lists the database server machines for the local and foreign
-cells. The <B>afsd</B> program reads the contents of the
-<B>CellServDB</B> file into kernel memory as it initializes the Cache
-Manager. You can also use the <B>fs newcell</B> command to add or
-alter entries in kernel memory directly between reboots of the machine.
-See <A HREF="auagd015.htm#HDRWQ406">Maintaining Knowledge of Database Server Machines</A>.
-</OL>
-<P>Note that making a foreign cell visible to client machines does not
-guarantee that your users can access its filespace. The ACLs in the
-foreign cell must also grant them the necessary permissions.
-<A NAME="IDX5679"></A>
-<A NAME="IDX5680"></A>
-<P><H3><A NAME="HDRWQ40" HREF="auagd002.htm#ToC_49">Granting and Denying Foreign Users Access to Your Cell</A></H3>
-<P>Making your cell visible in the AFS global namespace does not
-take away your control over the way in which users from foreign cells access
-your file tree.
-<P>By default, foreign users access your cell as the user
-<B>anonymous</B>, which means they have only the permissions granted to
-the <B>system:anyuser</B> group on each directory's ACL.
-Normally these permissions are limited to the <B>l</B> (<B>lookup</B>)
-and <B>r</B> (<B>read</B>) permissions.
-<P>There are two ways to grant wider access to foreign users:
-<UL>
-<P><LI>Grant additional permissions to the <B>system:anyuser</B> group
-on certain ACLs. Keep in mind, however, that all users can then access
-that directory in the indicated way (not just specific foreign users you have
-in mind).
-<P><LI>Create a local authentication account for specific foreign users, by
-creating entries in the Protection and Authentication Databases and local
-password file. It is not possible to place foreign usernames on ACLs,
-nor to authenticate in a foreign cell without having an account in it.
-</UL>
-<A NAME="IDX5681"></A>
-<A NAME="IDX5682"></A>
-<A NAME="IDX5683"></A>
-<HR><H2><A NAME="HDRWQ41" HREF="auagd002.htm#ToC_50">Configuring Your AFS Filespace</A></H2>
-<P>This section summarizes the issues to consider when
-configuring your AFS filespace. For a discussion of creating volumes
-that correspond most efficiently to the filespace's directory structure,
-see <A HREF="#HDRWQ44">Creating Volumes to Simplify Administration</A>.
-<P><B>Note for Windows users:</B> Windows uses a backslash
-(&nbsp;<B>\</B>&nbsp;) rather than a forward slash
-(&nbsp;<B>/</B>&nbsp;) to separate the elements in a
-pathname. The hierarchical organization of the filespace is however the
-same as on a UNIX machine.
-<P>AFS pathnames must follow a few conventions so the AFS global namespace
-looks the same from any AFS client machine. There are corresponding
-conventions to follow in building your file tree, not just because pathnames
-reflect the structure of a file tree, but also because the AFS Cache Manager
-expects a certain configuration.
-<A NAME="IDX5684"></A>
-<A NAME="IDX5685"></A>
-<P><H3><A NAME="Header_51" HREF="auagd002.htm#ToC_51">The Top /afs Level</A></H3>
-<P>The first convention is that the top level in your file tree be called
-the <B>/afs</B> directory. If you name it something else, then you
-must use the <B>-mountdir</B> argument with the <B>afsd</B> program to
-get Cache Managers to mount AFS properly. You cannot participate in the
-AFS global namespace in that case.
-<A NAME="IDX5686"></A>
-<A NAME="IDX5687"></A>
-<A NAME="IDX5688"></A>
-<P><H3><A NAME="HDRWQ42" HREF="auagd002.htm#ToC_52">The Second (Cellname) Level</A></H3>
-<P>The second convention is that just below the <B>/afs</B>
-directory you place directories corresponding to each cell whose file tree is
-visible and accessible from the local cell. Minimally, there must be a
-directory for the local cell. Each such directory is a mount point to
-the indicated cell's <B>root.cell</B> volume. For
-example, in the ABC Corporation cell, <B>/afs/abc.com</B> is a
-mount point for the cell's own <B>root.cell</B> volume and
-<B>stateu.edu</B> is a mount point for the State University
-cell's <B>root.cell</B> volume. The <B>fs
-lsmount</B> command displays the mount points.
-<PRE>   % <B>fs lsmount /afs/abc.com</B> 
-   '/afs/abc.com' is a mount point for volume '#root.cell'
-   % <B>fs lsmount /afs/stateu.edu</B>
-   '/afs/stateu.edu' is a mount point for volume '#stateu.edu:root.cell'
-</PRE>
-<P>To reduce the amount of typing necessary in pathnames, you can create a
-symbolic link with an abbreviated name to the mount point of each cell your
-users frequently access (particularly the home cell). In the ABC
-Corporation cell, for instance, <B>/afs/abc</B> is a symbolic link to the
-<B>/afs/abc.com</B> mount point, as the <B>fs lsmount</B>
-command reveals.
-<PRE>   % <B>fs lsmount /afs/abc</B>
-   '/afs/abc' is a symbolic link, leading to a mount point for volume '#root.cell'
-</PRE>
-<A NAME="IDX5689"></A>
-<A NAME="IDX5690"></A>
-<P><H3><A NAME="HDRWQ43" HREF="auagd002.htm#ToC_53">The Third Level</A></H3>
-<P>You can organize the third level of your cell's file
-tree any way you wish. The following list describes directories that
-appear at this level in the conventional configuration:
-<DL>
-<P><DT><B>common
-</B><DD>This directory contains programs and files needed by users working on
-machines of all system types, such as text editors, online documentation
-files, and so on. Its <B>/etc</B> subdirectory is a logical place
-to keep the central update sources for files used on all of your cell's
-client machines, such as the <B>ThisCell</B> and <B>CellServDB</B>
-files.
-<P><DT><B>public
-</B><DD>A directory accessible to anyone who can access your filespace, because
-its ACL grants the <B>l</B> (<B>lookup</B>) and <B>r</B>
-(<B>read</B>) permissions to the <B>system:anyuser</B>
-group. It is useful if you want to enable your users to make selected
-information available to everyone, but do not want to grant foreign users
-access to the contents of the <B>usr</B> directory which houses user home
-directories ( and is also at this level). It is conventional to create
-a subdirectory for each of your cell's users.
-<P><DT><B>service
-</B><DD>This directory contains files and subdirectories that help cells
-coordinate resource sharing. For a list of the proposed standard files
-and subdirectories to create, call or write to AFS Product Support.
-<P>As an example, files that other cells expect to find in this
-directory's <B>etc</B> subdirectory can include the following:
-<UL>
-<P><LI><B>CellServDB.export</B>, a list of database server machines
-for many cells
-<P><LI><B>CellServDB.local</B>, a list of the cell's own database
-server machines
-<P><LI><B>passwd</B>, a copy of the local password file
-(<B>/etc/passwd</B> or equivalent) kept on the local disk of the
-cell's client machines
-<P><LI><B>group</B>, a copy of the local groups file (<B>/etc/group</B>
-or equivalent) kept on the local disk of the cell's client machines
-</UL>
-<P><DT><B><VAR>sys_type</VAR>
-</B><DD>A separate directory for storing the server and client binaries for each
-system type you use in the cell. Configuration is simplest if you use
-the system type names assigned in the AFS distribution, particularly if you
-wish to use the <B>@sys</B> variable in pathnames (see <A HREF="#HDRWQ56">Using the @sys Variable in Pathnames</A>). The <I>IBM AFS Release Notes</I> lists the
-conventional name for each supported system type.
-<P>Within each such directory, create directories named <B>bin</B>,
-<B>etc</B>, <B>usr</B>, and so on, to store the programs normally kept
-in the <B>/bin</B>, <B>/etc</B> and <B>/usr</B> directories on a
-local disk. Then create symbolic links from the local directories on
-client machines into AFS; see <A HREF="#HDRWQ55">Configuring the Local Disk</A>. Even if you do not choose to use symbolic links in
-this way, it can be convenient to have central copies of system binaries in
-AFS. If binaries are accidentally removed from a machine, you can
-recopy them onto the local disk from AFS rather than having to recover them
-from tape
-<P><DT><B>usr
-</B><DD>This directory contains home directories for your local users. As
-discussed in the previous entry for the <B>public</B> directory, it is
-often practical to protect this directory so that only locally authenticated
-users can access it. This keeps the contents of your user's home
-directories as secure as possible.
-<P>If your cell is quite large, directory lookup can be slowed if you put all
-home directories in a single <B>usr</B> directory. For suggestions
-on distributing user home directories among multiple grouping directories, see
-<A HREF="#HDRWQ59">Grouping Home Directories</A>.
-<P><DT><B>wsadmin
-</B><DD>This directory contains prototype, configuration and library files for use
-with the <B>package</B> program. See <A HREF="auagd016.htm#HDRWQ419">Configuring Client Machines with the package Program</A>.
-</DL>
-<A NAME="IDX5691"></A>
-<A NAME="IDX5692"></A>
-<A NAME="IDX5693"></A>
-<A NAME="IDX5694"></A>
-<HR><H2><A NAME="HDRWQ44" HREF="auagd002.htm#ToC_54">Creating Volumes to Simplify Administration</A></H2>
-<P>This section discusses how to create volumes in ways that
-make administering your system easier.
-<P>At the top levels of your file tree (at least through the third level),
-each directory generally corresponds to a separate volume. Some cells
-also configure the subdirectories of some third level directories as separate
-volumes. Common examples are the
-<B>/afs/</B><VAR>cellname</VAR><B>/common</B> and
-<B>/afs/</B><VAR>cellname</VAR><B>/usr</B> directories.
-<P>You do not have to create a separate volume for every directory level in a
-tree, but the advantage is that each volume tends to be smaller and easier to
-move for load balancing. The overhead for a mount point is no greater
-than for a standard directory, nor does the volume structure itself require
-much disk space. Most cells find that below the fourth level in the
-tree, using a separate volume for each directory is no longer
-efficient. For instance, while each user's home directory (at the
-fourth level in the tree) corresponds to a separate volume, all of the
-subdirectories in the home directory normally reside in the same
-volume.
-<P>Keep in mind that only one volume can be mounted at a given directory
-location in the tree. In contrast, a volume can be mounted at several
-locations, though this is not recommended because it distorts the hierarchical
-nature of the file tree, potentially causing confusion.
-<A NAME="IDX5695"></A>
-<A NAME="IDX5696"></A>
-<A NAME="IDX5697"></A>
-<A NAME="IDX5698"></A>
-<A NAME="IDX5699"></A>
-<P><H3><A NAME="Header_55" HREF="auagd002.htm#ToC_55">Assigning Volume Names</A></H3>
-<P>You can name your volumes anything you choose, subject to a few
-restrictions:
-<UL>
-<P><LI>Read/write volume names can be up to 22 characters in length. The
-maximum length for volume names is 31 characters, and there must be room to
-add the <B>.readonly</B> extension on read-only volumes.
-<P><LI>Do not add the <B>.readonly</B> and <B>.backup</B>
-extensions to volume names yourself, even if they are appropriate. The
-Volume Server adds them automatically as it creates a read-only or backup
-version of a volume.
-<P><LI>There must be volumes named <B>root.afs</B> and
-<B>root.cell</B>, mounted respectively at the top (<B>/afs</B>)
-level in the filespace and just below that level, at the cell's name (for
-example, at <B>/afs/abc.com</B> in the ABC Corporation
-cell).
-<P>Deviating from these names only creates confusion and extra work.
-Changing the name of the <B>root.afs</B> volume, for instance,
-means that you must use the <B>-rootvol</B> argument to the
-<B>afsd</B> program on every client machine, to name the alternate
-volume.
-<P>Similarly, changing the <B>root.cell</B> volume name prevents
-users in foreign cells from accessing your filespace, if the mount point for
-your cell in their filespace refers to the conventional
-<B>root.cell</B> name. Of course, this is one way to make
-your cell invisible to other cells.
-</UL>
-<P>It is best to assign volume names that indicate the type of data they
-contain, and to use similar names for volumes with similar contents. It
-is also helpful if the volume name is similar to (or at least has elements in
-common with) the name of the directory at which it is mounted.
-Understanding the pattern then enables you accurately to guess what a volume
-contains and where it is mounted.
-<P>Many cells find that the most effective volume naming scheme puts a common
-prefix on the names of all related volumes. <A HREF="#TBLVOL-PREFIX">Table 1</A> describes the recommended prefixing scheme.
-<BR>
-<P><B><A NAME="TBLVOL-PREFIX" HREF="auagd004.htm#FT_TBLVOL-PREFIX">Table 1. Suggested volume prefixes</A></B><BR>
-<TABLE WIDTH="100%" BORDER>
-<TR>
-<TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="14%"><B>Prefix</B>
-</TH><TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="28%"><B>Contents</B>
-</TH><TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="22%"><B>Example Name</B>
-</TH><TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="36%"><B>Example Mount Point</B>
-</TH></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><B>common.</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">popular programs and files
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>common.etc</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/common/etc</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><B>src.</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">source code
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>src.afs</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/src/afs</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><B>proj.</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">project data
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>proj.portafs</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/proj/portafs</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><B>test.</B><TT></TT>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">testing or other temporary data
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>test.smith</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/usr/smith/test</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><B>user.</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">user home directory data
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>user.terry</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/usr/terry</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="14%"><VAR>sys_type</VAR><B>.</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="28%">programs compiled for an operating system type
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="22%"><B>rs_aix42.bin</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="36%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/bin</B>
-</TD></TR></TABLE>
-<P><A HREF="#TBLPREFIX-EXAMPLE">Table 2</A> is a more specific example for a cell's
-<B>rs_aix42</B> system volumes and directories:
-<BR>
-<P><B><A NAME="TBLPREFIX-EXAMPLE" HREF="auagd004.htm#FT_TBLPREFIX-EXAMPLE">Table 2. Example volume-prefixing scheme</A></B><BR>
-<TABLE WIDTH="100%" BORDER>
-<TR>
-<TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="35%"><B><B>Example Name</B></B>
-</TH><TH ALIGN="LEFT" VALIGN="BOTTOM" WIDTH="65%"><B><B>Example Mount Point</B></B>
-</TH></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.bin</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/bin</B><B>/afs/<B>cell</B>/rs_aix42/bin</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.etc</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/etc</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.afsws</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/afsws</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.lib</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/lib</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.bin</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/bin</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.etc</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/etc</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.inc</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/inc</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.man</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/man</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.sys</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/sys</B>
-</TD></TR><TR>
-<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="35%"><B>rs_aix42.usr.local</B>
-</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="65%"><B>/afs/</B><VAR>cellname</VAR><B>/rs_aix42/usr/local</B>
-</TD></TR></TABLE>
-<P>There are several advantages to this scheme:
-<UL>
-<P><LI>The volume name is similar to the mount point name in the
-filespace. In all of the entries in <A HREF="#TBLPREFIX-EXAMPLE">Table 2</A>, for example, the only difference between the
-volume and mount point name is that the former uses periods as separators and
-the latter uses slashes. Another advantage is that the volume name
-indicates the contents, or at least suggests the directory on which to issue
-the <B>ls</B> command to learn the contents.
-<P><LI>It makes it easy to manipulate groups of related volumes at one
-time. In particular, the <B>vos backupsys</B> command's
-<B>-prefix</B> argument enables you to create a backup version of every
-volume whose name starts with the same string of characters. Making a
-backup version of each volume is one of the first steps in backing up a volume
-with the AFS Backup System, and doing it for many volumes with one command
-saves you a good deal of typing. For instructions for creating backup
-volumes, see <A HREF="auagd010.htm#HDRWQ201">Creating Backup Volumes</A>, For information on the AFS Backup System, see <A HREF="auagd011.htm#HDRWQ248">Configuring the AFS Backup System</A> and <A HREF="auagd012.htm#HDRWQ283">Backing Up and Restoring AFS Data</A>.
-<P><LI>It makes it easy to group related volumes together on a partition.
-Grouping related volumes together has several advantages of its own, discussed
-in <A HREF="#HDRWQ49">Grouping Related Volumes on a Partition</A>.
-</UL>
-<A NAME="IDX5700"></A>
-<A NAME="IDX5701"></A>
-<P><H3><A NAME="HDRWQ49" HREF="auagd002.htm#ToC_56">Grouping Related Volumes on a Partition</A></H3>
-<P>If your cell is large enough to make it practical, consider
-grouping related volumes together on a partition. In general, you need
-at least three file server machines for volume grouping to be
-effective. Grouping has several advantages, which are most obvious when
-the file server machine becomes inaccessible:
-<UL>
-<P><LI>If you keep a hardcopy record of the volumes on a partition, you know
-which volumes are unavailable. You can keep such a record without
-grouping related volumes, but a list composed of unrelated volumes is much
-harder to maintain. Note that the record must be on paper, because the
-outage can prevent you from accessing an online copy or from issuing the
-<B>vos listvol</B> command, which gives you the same information.
-<P><LI>The effect of an outage is more localized. For example, if all of
-the binaries for a given system type are on one partition, then only users of
-that system type are affected. If a partition houses binary volumes
-from several system types, then an outage can affect more people, particularly
-if the binaries that remain available are interdependent with those that are
-not available.
-</UL>
-<P>The advantages of grouping related volumes on a partition do not
-necessarily extend to the grouping of all related volumes on one file server
-machine. For instance, it is probably unwise in a cell with two file
-server machines to put all system volumes on one machine and all user volumes
-on the other. An outage of either machine probably affects
-everyone.
-<P>Admittedly, the need to move volumes for load balancing purposes can limit
-the practicality of grouping related volumes. You need to weigh the
-complementary advantages case by case.
-<A NAME="IDX5702"></A>
-<A NAME="IDX5703"></A>
-<A NAME="IDX5704"></A>
-<A NAME="IDX5705"></A>
-<P><H3><A NAME="HDRWQ50" HREF="auagd002.htm#ToC_57">When to Replicate Volumes</A></H3>
-<P>As discussed in <A HREF="auagd006.htm#HDRWQ15">Replication</A>, replication refers to making a copy, or
-clone, of a read/write source volume and then placing the copy on one or more
-additional file server machines. Replicating a volume can increase the
-availability of the contents. If one file server machine housing the
-volume becomes inaccessible, users can still access the copy of the volume
-stored on a different machine. No one machine is likely to become
-overburdened with requests for a popular file, either, because the file is
-available from several machines.
-<P>However, replication is not appropriate for all cells. If a cell
-does not have much disk space, replication can be unduly expensive, because
-each clone not on the same partition as the read/write source takes up as much
-disk space as its source volume did at the time the clone was made.
-Also, if you have only one file server machine, replication uses up disk space
-without increasing availability.
-<P>Replication is also not appropriate for volumes that change
-frequently. You must issue the <B>vos release</B> command every
-time you need to update a read-only volume to reflect changes in its
-read/write source.
-<P>For both of these reasons, replication is appropriate only for popular
-volumes whose contents do not change very often, such as system binaries and
-other volumes mounted at the upper levels of your filespace. User
-volumes usually exist only in a read/write version since they change so
-often.
-<P>If you are replicating any volumes, you must replicate the
-<B>root.afs</B> and <B>root.cell</B> volumes, preferably
-at two or three sites each (even if your cell only has two or three file
-server machines). The Cache Manager needs to pass through the
-directories corresponding to the <B>root.afs</B> and
-<B>root.cell</B> volumes as it interprets any pathname. The
-unavailability of these volumes makes all other volumes unavailable too, even
-if the file server machines storing the other volumes are still
-functioning.
-<P>Another reason to replicate the <B>root.afs</B> volume is that
-it can lessen the load on the File Server machine. The Cache Manager
-has a bias to access a read-only version of the <B>root.afs</B>
-volume if it is replicate, which puts the Cache Manager onto the
-<I>read-only path</I> through the AFS filespace. While on the
-read-only path, the Cache Manager attempts to access a read-only copy of
-replicated volumes. The File Server needs to track only one callback
-per Cache Manager for all of the data in a read-only volume, rather than the
-one callback per file it must track for read/write volumes. Fewer
-callbacks translate into a smaller load on the File Server.
-<P>If the <B>root.afs</B> volume is not replicated, the Cache
-Manager follows a read/write path through the filespace, accessing the
-read/write version of each volume. The File Server distributes and
-tracks a separate callback for each file in a read/write volume, imposing a
-greater load on it.
-<P>For more on read/write and read-only paths, see <A HREF="auagd010.htm#HDRWQ209">The Rules of Mount Point Traversal</A>.
-<P>It also makes sense to replicate system binary volumes in many cases, as
-well as the volume corresponding to the
-<B>/afs/</B><VAR>cellname</VAR><B>/usr</B> directory and the volumes
-corresponding to the <B>/afs/</B><VAR>cellname</VAR><B>/common</B>
-directory and its subdirectories.
-<P>It is a good idea to place a replica on the same partition as the
-read/write source. In this case, the read-only volume is a clone (like
-a backup volume): it is a copy of the source volume's <VAR>vnode
-index</VAR>, rather than a full copy of the volume contents. Only if the
-read/write volume moves to another partition or changes substantially does the
-read-only volume consume significant disk space. Read-only volumes kept
-on other partitions always consume the full amount of disk space that the
-read/write source consumed when the read-only volume was created.
-<P><H3><A NAME="Header_58" HREF="auagd002.htm#ToC_58">The Default Quota and ACL on a New Volume</A></H3>
-<P>Every AFS volume has associated with it a quota that limits the amount
-of disk space the volume is allowed to use. To set and change quota,
-use the commands described in <A HREF="auagd010.htm#HDRWQ234">Setting and Displaying Volume Quota and Current Size</A>.
-<P>By default, every new volume is assigned a space quota of 5000 KB blocks
-unless you include the <B>-maxquota</B> argument to the <B>vos
-create</B> command. Also by default, the ACL on the root directory of
-every new volume grants all permissions to the members of the
-<B>system:administrators</B> group. To learn how to change
-these values when creating an account with individual commands, see <A HREF="auagd018.htm#HDRWQ503">To create one user account with individual commands</A>. When using <B>uss</B> commands to create
-accounts, you can specify alternate ACL and quota values in the template
-file's <B>V</B> instruction; see <A HREF="auagd017.htm#HDRWQ473">Creating a Volume with the V Instruction</A>.
-<A NAME="IDX5706"></A>
-<A NAME="IDX5707"></A>
-<A NAME="IDX5708"></A>
-<A NAME="IDX5709"></A>
-<A NAME="IDX5710"></A>
-<HR><H2><A NAME="HDRWQ51" HREF="auagd002.htm#ToC_59">Configuring Server Machines</A></H2>
-<P>This section discusses some issues to consider when
-configuring server machines, which store AFS data, transfer it to client
-machines on request, and house the AFS administrative databases. To
-learn about client machines, see <A HREF="#HDRWQ54">Configuring Client Machines</A>.
-<P>If your cell has more than one AFS server machine, you can configure them
-to perform specialized functions. A machine can assume one or more of
-the roles described in the following list. For more details, see <A HREF="auagd008.htm#HDRWQ90">The Four Roles for File Server Machines</A>.
-<UL>
-<P><LI>A <I>simple file server machine</I> runs only the processes that store
-and deliver AFS files to client machines. You can run as many simple
-file server machines as you need to satisfy your cell's performance and
-disk space requirements.
-<P><LI>A <I>database server machine</I> runs the four database server
-processes that maintain AFS's replicated administrative databases:
-the Authentication, Backup, Protection, and Volume Location (VL) Server
-processes.
-<P><LI>A <I>binary distribution machine</I> distributes the AFS server
-binaries for its system type to all other server machines of that system
-type.
-<P><LI>The single <I>system control machine</I> distributes common server
-configuration files to all other server machines in the cell, in a cell that
-runs the United States edition of AFS (cells that use the international
-edition of AFS must not use the system control machine for this
-purpose). The machine conventionally also serves as the time
-synchronization source for the cell, adjusting its clock according to a time
-source outside the cell.
-</UL>
-<P>The <I>IBM AFS Quick Beginnings</I> explains how to configure your
-cell's first file server machine to assume all four roles. The
-<I>IBM AFS Quick Beginnings</I> chapter on installing additional server
-machines also explains how to configure them to perform one or more
-roles.
-<A NAME="IDX5711"></A>
-<A NAME="IDX5712"></A>
-<A NAME="IDX5713"></A>
-<A NAME="IDX5714"></A>
-<P><H3><A NAME="HDRWQ52" HREF="auagd002.htm#ToC_60">Replicating the AFS Administrative Databases</A></H3>
-<P>The AFS administrative databases are housed on database
-server machines and store information that is crucial for correct cell
-functioning. Both server processes and Cache Managers access the
-information frequently:
-<UL>
-<P><LI>Every time a Cache Manager fetches a file from a directory that it has not
-previously accessed, it must look up the file's location in the Volume
-Location Database (VLDB).
-<P><LI>Every time a user obtains an AFS token from the Authentication Server, the
-server looks up the user's password in the Authentication
-Database.
-<P><LI>The first time that a user accesses a volume housed on a specific file
-server machine, the File Server contacts the Protection Server for a list of
-the user's group memberships as recorded in the Protection
-Database.
-<P><LI>Every time you back up a volume using the AFS Backup System, the Backup
-Server creates records for it in the Backup Database.
-</UL>
-<P>Maintaining your cell is simplest if the first machine has the lowest IP
-address of any machine you plan to use as a database server machine. If
-you later decide to use a machine with a lower IP address as a database server
-machine, you must update the <B>CellServDB</B> file on all clients before
-introducing the new machine.
-<P>If your cell has more than one server machine, it is best to run more than
-one as a database server machine (but more than three are rarely
-necessary). Replicating the administrative databases in this way yields
-the same benefits as replicating volumes: increased availability and
-reliability. If one database server machine or process stops
-functioning, the information in the database is still available from
-others. The load of requests for database information is spread across
-multiple machines, preventing any one from becoming overloaded.
-<P>Unlike replicated volumes, however, replicated databases do change
-frequently. Consistent system performance demands that all copies of
-the database always be identical, so it is not acceptable to record changes in
-only some of them. To synchronize the copies of a database, the
-database server processes use AFS's distributed database technology,
-Ubik. See <A HREF="auagd008.htm#HDRWQ102">Replicating the AFS Administrative Databases</A>.
-<P>If your cell has only one file server machine, it must also serve as a
-database server machine. If you cell has two file server machines, it
-is not always advantageous to run both as database server machines. If
-a server, process, or network failure interrupts communications between the
-database server processes on the two machines, it can become impossible to
-update the information in the database because neither of them can alone elect
-itself as the synchronization site.
-<A NAME="IDX5715"></A>
-<A NAME="IDX5716"></A>
-<P><H3><A NAME="HDRWQ53" HREF="auagd002.htm#ToC_61">AFS Files on the Local Disk</A></H3>
-<P>It is generally simplest to store the binaries for all AFS
-server processes in the <B>/usr/afs/bin</B> directory on every file server
-machine, even if some processes do not actively run on the machine.
-This makes it easier to reconfigure a machine to fill a new role.
-<P>For security reasons, the <B>/usr/afs</B> directory on a file server
-machine and all of its subdirectories and files must be owned by the local
-superuser <B>root</B> and have only the first <B>w</B>
-(<B>write</B>) mode bit turned on. Some files even have only the
-first <B>r</B> (<B>read</B>) mode bit turned on (for example, the
-<B>/usr/afs/etc/KeyFile</B> file, which lists the AFS server encryption
-keys). Each time the BOS Server starts, it checks that the mode bits on
-certain files and directories match the expected values. For a list,
-see the <I>IBM AFS Quick Beginnings</I> section about protecting sensitive
-AFS directories, or the discussion of the output from the <B>bos
-status</B> command in <A HREF="auagd009.htm#HDRWQ159">To display the status of server processes and their BosConfig entries</A>.
-<P>For a description of the contents of all AFS directories on a file server
-machine's local disk, see <A HREF="auagd008.htm#HDRWQ80">Administering Server Machines</A>.
-<P><H3><A NAME="Header_62" HREF="auagd002.htm#ToC_62">Configuring Partitions to Store AFS Data</A></H3>
-<P>The partitions that house AFS volumes on a file server machine must be
-mounted at directories named
-<P><B>/vicep<VAR>index</VAR></B>
-<P>where <VAR>index</VAR> is one or two lowercase letters. By convention,
-the first AFS partition created is mounted at the <B>/vicepa</B>
-directory, the second at the <B>/vicepb</B> directory, and so on through
-the <B>/vicepz</B> directory. The names then continue with
-<B>/vicepaa</B> through <B>/vicepaz</B>, <B>/vicepba</B> through
-<B>/vicepbz</B>, and so on, up to the maximum supported number of server
-partitions, which is specified in the <I>IBM AFS Release Notes</I>.
-<P>Each <B>/vicep</B><VAR>x</VAR> directory must correspond to an entire
-partition or logical volume, and must be a subdirectory of the root directory
-( / ). It is not acceptable to configure part of (for example) the
-<B>/usr</B> partition as an AFS server partition and mount it on a
-directory called <B>/usr/vicepa</B>.
-<P>Also, do not store non-AFS files on AFS server partitions. The File
-Server and Volume Server expect to have available all of the space on the
-partition. Sharing space also creates competition between AFS and the
-local UNIX file system for access to the partition, particularly if the UNIX
-files are frequently used.
-<A NAME="IDX5717"></A>
-<A NAME="IDX5718"></A>
-<A NAME="IDX5719"></A>
-<A NAME="IDX5720"></A>
-<A NAME="IDX5721"></A>
-<P><H3><A NAME="Header_63" HREF="auagd002.htm#ToC_63">Monitoring, Rebooting and Automatic Process Restarts</A></H3>
-<P>AFS provides several tools for monitoring the File Server, including
-the <B>scout</B> and <B>afsmonitor</B> programs. You can
-configure them to alert you when certain threshold values are exceeded, for
-example when a server partition is more than 95% full. See <A HREF="auagd013.htm#HDRWQ323">Monitoring and Auditing AFS Performance</A>.
-<P>Rebooting a file server machine requires shutting down the AFS processes
-and so inevitably causes a service outage. Reboot file server machines
-as infrequently as possible. For instructions, see <A HREF="auagd008.htm#HDRWQ139">Rebooting a Server Machine</A>.
-<P>By default, the BOS Server on each file server machine stops and
-immediately restarts all AFS server processes on the machine (including
-itself) once a week, at 4:00 a.m. on Sunday. This
-reduces the potential for the core leaks that can develop as any process runs
-for an extended time.
-<P>The BOS Server also checks each morning at 5:00 a.m.
-for any newly installed binary files in the <B>/usr/afs/bin</B>
-directory. It compares the timestamp on each binary file to the time at
-which the corresponding process last restarted. If the timestamp on the
-binary is later, the BOS Server restarts the corresponding process to start
-using it.
-<P>The default times are in the early morning hours when the outage that
-results from restarting a process is likely to disturb the fewest number of
-people. You can display the restart times for each machine with the
-<B>bos getrestart</B> command, and set them with the <B>bos
-setrestart</B> command. The latter command enables you to disable
-automatic restarts entirely, by setting the time to <B>never</B>.
-See <A HREF="auagd009.htm#HDRWQ171">Setting the BOS Server's Restart Times</A>.
-<A NAME="IDX5722"></A>
-<A NAME="IDX5723"></A>
-<HR><H2><A NAME="HDRWQ54" HREF="auagd002.htm#ToC_64">Configuring Client Machines</A></H2>
-<P>This section summarizes issues to consider as you install and
-configure client machines in your cell.
-<A NAME="IDX5724"></A>
-<A NAME="IDX5725"></A>
-<A NAME="IDX5726"></A>
-<P><H3><A NAME="HDRWQ55" HREF="auagd002.htm#ToC_65">Configuring the Local Disk</A></H3>
-<P>You can often free up significant amounts of local disk space
-on AFS client machines by storing standard UNIX files in AFS and creating
-symbolic links to them from the local disk. The <B>@sys</B>
-pathname variable can be useful in links to system-specific files; see <A HREF="#HDRWQ56">Using the @sys Variable in Pathnames</A>.
-<P>There are two types of files that must actually reside on the local
-disk: boot sequence files needed before the <B>afsd</B> program is
-invoked, and files that can be helpful during file server machine
-outages.
-<P>During a reboot, AFS is inaccessible until the <B>afsd</B> program
-executes and initializes the Cache Manager. (In the conventional
-configuration, the AFS initialization file is included in the machine's
-initialization sequence and invokes the <B>afsd</B> program.) Files
-needed during reboot prior to that point must reside on the local disk.
-They include the following, but this list is not necessarily
-exhaustive.
-<UL>
-<P><LI>Standard UNIX utilities including the following or their
-equivalents:
-<UL>
-<P><LI>Machine initialization files (stored in the <B>/etc</B> or
-<B>/sbin</B> directory on many system types)
-<P><LI>The <B>fstab</B> file
-<P><LI>The <B>mount</B> command binary
-<P><LI>The <B>umount</B> command binary
-</UL>
-<P><LI>All subdirectories and files in the <B>/usr/vice</B> directory,
-including the following:
-<UL>
-<P><LI>The <B>/usr/vice/cache</B> directory
-<P><LI>The <B>/usr/vice/etc/afsd</B> command binary
-<P><LI>The <B>/usr/vice/etc/cacheinfo</B> file
-<P><LI>The <B>/usr/vice/etc/CellServDB</B> file
-<P><LI>The <B>/usr/vice/etc/ThisCell</B> file
-</UL>
-<P>For more information on these files, see <A HREF="auagd015.htm#HDRWQ391">Configuration and Cache-Related Files on the Local Disk</A>.
-</UL>
-<P>The other type of files and programs to retain on the local disk are those
-you need when diagnosing and fixing problems caused by a file server outage,
-because the outage can make inaccessible the copies stored in AFS.
-Examples include the binaries for a text editor (such as <B>ed</B> or
-<B>vi</B>) and for the <B>fs</B> and <B>bos</B> commands.
-Store copies of AFS command binaries in the <B>/usr/vice/etc</B> directory
-as well as including them in the <B>/usr/afsws</B> directory, which is
-normally a link into AFS. Then place the <B>/usr/afsws</B>
-directory before the <B>/usr/vice/etc</B> directory in users'
-<TT>PATH</TT> environment variable definition. When AFS is
-functioning normally, users access the copy in the <B>/usr/afsws</B>
-directory, which is more likely to be current than a local copy.
-<P>You can automate the configuration of client machine local disks by using
-the <B>package</B> program, which updates the contents of the local disk
-to match a configuration file. See <A HREF="auagd016.htm#HDRWQ419">Configuring Client Machines with the package Program</A>.
-<A NAME="IDX5727"></A>
-<P><H3><A NAME="Header_66" HREF="auagd002.htm#ToC_66">Enabling Access to Foreign Cells</A></H3>
-<P>As detailed in <A HREF="#HDRWQ39">Making Other Cells Visible in Your Cell</A>, you enable the Cache Manager to access a cell's
-AFS filespace by storing a list of the cell's database server machines in
-the local <B>/usr/vice/etc/CellServDB</B> file. The Cache Manager
-reads the list into kernel memory at reboot for faster retrieval. You
-can change the list in kernel memory between reboots by using the <B>fs
-newcell</B> command. It is often practical to store a central version
-of the <B>CellServDB</B> file in AFS and use the <B>package</B>
-program periodically to update each client's version with the source
-copy. See <A HREF="auagd015.htm#HDRWQ406">Maintaining Knowledge of Database Server Machines</A>.
-<P>Because each client machine maintains its own copy of the
-<B>CellServDB</B> file, you can in theory enable access to different
-foreign cells on different client machines. This is not usually
-practical, however, especially if users do not always work on the same
-machine.
-<A NAME="IDX5728"></A>
-<A NAME="IDX5729"></A>
-<A NAME="IDX5730"></A>
-<P><H3><A NAME="HDRWQ56" HREF="auagd002.htm#ToC_67">Using the @sys Variable in Pathnames</A></H3>
-<P>When creating symbolic links into AFS on the local disk, it
-is often practical to use the <VAR>@sys</VAR> variable in pathnames. The
-Cache Manager automatically substitutes the local machine's AFS system
-name (CPU/operating system type) for the <VAR>@sys</VAR> variable. This
-means you can place the same links on machines of various system types and
-still have each machine access the binaries for its system type. For
-example, the Cache Manager on a machine running AIX 4.2 converts
-<B>/afs/abc.com/@sys</B> to
-<B>/afs/abc.com/rs_aix42</B>, whereas a machine running Solaris 7
-converts it to <B>/afs/abc.com/sun4x_57</B>.
-<P>If you want to use the <VAR>@sys</VAR> variable, it is simplest to use the
-conventional AFS system type names as specified in the <I>IBM AFS Release
-Notes</I>. The Cache Manager records the local machine's system
-type name in kernel memory during initialization. If you do not use the
-conventional names, you must use the <B>fs sysname</B> command to change
-the value in kernel memory from its default just after Cache Manager
-initialization, on every client machine of the relevant system type.
-The <B>fs sysname</B> command also displays the current value; see <A HREF="auagd015.htm#HDRWQ417">Displaying and Setting the System Type Name</A>.
-<P>In pathnames in the AFS filespace itself, use the <VAR>@sys</VAR> variable
-carefully and sparingly, because it can lead to unexpected results. It
-is generally best to restrict its use to only one level in the
-filespace. The third level is a common choice, because that is where
-many cells store the binaries for different machine types.
-<P>Multiple instances of the <VAR>@sys</VAR> variable in a pathname are
-especially dangerous to people who must explicitly change directories (with
-the <B>cd</B> command, for example) into directories that store binaries
-for system types other than the machine on which they are working, such as
-administrators or developers who maintain those directories. After
-changing directories, it is recommended that such people verify they are in
-the desired directory.
-<P><H3><A NAME="Header_68" HREF="auagd002.htm#ToC_68">Setting Server Preferences</A></H3>
-<P>The Cache Manager stores a table of preferences for file server
-machines in kernel memory. A preference rank pairs a file server
-machine interface's IP address with an integer in the range from 1 to
-65,534. When it needs to access a file, the Cache Manager compares the
-ranks for the interfaces of all machines that house the file, and first
-attempts to access the file via the interface with the best rank. As it
-initializes, the Cache Manager sets default ranks that bias it to access files
-via interfaces that are close to it in terms of network topology. You
-can adjust the preference ranks to improve performance if you wish.
-<P>The Cache Manager also uses similar preferences for Volume Location (VL)
-Server machines. Use the <B>fs getserverprefs</B> command to
-display preference ranks and the <B>fs setserverprefs</B> command to set
-them. See <A HREF="auagd015.htm#HDRWQ414">Maintaining Server Preference Ranks</A>.
-<A NAME="IDX5731"></A>
-<HR><H2><A NAME="HDRWQ57" HREF="auagd002.htm#ToC_69">Configuring AFS User Accounts</A></H2>
-<P>This section discusses some of the issues to consider when
-configuring AFS user accounts. Because AFS is separate from the UNIX
-file system, a user's AFS account is separate from her UNIX
-account.
-<P>The preferred method for creating a user account is with the <B>uss</B>
-suite of commands. With a single command, you can create all the
-components of one or many accounts, after you have prepared a template file
-that guides the account creation. See <A HREF="auagd017.htm#HDRWQ449">Creating and Deleting User Accounts with the uss Command Suite</A>.
-<P>Alternatively, you can issue the individual commands that create each
-component of an account. For instructions, along with instructions for
-removing user accounts and changing user passwords, user volume quotas and
-usernames, see <A HREF="auagd018.htm#HDRWQ491">Administering User Accounts</A>.
-<P>When users leave your system, it is often good policy to remove their
-accounts. Instructions appear in <A HREF="auagd017.htm#HDRWQ486">Deleting Individual Accounts with the uss delete Command</A> and <A HREF="auagd018.htm#HDRWQ524">Removing a User Account</A>.
-<P>An AFS user account consists of the following components, which are
-described in greater detail in <A HREF="auagd018.htm#HDRWQ494">The Components of an AFS User Account</A>.
-<UL>
-<P><LI>A Protection Database entry
-<P><LI>An Authentication Database entry
-<P><LI>A volume
-<P><LI>A home directory at which the volume is mounted
-<P><LI>Ownership of the home directory and full permissions on its ACL
-<P><LI>An entry in the local password file (<B>/etc/passwd</B> or equivalent)
-of each machine the user needs to log into
-<P><LI>Optionally, standard files and subdirectories that make the account more
-useful
-</UL>
-<P>By creating some components but not others, you can create accounts at
-different levels of functionality, using either <B>uss</B> commands as
-described in <A HREF="auagd017.htm#HDRWQ449">Creating and Deleting User Accounts with the uss Command Suite</A> or individual commands as described in <A HREF="auagd018.htm#HDRWQ491">Administering User Accounts</A>. The levels of functionality include
-the following
-<UL>
-<P><LI>An <I>authentication-only account</I> enables the user to obtain AFS
-tokens and so to access protected AFS data and to issue privileged
-commands. It consists only of entries in the Authentication and
-Protection Database. This type of account is suitable for
-administrative accounts and for users from foreign cells who need to access
-protected data. Local users generally also need a volume and home
-directory.
-<P><LI>A <I>basic user account</I> includes a volume for the user, in
-addition to Authentication and Protection Database entries. The volume
-is mounted in the AFS filespace as the user's home directory, and
-provides a repository for the user's personal files.
-<P><LI>A <I>full account</I> adds configuration files for basic functions
-such as logging in, printing, and mail delivery to a basic account, making it
-more convenient and useful. For a discussion of some useful types of
-configuration files, see <A HREF="#HDRWQ60">Creating Standard Files in New AFS Accounts</A>.
-</UL>
-<P>If your users have UNIX user accounts that predate the introduction of AFS
-in the cell, you possibly want to convert them into AFS accounts. There
-are three main issues to consider:
-<UL>
-<P><LI>Making UNIX and AFS UIDs match
-<P><LI>Setting the password field in the local password file appropriately
-<P><LI>Moving files from the UNIX file system into AFS
-</UL>
-<P>For further discussion, see <A HREF="auagd017.htm#HDRWQ459">Converting Existing UNIX Accounts with uss</A> or <A HREF="auagd018.htm#HDRWQ498">Converting Existing UNIX Accounts</A>.
-<A NAME="IDX5732"></A>
-<A NAME="IDX5733"></A>
-<A NAME="IDX5734"></A>
-<A NAME="IDX5735"></A>
-<A NAME="IDX5736"></A>
-<P><H3><A NAME="HDRWQ58" HREF="auagd002.htm#ToC_70">Choosing Usernames and Naming Other Account Components</A></H3>
-<P>This section suggests schemes for choosing usernames, AFS
-UIDs, user volume names and mount point names, and also outlines some
-restrictions on your choices.
-<P><B>Usernames</B>
-<P>AFS imposes very few restrictions on the form of usernames. It is
-best to keep usernames short, both because many utilities and applications can
-handle usernames of no more than eight characters and because by convention
-many components of and AFS account incorporate the name. These include
-the entries in the Protection and Authentication Databases, the volume, and
-the mount point. Depending on your electronic mail delivery system, the
-username can become part of the user's mailing address. The
-username is also the string that the user types when logging in to a client
-machine.
-<P>Some common choices for usernames are last names, first names, initials, or
-a combination, with numbers sometimes added. It is also best to avoid
-using the following characters, many of which have special meanings to the
-command shell.
-<UL>
-<P><LI>The comma ( <B>,</B> )
-<P><LI>The colon ( <B>:</B> ), because AFS reserves it as a field
-separator in protection group names; see <A HREF="#HDRWQ62">The Two Types of User-Defined Groups</A>
-<P><LI>The semicolon ( <B>;</B> )
-<P><LI>The "at-sign" ( <B>@</B> ); this character is reserved for
-Internet mailing addresses
-<P><LI>Spaces
-<P><LI>The newline character
-<P><LI>The period ( <B>.</B> ); it is conventional to use this
-character only in the special username that an administrator adopts while
-performing privileged tasks, such as <B>pat.admin</B>
-</UL>
-<P><B>AFS UIDs and UNIX UIDs</B>
-<P>AFS associates a unique identification number, the <I>AFS UID</I>, with
-every username, recording the mapping in the user's Protection Database
-entry. The AFS UID functions within AFS much as the UNIX UID does in
-the local file system: the AFS server processes and the Cache Manager
-use it internally to identify a user, rather than the username.
-<P>Every AFS user also must have a UNIX UID recorded in the local password
-file (<B>/etc/passwd</B> or equivalent) of each client machine they log
-onto. Both administration and a user's AFS access are simplest if
-the AFS UID and UNIX UID match. One important consequence of matching
-UIDs is that the owner reported by the <B>ls -l</B> command matches the
-AFS username.
-<P>It is usually best to allow the Protection Server to allocate the AFS UID
-as it creates the Protection Database entry. However, both the <B>pts
-createuser</B> command and the <B>uss</B> commands that create user
-accounts enable you to assign AFS UIDs explicitly. This is appropriate
-in two cases:
-<UL>
-<P><LI>You wish to group together the AFS UIDs of related users
-<P><LI>You are converting an existing UNIX account into an AFS account and want
-to make the AFS UID match the existing UNIX UID
-</UL>
-<P>After the Protection Server initializes for the first time on a cell's
-first file server machine, it starts assigning AFS UIDs at a default
-value. To change the default before creating any user accounts, or at
-any time, use the <B>pts setmax</B> command to reset the <TT>max user
-id</TT> counter. To display the counter, use the <B>pts
-listmax</B> command. See <A HREF="auagd019.htm#HDRWQ560">Displaying and Setting the AFS UID and GID Counters</A>.
-<P>AFS reserves one AFS UID, 32766, for the user <B>anonymous</B>.
-The AFS server processes assign this identity and AFS UID to any user who does
-not possess a token for the local cell. Do not assign this AFS UID to
-any other user or hardcode its current value into any programs or a
-file's owner field, because it is subject to change in future
-releases.
-<A NAME="IDX5737"></A>
-<A NAME="IDX5738"></A>
-<P><B>User Volume Names</B>
-<P>Like any volume name, a user volume's base (read/write) name cannot
-exceed 22 characters in length or include the <B>.readonly</B> or
-<B>.backup</B> extension. See <A HREF="#HDRWQ44">Creating Volumes to Simplify Administration</A>. By convention, user volume names have the format
-<B>user.</B><VAR>username</VAR>. Using the
-<B>user.</B> prefix not only makes it easy to identify the
-volume's contents, but also to create a backup version of all user
-volumes by issuing a single <B>vos backupsys</B> command.
-<A NAME="IDX5739"></A>
-<A NAME="IDX5740"></A>
-<P><B>Mount Point Names</B>
-<P>By convention, the mount point for a user's volume is named after the
-username. Many cells follow the convention of mounting user volumes in
-the <B>/afs/</B><VAR>cellname</VAR><B>/usr</B> directory, as discussed
-in <A HREF="#HDRWQ43">The Third Level</A>. Very large cells sometimes find that mounting all
-user volumes in the same directory slows directory lookup, however; for
-suggested alternatives, see the following section.
-<A NAME="IDX5741"></A>
-<A NAME="IDX5742"></A>
-<P><H3><A NAME="HDRWQ59" HREF="auagd002.htm#ToC_71">Grouping Home Directories</A></H3>
-<P>Mounting user volumes in the
-<B>/afs/</B><VAR>cellname</VAR><B>/usr</B> directory is an
-AFS-appropriate variation on the standard UNIX practice of putting user home
-directories under the <B>/usr</B> subdirectory. However, cells with
-more than a few hundred users sometimes find that mounting all user volumes in
-a single directory results in slow directory lookup. The solution is to
-distribute user volume mount points into several directories; there are a
-number of alternative methods to accomplish this.
-<UL>
-<P><LI>Distribute user home directories into multiple directories that reflect
-organizational divisions, such as academic or corporate departments.
-For example, a company can create group directories called
-<B>usr/marketing</B>, <B>usr/research</B>,
-<B>usr/finance</B>. A good feature of this scheme is that knowing a
-user's department is enough to find the user's home
-directory. Also, it makes it easy to set the ACL to limit access to
-members of the department only. A potential drawback arises if
-departments are of sufficiently unequal size that users in large departments
-experience slower lookup than users in small departments. This scheme
-is also not appropriate in cells where users frequently change between
-divisions.
-<P><LI>Distribute home directories into alphabetic subdirectories of the
-<B>usr</B> directory (the <B>usr/a</B> subdirectory, the
-<B>usr/b</B> subdirectory, and so on), based on the first letter of the
-username. If the cell is very large, create subdirectories under each
-letter that correspond to the second letter in the user name. This
-scheme has the same advantages and disadvantages of a department-based
-scheme. Anyone who knows the user's username can find the
-user's home directory, but users with names that begin with popular
-letters sometimes experience slower lookup.
-<P><LI>Distribute home directories randomly but evenly into more than one
-grouping directory. One cell that uses this scheme has over twenty such
-directories called the <B>usr1</B> directory, the <B>usr2</B>
-directory, and so on. This scheme is especially appropriate in cells
-where the other two schemes do not seem feasible. It eliminates the
-potential problem of differences in lookup speed, because all directories are
-about the same size. Its disadvantage is that there is no way to guess
-which directory a given user's volume is mounted in, but a solution is to
-create a symbolic link in the regular <B>usr</B> directory that references
-the actual mount point. For example, if user <B>smith</B>'s
-volume is mounted at the <B>/afs/bigcell.com/usr17/smith</B>
-directory, then the <B>/afs/bigcell.com/usr/smith</B> directory is
-a symbolic link to the <B>../usr17/smith</B>
-directory. This way, if someone does not know which directory the user
-<B>smith</B> is in, he or she can access it through the link called
-<B>usr/smith</B>; people who do know the appropriate directory save
-lookup time by specifying it.
-</UL>
-<P>For instructions on how to implement the various schemes when using the
-<B>uss</B> program to create user accounts, see <A HREF="auagd017.htm#HDRWQ472">Evenly Distributing User Home Directories with the G Instruction</A> and <A HREF="auagd017.htm#HDRWQ473">Creating a Volume with the V Instruction</A>.
-<P><H3><A NAME="Header_72" HREF="auagd002.htm#ToC_72">Making a Backup Version of User Volumes Available</A></H3>
-<P>Mounting the backup version of a user's volume is a simple way to
-enable users themselves to restore data they have accidentally removed or
-deleted. It is conventional to mount the backup version at a
-subdirectory of the user's home directory (called perhaps the
-<B>OldFiles</B> subdirectory), but other schemes are possible. Once
-per day you create a new backup version to capture the changes made that day,
-overwriting the previous day's backup version with the new one.
-Users can always retrieve the previous day's copy of a file without your
-assistance, freeing you to deal with more pressing tasks.
-<P>Users sometimes want to delete the mount point to their backup volume,
-because they erroneously believe that the backup volume's contents count
-against their quota. Remind them that the backup volume is separate, so
-the only space it uses in the user volume is the amount needed for the mount
-point.
-<P>For further discussion of backup volumes, see <A HREF="#HDRWQ77">Backing Up AFS Data</A> and <A HREF="auagd010.htm#HDRWQ201">Creating Backup Volumes</A>.
-<A NAME="IDX5743"></A>
-<A NAME="IDX5744"></A>
-<A NAME="IDX5745"></A>
-<P><H3><A NAME="HDRWQ60" HREF="auagd002.htm#ToC_73">Creating Standard Files in New AFS Accounts</A></H3>
-<P>From your experience as a UNIX administrator, you are
-probably familiar with the use of login and shell initialization files (such
-as the <B>.login</B> and <B>.cshrc</B> files) to make an
-account easier to use.
-<P>It is often practical to add some AFS-specific directories to the
-definition of the user's <TT>PATH</TT> environment variable, including
-the following:
-<UL>
-<P><LI>The path to a <B>bin</B> subdirectory in the user's home
-directory for binaries the user has created (that is,
-<B>/afs/<VAR>cellname</VAR><B>/usr/</B>
-<VAR>username</VAR><B>/bin</B>)</B>
-<P><LI>The <B>/usr/afsws/bin</B> path, which conventionally includes programs
-like <B>fs</B>, <B>klog</B>, <B>kpasswd</B>, <B>pts</B>,
-<B>tokens</B>, and <B>unlog</B>
-<P><LI>The <B>/usr/afsws/etc</B> path, if the user is an administrator;
-it usually houses the AFS command suites that require privilege (the
-<B>backup</B>, <B>butc</B>, <B>kas</B>, <B>uss</B>,
-<B>vos</B> commands), the <B>package</B> program, and others
-</UL>
-<P>If you are not using an AFS-modified login utility, it can be helpful to
-users to invoke the <B>klog</B> command in their <B>.login</B>
-file so that they obtain AFS tokens as part of logging in. In the
-following example command sequence, the first line echoes the string
-<TT>klog</TT> to the standard output stream, so that the user understands
-the purpose of the <TT>Password:</TT> prompt that appears when the
-second line is executed. The <B>-setpag</B> flag associates the new
-tokens with a process authentication group (PAG), which is discussed further
-in <A HREF="#HDRWQ64">Identifying AFS Tokens by PAG</A>.
-<PRE>   echo -n "klog "
-   klog -setpag
-</PRE>
-<P>The following sequence of commands has a similar effect, except that the
-<B>pagsh</B> command forks a new shell with which the PAG and tokens are
-associated.
-<PRE>   pagsh
-   echo -n "klog "
-   klog
-</PRE>
-<P>If you use an AFS-modified login utility, this sequence is not necessary,
-because such utilities both log a user in locally and obtain AFS
-tokens.
-<A NAME="IDX5746"></A>
-<A NAME="IDX5747"></A>
-<A NAME="IDX5748"></A>
-<A NAME="IDX5749"></A>
-<HR><H2><A NAME="HDRWQ61" HREF="auagd002.htm#ToC_74">Using AFS Protection Groups</A></H2>
-<P>AFS enables users to define their own <I>groups</I> of
-other users or machines. The groups are placed on ACLs to grant the
-same permissions to many users without listing each user individually.
-For group creation instructions, see <A HREF="auagd019.htm#HDRWQ531">Administering the Protection Database</A>.
-<P>Groups have AFS ID numbers, just as users do, but an AFS group ID (GID) is
-a negative integer whereas a user's AFS UID is a positive integer.
-By default, the Protection Server allocates a new group's AFS GID
-automatically, but members of the <B>system:administrators</B> group
-can assign a GID when issuing the <B>pts creategroup</B> command.
-Before explicitly assigning a GID, it is best to verify that it is not already
-in use.
-<P>A group cannot belong to another group, but it can own another group or
-even itself as long as it (the owning group) has at least one member.
-The current owner of a group can transfer ownership of the group to another
-user or group, even without the new owner's permission. At that
-point the former owner loses administrative control over the group.
-<P>By default, each user can create 20 groups. A system administrator
-can increase or decrease this group creation quota with the <B>pts
-setfields</B> command.
-<P>Each Protection Database entry (group or user) is protected by a set of
-five <I>privacy flags</I>which limit who can administer the entry and what
-they can do. The default privacy flags are fairly restrictive,
-especially for user entries. See <A HREF="auagd019.htm#HDRWQ559">Setting the Privacy Flags on Database Entries</A>.
-<A NAME="IDX5750"></A>
-<A NAME="IDX5751"></A>
-<A NAME="IDX5752"></A>
-<A NAME="IDX5753"></A>
-<P><H3><A NAME="Header_75" HREF="auagd002.htm#ToC_75">The Three System Groups</A></H3>
-<P>As the Protection Server initializes for the first time on a
-cell's first database server machine, it automatically creates three
-group entries: the <B>system:anyuser</B>,
-<B>system:authuser</B>, and <B>system:administrators</B>
-groups. 
-<A NAME="IDX5754"></A>
-<P>The first two system groups are unlike any other groups in the Protection
-Database in that they do not have a stable membership:
-<UL>
-<P><LI>The <B>system:anyuser</B> group includes everyone who can access
-a cell's AFS filespace: users who have tokens for the local cell,
-users who have logged in on a local AFS client machine but not obtained tokens
-(such as the local superuser <B>root</B>), and users who have connected to
-a local machine from outside the cell. Placing the
-<B>system:anyuser</B> group on an ACL grants access to the widest
-possible range of users. It is the only way to extend access to users
-from foreign AFS cells that do not have local accounts.
-<P><LI>The <B>system:authuser</B> group includes everyone who has a
-valid token obtained from the cell's AFS authentication service.
-</UL>
-<P>Because the groups do not have a stable membership, the <B>pts
-membership</B> command produces no output for them. Similarly, they
-do not appear in the list of groups to which a user belongs.
-<P>The <B>system:administrators</B> group does have a stable
-membership, consisting of the cell's privileged administrators.
-Members of this group can issue any <B>pts</B> command, and are the only
-ones who can issue several other restricted commands (such as the
-<B>chown</B> command on AFS files). By default, they also
-implicitly have the <B>a</B> (<B>administer</B>) and <B>l</B>
-(<B>lookup</B>) permissions on every ACL in the filespace. For
-information about changing this default, see <A HREF="auagd021.htm#HDRWQ586">Administering the system:administrators Group</A>.
-<P>For a discussion of how to use system groups effectively on ACLs, see <A HREF="auagd020.htm#HDRWQ571">Using Groups on ACLs</A>.
-<P><H3><A NAME="HDRWQ62" HREF="auagd002.htm#ToC_76">The Two Types of User-Defined Groups</A></H3>
-<P>All users can create <I>regular</I> groups. A
-regular group name has two fields separated by a colon, the first of which
-must indicate the group's ownership. The Protection Server refuses
-to create or change the name of a group if the result does not accurately
-indicate the ownership.
-<P>Members of the <B>system:administrators</B> group can create
-<I>prefix-less</I> groups whose names do not have the first field that
-indicates ownership. For suggestions on using the two types of groups
-effectively, see <A HREF="auagd019.htm#HDRWQ545">Using Groups Effectively</A>.
-<A NAME="IDX5755"></A>
-<A NAME="IDX5756"></A>
-<HR><H2><A NAME="HDRWQ63" HREF="auagd002.htm#ToC_77">Login and Authentication in AFS</A></H2>
-<P>As explained in <A HREF="#HDRWQ31">Differences in Authentication</A>, AFS authentication is separate from UNIX
-authentication because the two file systems are separate. The
-separation has two practical implications:
-<UL>
-<P><LI>To access AFS files, users must both log into the local file system and
-authenticate with the AFS authentication service. (Logging into the
-local file system is necessary because the only way to access the AFS
-filespace is through a Cache Manager, which resides in the local
-machine's kernel.)
-<P><LI>Passwords are stored in two separate places: in the Authentication
-Database for AFS and in the each machine's local password file (the
-<B>/etc/passwd</B> file or equivalent) for the local file system.
-</UL>
-<P>When a user successfully authenticates, the AFS authentication service
-passes a <I>token</I> to the user's Cache Manager. The token
-is a small collection of data that certifies that the user has correctly
-provided the password associated with a particular AFS identity. The
-Cache Manager presents the token to AFS server processes along with service
-requests, as proof that the user is genuine. To learn about the mutual
-authentication procedure they use to establish identity, see <A HREF="#HDRWQ75">A More Detailed Look at Mutual Authentication</A>.
-<P>The Cache Manager stores tokens in the user's credential structure in
-kernel memory. To distinguish one user's credential structure from
-another's, the Cache Manager identifies each one either by the
-user's UNIX UID or by a <I>process authentication group</I>
-(<I>PAG</I>), which is an identification number guaranteed to be unique in
-the cell. For further discussion, see <A HREF="#HDRWQ64">Identifying AFS Tokens by PAG</A>.
-<A NAME="IDX5757"></A>
-<P>A user can have only one token per cell in each separately identified
-credential structure. To obtain a second token for the same cell, the
-user must either log into a different machine or obtain another credential
-structure with a different identifier than any existing credential structure,
-which is most easily accomplished by issuing the <B>pagsh</B> command (see
-<A HREF="#HDRWQ64">Identifying AFS Tokens by PAG</A>). In a single credential structure, a user can have
-one token for each of many cells at the same time. As this implies,
-authentication status on one machine or PAG is independent of authentication
-status on another machine or PAG, which can be very useful to a user or system
-administrator.
-<P>The AFS distribution includes library files that enable each system
-type's login utility to authenticate users with AFS and log them into the
-local file system in one step. If you do not configure an AFS-modified
-login utility on a client machine, its users must issue the <B>klog</B>
-command to authenticate with AFS after logging in. 
-<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">The AFS-modified libraries do not necessarily support all features available
-in an operating system's proprietary login utility. In some cases,
-it is not possible to support a utility at all. For more information
-about the supported utilities in each AFS version, see the <I>IBM AFS
-Release Notes</I>.
-</TD></TR></TABLE>
-<A NAME="IDX5758"></A>
-<A NAME="IDX5759"></A>
-<A NAME="IDX5760"></A>
-<A NAME="IDX5761"></A>
-<A NAME="IDX5762"></A>
-<A NAME="IDX5763"></A>
-<A NAME="IDX5764"></A>
-<P><H3><A NAME="HDRWQ64" HREF="auagd002.htm#ToC_78">Identifying AFS Tokens by PAG</A></H3>
-<P>As noted, the Cache Manager identifies user credential
-structures either by UNIX UID or by PAG. Using a PAG is preferable
-because it guaranteed to be unique: the Cache Manager allocates it based
-on a counter that increments with each use. In contrast, multiple users
-on a machine can share or assume the same UNIX UID, which creates potential
-security problems. The following are two common such situations:
-<UL>
-<P><LI>The local superuser <B>root</B> can always assume any other
-user's UNIX UID simply by issuing the <B>su</B> command, without
-providing the user's password. If the credential structure is
-associated with the user's UNIX UID, then assuming the UID means
-inheriting the AFS tokens.
-<P><LI>Two users working on different NFS client machines can have the same UNIX
-UID in their respective local file systems. If they both access the
-same NFS/AFS Translator machine, and the Cache Manager there identifies them
-by their UNIX UID, they become indistinguishable. To eliminate this
-problem, the Cache Manager on a translator machine automatically generates a
-PAG for each user and uses it, rather than the UNIX UID, to tell users
-apart.
-</UL>
-<P>Yet another advantage of PAGs over UIDs is that processes spawned by the
-user inherit the PAG and so share the token; thus they gain access to AFS
-as the authenticated user. In many environments, for example, printer
-and other daemons run under identities (such as the local superuser
-<B>root</B>) that the AFS server processes recognize only as the
-<B>anonymous</B> user. Unless PAGs are used, such daemons cannot
-access files for which the <B>system:anyuser</B> group does not have
-the necessary ACL permissions.
-<P>Once a user has a PAG, any new tokens the user obtains are associated with
-the PAG. The PAG expires two hours after any associated tokens expire
-or are discarded. If the user issues the <B>klog</B> command before
-the PAG expires, the new token is associated with the existing PAG (the PAG is
-said to be <I>recycled</I> in this case).
-<P>AFS-modified login utilities automatically generate a PAG, as described in
-the following section. If you use a standard login utility, your users
-must issue the <B>pagsh</B> command before the <B>klog</B> command, or
-include the latter command's <B>-setpag</B> flag. For
-instructions, see <A HREF="#HDRWQ69">Using Two-Step Login and Authentication</A>.
-<P>Users can also use either command at any time to create a new PAG.
-The difference between the two commands is that the <B>klog</B> command
-replaces the PAG associated with the current command shell and tokens.
-The <B>pagsh</B> command initializes a new command shell before creating a
-new PAG. If the user already had a PAG, any running processes or jobs
-continue to use the tokens associated with the old PAG whereas any new jobs or
-processes use the new PAG and its associated tokens. When you exit the
-new shell (by pressing &lt;<B>Ctrl-d</B>>, for example), you return to the
-original PAG and shell. By default, the <B>pagsh</B> command
-initializes a Bourne shell, but you can include the <B>-c</B> argument to
-initialize a C shell (the <B>/bin/csh</B> program on many system types) or
-Korn shell (the <B>/bin/ksh</B> program) instead.
-<A NAME="IDX5765"></A>
-<P><H3><A NAME="HDRWQ65" HREF="auagd002.htm#ToC_79">Using an AFS-modified login Utility</A></H3>
-<P>As previously mentioned, an AFS-modified login utility
-simultaneously obtains an AFS token and logs the user into the local file
-system. This section outlines the login and authentication process and
-its interaction with the value in the password field of the local password
-file.
-<P>An AFS-modified login utility performs a sequence of steps similar to the
-following; details can vary for different operating systems:
-<OL TYPE=1>
-<P><LI>It checks the user's entry in the local password file (the
-<B>/etc/passwd</B> file or equivalent).
-<P><LI>If no entry exists, or if an asterisk ( <TT>*</TT> ) appears in the
-entry's password field, the login attempt fails. If the entry
-exists, the attempt proceeds to the next step.
-<P><LI><A NAME="LIWQ66"></A>The utility obtains a PAG.
-<P><LI><A NAME="LIWQ67"></A>The utility converts the password provided by the user into an
-encryption key and encrypts a packet of data with the key. It sends the
-packet to the AFS authentication service (the AFS Authentication Server in the
-conventional configuration).
-<P><LI>The authentication service decrypts the packet and, depending on the
-success of the decryption, judges the password to be correct or
-incorrect. (For more details, see <A HREF="#HDRWQ75">A More Detailed Look at Mutual Authentication</A>.)
-<UL>
-<P><LI>If the authentication service judges the password incorrect, the user does
-not receive an AFS token. The PAG is retained, ready to be associated
-with any tokens obtained later. The attempt proceeds to Step <A HREF="#LIWQ68">6</A>.
-<P><LI>If the authentication service judges the password correct, it issues a
-token to the user as proof of AFS authentication. The login utility
-logs the user into the local UNIX file system. Some login utilities
-echo the following banner to the screen to alert the user to authentication
-with AFS. Step <A HREF="#LIWQ68">6</A> is skipped. 
-<PRE>   AFS(R) <VAR>version</VAR> Login 
-</PRE>
-</UL>
-<P><LI><A NAME="LIWQ68"></A>If no AFS token was granted in Step <A HREF="#LIWQ67">4</A>, the login utility attempts to log the user into the local
-file system, by comparing the password provided to the local password
-file. 
-<UL>
-<P><LI>If the password is incorrect or any value other than an encrypted
-13-character string appears in the password field, the login attempt
-fails.
-<P><LI>If the password is correct, the user is logged into the local file system
-only.
-</UL>
-</OL>
-<A NAME="IDX5766"></A>
-<A NAME="IDX5767"></A>
-<A NAME="IDX5768"></A>
-<P>As indicated, when you use an AFS-modified login utility, the password
-field in the local password file is no longer the primary gate for access to
-your system. If the user provides the correct AFS password, then the
-program never consults the local password file. However, you can still
-use the password field to control access, in the following way:
-<UL>
-<P><LI>To prevent both local login and AFS authentication, place an asterisk (
-<B>*</B> ) in the field. This is useful mainly in emergencies, when
-you want to prevent a certain user from logging into the machine.
-<P><LI>To prevent login to the local file system if the user does not provide the
-correct AFS password, place a character string of any length other than the
-standard thirteen characters in the field. This is appropriate if you
-want to permit only people with local AFS accounts to login on your
-machines. A single <B>X</B> or other character is the most easily
-recognizable way to do this.
-<P><LI>To enable a user to log into the local file system even after providing an
-incorrect AFS password, record a standard UNIX encrypted password in the field
-by issuing the standard UNIX password-setting command (<B>passwd</B> or
-equivalent).
-</UL>
-<P>Systems that use a Pluggable Authentication Module (PAM) for login and AFS
-authentication do not necessarily consult the local password file at all, in
-which case they do not use the password field to control authentication and
-login attempts. Instead, instructions in the PAM configuration file (on
-many system types, <B>/etc/pam.conf</B>) fill the same
-function. See the instructions in the <I>IBM AFS Quick
-Beginnings</I> for installing AFS-modified login utilities.
-<A NAME="IDX5769"></A>
-<P><H3><A NAME="HDRWQ69" HREF="auagd002.htm#ToC_80">Using Two-Step Login and Authentication</A></H3>
-<P>In cells that do not use an AFS-modified login utility, users
-must issue separate commands to login and authenticate, as detailed in the
-<I>IBM AFS User Guide</I>:
-<OL TYPE=1>
-<P><LI>They use the standard <B>login</B> program to login to the local file
-system, providing the password listed in the local password file (the
-<B>/etc/passwd</B> file or equivalent).
-<P><LI>They must issue the <B>klog</B> command to authenticate with the AFS
-authentication service, including its <B>-setpag</B> flag to associate the
-new tokens with a process authentication group (PAG).
-</OL>
-<P>As mentioned in <A HREF="#HDRWQ60">Creating Standard Files in New AFS Accounts</A>, you can invoke the <B>klog -setpag</B> command in a
-user's <B>.login</B> file (or equivalent) so that the user
-does not have to remember to issue the command after logging in. The
-user still must type a password twice, once at the prompt generated by the
-login utility and once at the <B>klog</B> command's prompt.
-This implies that the two passwords can differ, but it is less confusing if
-they do not.
-<P>Another effect of not using an AFS-modified login utility is that the AFS
-servers recognize the standard <B>login</B> program as the
-<B>anonymous</B> user. If the <B>login</B> program needs to
-access any AFS files (such as the <B>.login</B> file in a
-user's home directory), then the ACL that protects the file must include
-an entry granting the <B>l</B> (<B>lookup</B>) and <B>r</B>
-(<B>read</B>) permissions to the <B>system:anyuser</B>
-group.
-<P>When you do not use an AFS-modified login utility, an actual (scrambled)
-password must appear in the local password file for each user. Use the
-<B>/bin/passwd</B> file to insert or change these passwords. It is
-simpler if the password in the local password file matches the AFS password,
-but it is not required.
-<A NAME="IDX5770"></A>
-<A NAME="IDX5771"></A>
-<A NAME="IDX5772"></A>
-<A NAME="IDX5773"></A>
-<A NAME="IDX5774"></A>
-<A NAME="IDX5775"></A>
-<A NAME="IDX5776"></A>
-<A NAME="IDX5777"></A>
-<A NAME="IDX5778"></A>
-<A NAME="IDX5779"></A>
-<A NAME="IDX5780"></A>
-<A NAME="IDX5781"></A>
-<A NAME="IDX5782"></A>
-<A NAME="IDX5783"></A>
-<P><H3><A NAME="Header_81" HREF="auagd002.htm#ToC_81">Obtaining, Displaying, and Discarding Tokens</A></H3>
-<P>Once logged in, a user can obtain a token at any time with the
-<B>klog</B> command. If a valid token already exists, the new one
-overwrites it. If a PAG already exists, the new token is associated
-with it.
-<P>By default, the <B>klog</B> command authenticates the issuer using the
-identity currently logged in to the local file system. To authenticate
-as a different identity, use the <B>-principal</B> argument. To
-obtain a token for a foreign cell, use the <B>-cell</B> argument (it can
-be combined with the <B>-principal</B> argument). See the <I>IBM
-AFS User Guide</I> and the entry for the <B>klog</B> command in the
-<I>IBM AFS Administration Reference</I>.
-<P>To discard either all tokens or the token for a particular cell, issue the
-<B>unlog</B> command. The command affects only the tokens
-associated with the current command shell. See the <I>IBM AFS User
-Guide</I>and the entry for the <B>unlog</B> command in the <I>IBM AFS
-Administration Reference</I>.
-<P>To display the tokens associated with the current command shell, issue the
-<B>tokens</B> command. The following examples illustrate its output
-in various situations.
-<P>If the issuer is not authenticated in any cell:
-<PRE>   % <B>tokens</B>
-   Tokens held by the Cache Manager:
-          --End of list--
-</PRE>
-<P>The following shows the output for a user with AFS UID 1000 in the ABC
-Corporation cell:
-<PRE>   % <B>tokens</B>
-   Tokens held by the Cache Manager: 
-   
-   User's (AFS ID 1000) tokens for afs@abc.com  [Expires Jun  2 10:00]
-       --End of list--
-</PRE>
-<P>The following shows the output for a user who is authenticated in ABC
-Corporation cell, the State University cell and the DEF Company cell.
-The user has different AFS UIDs in the three cells. Tokens for the last
-cell are expired:
-<PRE>   % <B>tokens</B>
-   Tokens held by the Cache Manager:
-    
-   User's (AFS ID 1000) tokens for afs@abc.com  [Expires Jun  2 10:00]
-   User's (AFS ID 4286) tokens for afs@stateu.edu  [Expires Jun  3 1:34]
-   User's (AFS ID 22) tokens for afs@def.com  [>>Expired&lt;&lt;]
-       --End of list--
-</PRE>
-<P>The Kerberos version of the <B>tokens</B> command (the
-<B>tokens.krb</B> command), also reports information on the
-ticket-granting ticket, including the ticket's owner, the ticket-granting
-service, and the expiration date, as in the following example. Also see
-<A HREF="#HDRWQ70">Support for Kerberos Authentication</A>.
-<PRE>   % <B>tokens.krb</B>
-   Tokens held by the Cache Manager:
-   User's (AFS ID 1000) tokens for afs@abc.com [Expires Jun  2 10:00]
-   User smith's tokens for krbtgt.ABC.COM@abc.com [Expires Jun  2 10:00]
-     --End of list--
-</PRE>
-<P><H3><A NAME="Header_82" HREF="auagd002.htm#ToC_82">Setting Default Token Lifetimes for Users</A></H3>
-<A NAME="IDX5784"></A>
-<P>The maximum lifetime of a user token is the smallest of the <I>ticket
-lifetimes</I> recorded in the following three Authentication Database
-entries. The <B>kas examine</B> command reports the lifetime as
-<TT>Max ticket lifetime</TT>. Administrators who have the
-<TT>ADMIN</TT> flag on their Authentication Database entry can use the
-<B>-lifetime</B> argument to the <B>kas setfields</B> command to set
-an entry's ticket lifetime.
-<UL>
-<P><LI>The <B>afs</B> entry, which corresponds to the AFS server
-processes. The default is 100 hours.
-<P><LI>The <B>krbtgt</B>.<VAR>cellname</VAR> entry, which corresponds to
-the ticket-granting ticket used internally in generating the token. The
-default is 720 hours (30 days).
-<P><LI>The entry for the user of the AFS-modified login utility or issuer of the
-<B>klog</B> command. The default is 25 hours for user entries
-created using the AFS 3.1 or later version of the Authentication
-Server, and 100 hours for user entries created using the AFS 3.0
-version of the Authentication Server. A user can use the <B>kas
-examine</B> command to display his or her own Authentication Database
-entry.
-</UL>
-<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">An AFS-modified login utility always grants a token with a lifetime
-calculated from the previously described three values. When issuing the
-<B>klog</B> command, a user can request a lifetime shorter than the
-default by using the <B>-lifetime</B> argument. For further
-information, see the <I>IBM AFS User Guide</I> and the <B>klog</B>
-reference page in the <I>IBM AFS Administration Reference</I>.
-</TD></TR></TABLE>
-<P><H3><A NAME="Header_83" HREF="auagd002.htm#ToC_83">Changing Passwords</A></H3>
-<A NAME="IDX5785"></A>
-<A NAME="IDX5786"></A>
-<A NAME="IDX5787"></A>
-<A NAME="IDX5788"></A>
-<A NAME="IDX5789"></A>
-<P>Regular AFS users can change their own passwords by using either the
-<B>kpasswd</B> or <B>kas setpassword</B> command. The commands
-prompt for the current password and then twice for the new password, to screen
-out typing errors.
-<P>Administrators who have the <TT>ADMIN</TT> flag on their Authentication
-Database entries can change any user's password, either by using the
-<B>kpasswd</B> command (which requires knowing the current password) or
-the <B>kas setpassword</B> command.
-<P>If your cell does not use an AFS-modified login utility, remember also to
-change the local password, using the operating system's password-changing
-command. For more instructions on changing passwords, see <A HREF="auagd018.htm#HDRWQ516">Changing AFS Passwords</A>.
-<P><H3><A NAME="Header_84" HREF="auagd002.htm#ToC_84">Imposing Restrictions on Passwords and Authentication Attempts</A></H3>
-<P>You can help to make your cell more secure by imposing restrictions on
-user passwords and authentication attempts. To impose the restrictions
-as you create an account, use the <B>A</B> instruction in the
-<B>uss</B> template file as described in <A HREF="auagd017.htm#HDRWQ478">Increasing Account Security with the A Instruction</A>. To set or change the values on an existing
-account, use the <B>kas setfields</B> command as described in <A HREF="auagd018.htm#HDRWQ515">Improving Password and Authentication Security</A>.
-<A NAME="IDX5790"></A>
-<A NAME="IDX5791"></A>
-<A NAME="IDX5792"></A>
-<A NAME="IDX5793"></A>
-<A NAME="IDX5794"></A>
-<A NAME="IDX5795"></A>
-<P>By default, AFS passwords never expire. Limiting password lifetime
-can help improve security by decreasing the time the password is subject to
-cracking attempts. You can choose an lifetime from 1 to 254 days after
-the password was last changed. It automatically applies to each new
-password as it is set. When the user changes passwords, you can also
-insist that the new password is not similar to any of the 20 passwords
-previously used.
-<A NAME="IDX5796"></A>
-<A NAME="IDX5797"></A>
-<A NAME="IDX5798"></A>
-<A NAME="IDX5799"></A>
-<P>Unscrupulous users can try to gain access to your AFS cell by guessing an
-authorized user's password. To protect against this type of
-attack, you can limit the number of times that a user can consecutively fail
-to provide the correct password. When the limit is exceeded, the
-authentication service refuses further authentication attempts for a specified
-period of time (the <I>lockout time</I>). To reenable
-authentication attempts before the lockout time expires, an administrator must
-issue the <B>kas unlock</B> command.
-<A NAME="IDX5800"></A>
-<A NAME="IDX5801"></A>
-<A NAME="IDX5802"></A>
-<A NAME="IDX5803"></A>
-<A NAME="IDX5804"></A>
-<A NAME="IDX5805"></A>
-<P>In addition to settings on user's authentication accounts, you can
-improve security by automatically checking the quality of new user
-passwords. The <B>kpasswd</B> and <B>kas setpassword</B>
-commands pass the proposed password to a program or script called
-<B>kpwvalid</B>, if it exists. The <B>kpwvalid</B> performs
-quality checks and returns a code to indicate whether the password is
-acceptable. You can create your own program or modified the sample
-program included in the AFS distribution. See the <B>kpwvalid</B>
-reference page in the <I>IBM AFS Administration Reference</I>.
-<P>There are several types of quality checks that can improve password
-quality.
-<UL>
-<P><LI>The password is a minimum length
-<P><LI>The password is not a word
-<P><LI>The password contains both numbers and letters
-</UL>
-<P><H3><A NAME="HDRWQ70" HREF="auagd002.htm#ToC_85">Support for Kerberos Authentication</A></H3>
-<A NAME="IDX5806"></A>
-<A NAME="IDX5807"></A>
-<A NAME="IDX5808"></A>
-<A NAME="IDX5809"></A>
-<A NAME="IDX5810"></A>
-<A NAME="IDX5811"></A>
-<A NAME="IDX5812"></A>
-<P>If your site is using standard Kerberos authentication rather than the AFS
-Authentication Server, use the modified versions of the <B>klog</B>,
-<B>pagsh</B>, and <B>tokens</B> commands that support Kerberos
-authentication. The binaries for the modified version of these commands
-have the same name as the standard binaries with the addition of a
-<B>.krb</B> extension.
-<P>Use either the Kerberos version or the standard command throughout the
-cell; do not mix the two versions. AFS Product Support can provide
-instructions on installing the Kerberos version of these four commands.
-For information on the differences between the two versions of these commands,
-see the <I>IBM AFS Administration Reference</I>.
-<HR><H2><A NAME="HDRWQ71" HREF="auagd002.htm#ToC_86">Security and Authorization in AFS</A></H2>
-<P>AFS incorporates several features to ensure that only
-authorized users gain access to data. This section summarizes the most
-important of them and suggests methods for improving security in your
-cell.
-<P><H3><A NAME="HDRWQ72" HREF="auagd002.htm#ToC_87">Some Important Security Features</A></H3>
-<A NAME="IDX5813"></A>
-<A NAME="IDX5814"></A>
-<P><B>ACLs on Directories</B>
-<P>Files in AFS are protected by the access control list (ACL) associated with
-their parent directory. The ACL defines which users or groups can
-access the data in the directory, and in what way. See <A HREF="auagd020.htm#HDRWQ562">Managing Access Control Lists</A>.
-<P><B>Mutual Authentication Between Client and Server</B>
-<P>When an AFS client and server process communicate, each requires the other
-to prove its identity during mutual authentication, which involves the
-exchange of encrypted information that only valid parties can decrypt and
-respond to. For a detailed description of the mutual authentication
-process, see <A HREF="#HDRWQ75">A More Detailed Look at Mutual Authentication</A>.
-<P>AFS server processes mutually authenticate both with one another and with
-processes that represent human users. After mutual authentication is
-complete, the server and client have established an authenticated connection,
-across which they can communicate repeatedly without having to authenticate
-again until the connection expires or one of the parties closes it.
-Authenticated connections have varying lifetimes.
-<P><B>Tokens</B>
-<P>In order to access AFS files, users must prove their identities to the AFS
-authentication service by providing the correct AFS password. If the
-password is correct, the authentication service sends the user a
-<I>token</I> as evidence of authenticated status. See <A HREF="#HDRWQ63">Login and Authentication in AFS</A>.
-<P>Servers assign the user identity <B>anonymous</B> to users and
-processes that do not have a valid token. The <B>anonymous</B>
-identity has only the access granted to the <B>system:anyuser</B>
-group on ACLs.
-<P><B>Authorization Checking</B>
-<P>Mutual authentication establishes that two parties communicating with one
-another are actually who they claim to be. For many functions, AFS
-server processes also check that the client whose identity they have verified
-is also authorized to make the request. Different requests require
-different kinds of privilege. See <A HREF="#HDRWQ73">Three Types of Privilege</A>.
-<P><B>Encrypted Network Communications</B>
-<A NAME="IDX5815"></A>
-<A NAME="IDX5816"></A>
-<A NAME="IDX5817"></A>
-<P>The AFS server processes encrypt particularly sensitive information before
-sending it back to clients. Even if an unauthorized party is able to
-eavesdrop on an authenticated connection, they cannot decipher encrypted data
-without the proper key.
-<P>The following AFS commands encrypt data because they involve server
-encryption keys and passwords: 
-<UL>
-<P><LI>The <B>bos addkey</B> command, which adds a server encryption key to
-the <B>/usr/afs/etc/KeyFile</B> file
-<P><LI>The <B>bos listkeys</B> command, which lists the server encryption
-keys from the <B>/usr/afs/etc/KeyFile</B> file
-<P><LI>The <B>kpasswd</B> command, which changes a password in the
-Authentication Database
-<P><LI>Most commands in the <B>kas</B> command suite
-</UL>
-<P>In addition, the United States edition of the Update Server encrypts
-sensitive information (such as the contents of <B>KeyFile</B>) when
-distributing it. Other commands in the <B>bos</B> suite and the
-commands in the <B>fs</B>, <B>pts</B> and <B>vos</B> suites do not
-encrypt data before transmitting it.
-<P><H3><A NAME="HDRWQ73" HREF="auagd002.htm#ToC_88">Three Types of Privilege</A></H3>
-<P>AFS uses three separate types of privilege for the reasons
-discussed in <A HREF="auagd021.htm#HDRWQ585">The Reason for Separate Privileges</A>.
-<UL>
-<P><LI>Membership in the <B>system:administrators</B> group.
-Members are entitled to issue any <B>pts</B> command and those
-<B>fs</B> commands that set volume quota. By default, they also
-implicitly have the <B>a</B> (<B>administer</B>) and <B>l</B>
-(<B>lookup</B>) permissions on every ACL in the file tree even if the ACL
-does not include an entry for them.
-<P><LI>The <TT>ADMIN</TT> flag on the Authentication Database entry. An
-administrator with this flag can issue any <B>kas</B> command.
-<P><LI>Inclusion in the <B>/usr/afs/etc/UserList</B> file. An
-administrator whose username appears in this file can issue any
-<B>bos</B>, <B>vos</B>, or <B>backup</B> command (although some
-<B>backup</B> commands require additional privilege as described in <A HREF="auagd011.htm#HDRWQ260">Granting Administrative Privilege to Backup Operators</A>).
-</UL>
-<P><H3><A NAME="Header_89" HREF="auagd002.htm#ToC_89">Authorization Checking versus Authentication</A></H3>
-<P>AFS distinguishes between authentication and authorization
-checking. <I>Authentication</I> refers to the process of proving
-identity. <I>Authorization checking</I> refers to the process of
-verifying that an authenticated identity is allowed to perform a certain
-action.
-<P>AFS implements authentication at the level of connections. Each time
-two parties establish a new connection, they mutually authenticate. In
-general, each issue of an AFS command establishes a new connection between AFS
-server process and client.
-<P>AFS implements authorization checking at the level of server
-machines. If authorization checking is enabled on a server machine,
-then all of the server processes running on it provide services only to
-authorized users. If authorization checking is disabled on a server
-machine, then all of the server processes perform any action for
-anyone. Obviously, disabling authorization checking is an extreme
-security exposure. For more information, see <A HREF="auagd008.htm#HDRWQ123">Managing Authentication and Authorization Requirements</A>.
-<P><H3><A NAME="HDRWQ74" HREF="auagd002.htm#ToC_90">Improving Security in Your Cell</A></H3>
-<A NAME="IDX5818"></A>
-<P>You can improve the level of security in your cell by configuring user
-accounts, server machines, and system administrator accounts in the indicated
-way.
-<P><B>User Accounts</B>
-<UL>
-<P><LI>Use an AFS-modified login utility, or include the <B>-setpag</B> flag
-to the <B>klog</B> command, to associate the credential structure that
-houses tokens with a PAG rather than a UNIX UID. This prevents users
-from inheriting someone else's tokens by assuming their UNIX
-identity. For further discussion, see <A HREF="#HDRWQ64">Identifying AFS Tokens by PAG</A>.
-<P><LI>Encourage users to issue the <B>unlog</B> command to destroy their
-tokens before logging out. This forestalls attempts to access tokens
-left behind kernel memory. Consider including the <B>unlog</B>
-command in every user's <B>.logout</B> file or
-equivalent.
-</UL>
-<P><B>Server Machines</B>
-<UL>
-<P><LI>Disable authorization checking only in emergencies or for very brief
-periods of time. It is best to work at the console of the affected
-machine during this time, to prevent anyone else from accessing the machine
-through the keyboard.
-<P><LI>Change the AFS server encryption key on a frequent and regular
-schedule. Make it difficult to guess (a long string including
-nonalphabetic characters, for instance). Unlike user passwords, the
-password from which the AFS key is derived can be longer than eight
-characters, because it is never used during login. The <B>kas
-setpassword</B> command accepts a password hundreds of characters
-long. For instructions, see <A HREF="auagd014.htm#HDRWQ355">Managing Server Encryption Keys</A>.
-<P><LI>As much as possible, limit the number of people who can login at a server
-machine's console or remotely. Imposing this limit is an extra
-security precaution rather than a necessity. The machine cannot serve
-as an AFS client in this case.
-<P><LI>Particularly limit access to the local superuser <B>root</B> account
-on a server machine. The local superuser <B>root</B> has free
-access to important administrative subdirectories of the <B>/usr/afs</B>
-directory, as described in <A HREF="#HDRWQ53">AFS Files on the Local Disk</A>.
-<A NAME="IDX5819"></A>
-<P><LI>As in any computing environment, server machines must be located in a
-secured area. Any other security measures are effectively worthless if
-unauthorized people can access the computer hardware.
-</UL>
-<P><B>System Administrators</B>
-<UL>
-<P><LI>Limit the number of system administrators in your cell. Limit the
-use of system administrator accounts on publicly accessible
-workstations. Such machines are not secure, so unscrupulous users can
-install programs that try to steal tokens or passwords. If
-administrators must use publicly accessible workstations at times, they must
-issue the <B>unlog</B> command before leaving the machine.
-<P><LI>Create an administrative account for each administrator separate from the
-personal account, and assign AFS privileges only to the administrative
-account. The administrators must authenticate to the administrative
-accounts to perform duties that require privilege, which provides a useful
-audit trail as well.
-<P><LI>Administrators must not leave a machine unattended while they have valid
-tokens. Issue the <B>unlog</B> command before leaving.
-<P><LI>Use the <B>-lifetime</B> argument to the <B>kas setfields</B>
-command to set the token lifetime for administrative accounts to a fairly
-short amount of time. The default lifetime for AFS tokens is 25 hours,
-but 30 or 60 minutes is possibly a more reasonable lifetime for administrative
-tokens. The tokens for administrators who initiate AFS Backup System
-operations must last somewhat longer, because it can take several hours to
-complete some dump operations, depending on the speed of the tape device and
-the network connecting it to the file server machines that house the volumes
-is it accessing.
-<P><LI>Limit administrators' use of the <B>telnet</B> program. It
-sends unencrypted passwords across the network. Similarly, limit use of
-other remote programs such as <B>rsh</B> and <B>rcp</B>, which send
-unencrypted tokens across the network.
-</UL>
-<A NAME="IDX5820"></A>
-<A NAME="IDX5821"></A>
-<A NAME="IDX5822"></A>
-<A NAME="IDX5823"></A>
-<P><H3><A NAME="HDRWQ75" HREF="auagd002.htm#ToC_91">A More Detailed Look at Mutual Authentication</A></H3>
-<P>As in any file system, security is a prime concern in
-AFS. A file system that makes file sharing easy is not useful if it
-makes file sharing mandatory, so AFS incorporates several features that
-prevent unauthorized users from accessing data. Security in a networked
-environment is difficult because almost all procedures require transmission of
-information across wires that almost anyone can tap into. Also, many
-machines on networks are powerful enough that unscrupulous users can monitor
-transactions or even intercept transmissions and fake the identity of one of
-the participants.
-<P>The most effective precaution against eavesdropping and information theft
-or fakery is for servers and clients to accept the claimed identity of the
-other party only with sufficient proof. In other words, the nature of
-the network forces all parties on the network to assume that the other party
-in a transaction is not genuine until proven so. <I>Mutual
-authentication</I> is the means through which parties prove their
-genuineness.
-<P>Because the measures needed to prevent fakery must be quite sophisticated,
-the implementation of mutual authentication procedures is complex. The
-underlying concept is simple, however: parties prove their identities by
-demonstrating knowledge of a <I>shared secret</I>. A shared secret
-is a piece of information known only to the parties who are mutually
-authenticating (they can sometimes learn it in the first place from a trusted
-third party or some other source). The party who originates the
-transaction presents the shared secret and refuses to accept the other party
-as valid until it shows that it knows the secret too.
-<P>The most common form of shared secret in AFS transactions is the
-<I>encryption key</I>, also referred to simply as a <I>key</I>.
-The two parties use their shared key to encrypt the packets of information
-they send and to decrypt the ones they receive. Encryption using keys
-actually serves two related purposes. First, it protects messages as
-they cross the network, preventing anyone who does not know the key from
-eavesdropping. Second, ability to encrypt and decrypt messages
-successfully indicates that the parties are using the key (it is their shared
-secret). If they are using different keys, messages remain scrambled
-and unintelligible after decryption.
-<P>The following sections describe AFS's mutual authentication procedures
-in more detail. Feel free to skip these sections if you are not
-interested in the mutual authentication process.
-<P><H4><A NAME="Header_92">Simple Mutual Authentication</A></H4>
-<P>Simple mutual authentication involves only one encryption key and two
-parties, generally a client and server. The client contacts the server
-by sending a <I>challenge</I> message encrypted with a key known only to
-the two of them. The server decrypts the message using its key, which
-is the same as the client's if they really do share the same
-secret. The server responds to the challenge and uses its key to
-encrypt its response. The client uses its key to decrypt the
-server's response, and if it is correct, then the client can be sure that
-the server is genuine: only someone who knows the same key as the client
-can decrypt the challenge and answer it correctly. On its side, the
-server concludes that the client is genuine because the challenge message made
-sense when the server decrypted it.
-<P>AFS uses simple mutual authentication to verify user identities during the
-first part of the login procedure. In that case, the key is based on
-the user's password.
-<P><H4><A NAME="HDRWQ76">Complex Mutual Authentication</A></H4>
-<P>Complex mutual authentication involves three encryption keys
-and three parties. All secure AFS transactions (except the first part
-of the login process) employ complex mutual authentication.
-<A NAME="IDX5824"></A>
-<A NAME="IDX5825"></A>
-<A NAME="IDX5826"></A>
-<P>When a client wishes to communicate with a server, it first contacts a
-third party called a <I>ticket-granter</I>. The ticket-granter and
-the client mutually authenticate using the simple procedure. When they
-finish, the ticket-granter gives the client a <I>server ticket</I> (or
-simply <I>ticket</I>) as proof that it (the ticket-granter) has
-preverified the identity of the client. The ticket-granter encrypts the
-ticket with the first of the three keys, called the <I>server encryption
-key</I> because it is known only to the ticket-granter and the server the
-client wants to contact. The client does not know this key.
-<P>The ticket-granter sends several other pieces of information along with the
-ticket. They enable the client to use the ticket effectively despite
-being unable to decrypt the ticket itself. Along with the ticket, the
-items constitute a <I>token</I>:
-<UL>
-<A NAME="IDX5827"></A>
-<P><LI>A <I>session key</I>, which is the second encryption key involved in
-mutual authentication. The ticket-granter invents the session key at
-random as the shared secret between client and server. For reasons
-explained further below, the ticket-granter also puts a copy of the session
-key inside the ticket. The client and server use the session key to
-encrypt messages they send to one another during their transactions.
-The ticket-granter invents a different session key for each connection between
-a client and a server (there can be several transactions during a single
-connection).
-<P><LI>The name of the server for which the ticket is valid (and so which server
-encryption key encrypts the ticket itself).
-<P><LI>A ticket lifetime indicator. The default lifetime of AFS server
-tickets is 100 hours. If the client wants to contact the server again
-after the ticket expires, it must contact the ticket-granter to get a new
-ticket.
-</UL>
-<P>The ticket-granter seals the entire token with the third key involved in
-complex mutual authentication--the key known only to it (the
-ticket-granter) and the client. In some cases, this third key is
-derived from the password of the human user whom the client represents.
-<P>Now that the client has a valid server ticket, it is ready to contact the
-server. It sends the server two things:
-<UL>
-<P><LI>The server ticket. This is encrypted with the server encryption
-key.
-<P><LI>Its request message, encrypted with the session key. Encrypting the
-message protects it as it crosses the network, since only the server/client
-pair for whom the ticket-granter invented the session key know it.
-</UL>
-<P>At this point, the server does not know the session key, because the
-ticket-granter just created it. However, the ticket-granter put a copy
-of the session key inside the ticket. The server uses the server
-encryption key to decrypts the ticket and learns the session key. It
-then uses the session key to decrypt the client's request message.
-It generates a response and sends it to the client. It encrypts the
-response with the session key to protect it as it crosses the network.
-<P>This step is the heart of mutual authentication between client and server,
-because it proves to both parties that they know the same secret:
-<UL>
-<P><LI>The server concludes that the client is authorized to make a request
-because the request message makes sense when the server decrypts it using the
-session key. If the client uses a different session key than the one
-the server finds inside the ticket, then the request message remains
-unintelligible even after decryption. The two copies of the session key
-(the one inside the ticket and the one the client used) can only be the same
-if they both came from the ticket-granter. The client cannot fake
-knowledge of the session key because it cannot look inside the ticket, sealed
-as it is with the server encryption key known only to the server and the
-ticket-granter. The server trusts the ticket-granter to give tokens
-only to clients with whom it (the ticket-granter) has authenticated, so the
-server decides the client is legitimate.
-<P>(Note that there is no direct communication between the ticket-granter and
-the server, even though their relationship is central to ticket-based mutual
-authentication. They interact only indirectly, via the client's
-possession of a ticket sealed with their shared secret.)
-<P><LI>The client concludes that the server is genuine and trusts the response it
-gets back from the server, because the response makes sense after the client
-decrypts it using the session key. This indicates that the server
-encrypted the response with the same session key as the client knows.
-The only way for the server to learn that matching session key is to decrypt
-the ticket first. The server can only decrypt the ticket because it
-shares the secret of the server encryption key with the ticket-granter.
-The client trusts the ticket-granter to give out tickets only for legitimate
-servers, so the client accepts a server that can decrypt the ticket as
-genuine, and accepts its response.
-</UL>
-<HR><H2><A NAME="HDRWQ77" HREF="auagd002.htm#ToC_94">Backing Up AFS Data</A></H2>
-<P>AFS provides two related facilities that help the
-administrator back up AFS data: backup volumes and the AFS Backup
-System.
-<P><H3><A NAME="Header_95" HREF="auagd002.htm#ToC_95">Backup Volumes</A></H3>
-<P>The first facility is the backup volume, which you create by cloning a
-read/write volume. The backup volume is read-only and so preserves the
-state of the read/write volume at the time the clone is made.
-<P>Backup volumes can ease administration if you mount them in the file system
-and make their contents available to users. For example, it often makes
-sense to mount the backup version of each user volume as a subdirectory of the
-user's home directory. A conventional name for this mount point is
-<B>OldFiles</B>. Create a new version of the backup volume (that
-is, reclone the read/write) once a day to capture any changes that were made
-since the previous backup. If a user accidentally removes or changes
-data, the user can restore it from the backup volume, rather than having to
-ask you to restore it.
-<P>The <I>IBM AFS User Guide</I> does not mention backup volumes, so
-regular users do not know about them if you decide not to use them.
-This implies that if you <B>do</B> make backup versions of user volumes,
-you need to tell your users about how the backup works and where you have
-mounted it.
-<P>Users are often concerned that the data in a backup volume counts against
-their volume quota and some of them even want to remove the
-<B>OldFiles</B> mount point. It does not, because the backup volume
-is a separate volume. The only amount of space it uses in the
-user's volume is the amount needed for the mount point, which is about
-the same as the amount needed for a standard directory element.
-<P>Backup volumes are discussed in detail in <A HREF="auagd010.htm#HDRWQ201">Creating Backup Volumes</A>.
-<P><H3><A NAME="Header_96" HREF="auagd002.htm#ToC_96">The AFS Backup System</A></H3>
-<P>Backup volumes can reduce restoration requests, but they reside on disk
-and so do not protect data from loss due to hardware failure. Like any
-file system, AFS is vulnerable to this sort of data loss.
-<P>To protect your cell's users from permanent loss of data, you are
-strongly urged to back up your file system to tape on a regular and frequent
-schedule. The AFS Backup System is available to ease the administration
-and performance of backups. For detailed information about the AFS
-Backup System, see <A HREF="auagd011.htm#HDRWQ248">Configuring the AFS Backup System</A> and <A HREF="auagd012.htm#HDRWQ283">Backing Up and Restoring AFS Data</A>.
-<A NAME="IDX5828"></A>
-<A NAME="IDX5829"></A>
-<A NAME="IDX5830"></A>
-<A NAME="IDX5831"></A>
-<A NAME="IDX5832"></A>
-<A NAME="IDX5833"></A>
-<A NAME="IDX5834"></A>
-<A NAME="IDX5835"></A>
-<A NAME="IDX5836"></A>
-<A NAME="IDX5837"></A>
-<A NAME="IDX5838"></A>
-<A NAME="IDX5839"></A>
-<HR><H2><A NAME="HDRWQ78" HREF="auagd002.htm#ToC_97">Using UNIX Remote Services in the AFS Environment</A></H2>
-<P>The AFS distribution includes modified versions of several
-standard UNIX commands, daemons and programs that provide remote services,
-including the following:
-<UL>
-<P><LI>The <B>ftpd</B> program
-<P><LI>The <B>inetd</B> daemon
-<P><LI>The <B>rcp</B> program
-<P><LI>The <B>rlogind</B> daemon
-<P><LI>The <B>rsh</B> command
-</UL>
-<P>These modifications enable the commands to handle AFS authentication
-information (tokens). This enables issuers to be recognized on the
-remote machine as an authenticated AFS user.
-<P>Replacing the standard versions of these programs in your file tree with
-the AFS-modified versions is optional. It is likely that AFS's
-transparent access reduces the need for some of the programs anyway,
-especially those involved in transferring files from machine to machine, like
-the <B>ftpd</B> and <B>rcp</B> programs.
-<P>If you decide to use the AFS versions of these commands, be aware that
-several of them are interdependent. For example, the passing of AFS
-authentication information works correctly with the <B>rcp</B> command
-only if you are using the AFS version of both the <B>rcp</B> and
-<B>inetd</B> commands.
-<P>The conventional installation location for the modified remote commands are
-the <B>/usr/afsws/bin</B> and <B>/usr/afsws/etc</B>
-directories. To learn more about commands' functionality, see
-their reference pages in the <I>IBM AFS Administration
-Reference</I>.
-<HR><H2><A NAME="HDRWQ79" HREF="auagd002.htm#ToC_98">Accessing AFS through NFS</A></H2>
-<P>Users of NFS client machines can access the AFS filespace by
-mounting the <B>/afs</B> directory of an AFS client machine that is
-running the <I>NFS/AFS Translator</I>. This is a particular
-advantage in cells already running NFS who want to access AFS using client
-machines for which AFS is not available. See <A HREF="auagd022.htm#HDRWQ595">Appendix A,  Managing the NFS/AFS Translator</A>.
-<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auagd002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auagd006.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Top_Of_Page"><IMG SRC="../top.gif" BORDER="0" ALT="[Top of Topic]"></A> <A HREF="auagd008.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auagd026.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P> 
-<!-- Begin Footer Records  ========================================== -->
-<P><HR><B> 
-<br>&#169; <A HREF="http://www.ibm.com/">IBM Corporation 2000.</A>  All Rights Reserved 
-</B> 
-<!-- End Footer Records  ============================================ -->
-<A NAME="Bot_Of_Page"></A>
-</BODY></HTML>