initial-html-documentation-20010606
[openafs.git] / doc / html / AdminGuide / auagd022.htm
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4//EN">
2 <HTML><HEAD>
3 <TITLE>Administration Guide</TITLE>
4 <!-- Begin Header Records  ========================================== -->
5 <!-- /tmp/idwt3570/auagd000.scr converted by idb2h R4.2 (359) ID      -->
6 <!-- Workbench Version (AIX) on 2 Oct 2000 at 11:42:14                -->
7 <META HTTP-EQUIV="updated" CONTENT="Mon, 02 Oct 2000 11:42:13">
8 <META HTTP-EQUIV="review" CONTENT="Tue, 02 Oct 2001 11:42:13">
9 <META HTTP-EQUIV="expires" CONTENT="Wed, 02 Oct 2002 11:42:13">
10 </HEAD><BODY>
11 <!-- (C) IBM Corporation 2000. All Rights Reserved    --> 
12 <BODY bgcolor="ffffff"> 
13 <!-- End Header Records  ============================================ -->
14 <A NAME="Top_Of_Page"></A>
15 <H1>Administration Guide</H1>
16 <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="auagd021.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="auagd023.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> 
17 <P>
18 <HR><H1><A NAME="HDRWQ595" HREF="auagd002.htm#ToC_666">Appendix A. Managing the NFS/AFS Translator</A></H1>
19 <A NAME="IDX8162"></A>
20 <A NAME="IDX8163"></A>
21 <P>The NFS<SUP><SUP>(R)</SUP></SUP>/AFS<SUP><SUP>(R)</SUP></SUP> Translator enables users
22 working on NFS client machines to access, create and remove files stored in
23 AFS. This chapter assumes familiarity with both NFS and AFS.
24 <HR><H2><A NAME="HDRWQ596" HREF="auagd002.htm#ToC_667">Summary of Instructions</A></H2>
25 <P>This chapter explains how to perform the following tasks by
26 using the indicated commands:
27 <BR>
28 <TABLE WIDTH="100%">
29 <TR>
30 <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="70%">Mount directory on translator machine
31 </TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="30%"><B>mount</B>
32 </TD></TR><TR>
33 <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="70%">Examine value of <B>@sys</B> variable
34 </TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="30%"><B>fs sysname</B>
35 </TD></TR><TR>
36 <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="70%">Enable/disable reexport of AFS, set other parameters
37 </TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="30%"><B>fs exportafs</B>
38 </TD></TR><TR>
39 <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="70%">Assign AFS tokens to user on NFS client machine
40 </TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="30%"><B>knfs</B>
41 </TD></TR></TABLE>
42 <HR><H2><A NAME="HDRWQ598" HREF="auagd002.htm#ToC_668">Overview</A></H2>
43 <P>The NFS/AFS Translator enables users on NFS client machines
44 to access the AFS filespace as if they are working on an AFS client machine,
45 which facilitates collaboration with other AFS users.
46 <P>An <I>NFS/AFS translator machine</I> (or simply <I>translator
47 machine</I>) is a machine configured as both an AFS client and an NFS
48 server:
49 <UL>
50 <P><LI>Its AFS client functionality enables it to access the AFS
51 filespace. The Cache Manager requests and caches files from AFS file
52 server machines, and can even maintain tokens for NFS users, if you have made
53 the configuration changes that enable NFS users to authenticate with
54 AFS.
55 <P><LI>Its NFS server functionality makes it possible for the translator machine
56 to export the AFS filespace to NFS client machines. When a user on an
57 NFS client machine mounts the translator machine's <B>/afs</B>
58 directory (or one of its subdirectories, if that feature is enabled), access
59 to AFS is immediate and transparent. The NFS client machine does not
60 need to run any AFS software.
61 </UL>
62 <P><H3><A NAME="HDRWQ599" HREF="auagd002.htm#ToC_669">Enabling Unauthenticated or Authenticated AFS Access</A></H3>
63 <P>By configuring the translation environment appropriately,
64 you can provide either unauthenticated or authenticated access to AFS from NFS
65 client machines. The sections of this chapter on configuring translator
66 machines, NFS client machines, and AFS user accounts explain how to configure
67 the translation environment appropriately.
68 <UL>
69 <P><LI>If you configure the environment for unauthenticated access, the AFS File
70 Server considers the NFS users to be the user <B>anonymous</B>.
71 They can access only those AFS files and directories for which the access
72 control list (ACL) extends the required permissions to the
73 <B>system:anyuser</B> group. They can issue only those AFS
74 commands that do not require privilege, and then only if their NFS client
75 machine is a system type for which AFS binaries are available and accessible
76 by the <B>system:anyuser</B> group. Such users presumably do
77 not have AFS accounts.
78 <P><LI>If you configure the environment for authenticated access, you must create
79 entries in the AFS Authentication and Protection Databases for the NFS
80 users. The authentication procedure they use depends on whether the NFS
81 client machine is a supported system type (one for which AFS binaries are
82 available):
83 <UL>
84 <P><LI>If AFS binaries are available for the NFS client machine, NFS users can
85 issue the <B>klog</B> command on the NFS client machine. They can
86 access the filespace and issue AFS commands to the same extent as
87 authenticated users working on AFS client machines.
88 <P><LI>If AFS binaries are not available for the NFS client machine, NFS users
89 must establish a connection with the translator machine (using the
90 <B>telnet</B> utility, for example) and then issue the <B>klog</B> and
91 <B>knfs</B> commands on the translator machine to make its Cache Manager
92 use the tokens correctly while users work on the NFS client. They can
93 access the AFS filespace as authenticated users, but cannot issue AFS
94 commands. For instructions, see <A HREF="#HDRWQ612">Authenticating on Unsupported NFS Client Machines</A>.
95 </UL>
96 </UL>
97 <P><H3><A NAME="HDRWQ600" HREF="auagd002.htm#ToC_670">Setting the AFSSERVER and AFSCONF Environment Variables</A></H3>
98 <P>If you wish to enable your NFS users to issue AFS commands,
99 you must define the AFSSERVER and AFSCONF environment variables in their
100 command shell. This section explains the variables' function and
101 outlines the various methods for setting them.
102 <P>Issuing AFS commands also requires that the NFS client machine is a
103 supported system type (one for which AFS binaries are available and
104 accessible). Users working on NFS client machines of unsupported system
105 types can access AFS as authenticated users, but they cannot issue AFS
106 commands. It is not necessary to define the AFSSERVER and AFSCONF
107 variables for such users. For instructions on using the <B>knfs</B>
108 command to obtain authenticated access on unsupported system types, see <A HREF="#HDRWQ612">Authenticating on Unsupported NFS Client Machines</A>.
109 <A NAME="IDX8164"></A>
110 <P><H4><A NAME="HDRWQ601">The AFSSERVER Variable</A></H4>
111 <P>The AFSSERVER variable designates the AFS client machine
112 that performs two functions for NFS clients:
113 <UL>
114 <P><LI>It acts as the NFS client's <I>remote executor</I> by executing
115 AFS-specific system calls on its behalf, such as those invoked by the
116 <B>klog</B> and <B>tokens</B> commands and by many commands in the AFS
117 suites.
118 <P><LI>Its stores the tokens that NFS users obtain when they authenticate with
119 AFS. This implies that the remote executor machine and the translator
120 machine must be the same if the user needs authenticated access to AFS.
121 </UL>
122 <P>The choice of remote executor most directly affects commands that display
123 or change Cache Manager configuration, such as the <B>fs
124 getcacheparms</B>, <B>fs getcellstatus</B>, and <B>fs setcell</B>
125 commands. When issued on an NFS client, these commands affect the Cache
126 Manager on the designated remote executor machine. (Note, however, that
127 several such commands require the issuer to be logged into the remote
128 executor's local file system as the local superuser
129 <B>root</B>. The ability of NFS client users to log in as
130 <B>root</B> is controlled by NFS, not by the NFS/AFS Translator, so
131 setting the remote executor properly does not necessarily enable users on the
132 NFS client to issue such commands.)
133 <P>The choice of remote executor is also relevant for AFS commands that do not
134 concern Cache Manager configuration but rather have the same result on every
135 machine, such as the <B>fs</B> commands that display or set ACLs and
136 volume quota. These commands take an AFS path as one of their
137 arguments. If the Cache Manager on the remote executor machine mounts
138 the AFS filespace at the <B>/afs</B> directory, as is conventional for AFS
139 clients, then the pathname specified on the NFS client must begin with the
140 string <B>/afs</B> for the Cache Manager to understand it. This
141 implies that the remote executor must be the NFS client's primary
142 translator machine (the one whose <B>/afs</B> directory is mounted at
143 <B>/afs</B> on the NFS client).
144 <A NAME="IDX8165"></A>
145 <A NAME="IDX8166"></A>
146 <P><H4><A NAME="Header_672">The AFSCONF Variable</A></H4>
147 <P>The AFSCONF environment variable names the directory that houses the
148 <B>ThisCell</B> and <B>CellServDB</B> files to use when running AFS
149 commands issued on the NFS client machine. As on an AFS client, these
150 files determine the default cell for command execution.
151 <P>For predictable performance, it is best that the files in the directory
152 named by the AFSCONF variable match those in the <B>/usr/vice/etc</B>
153 directory on the translator machine. If your cell has an AFS directory
154 that serves as the central update source for files in the
155 <B>/usr/vice/etc</B> directory, it is simplest to set the AFSCONF variable
156 to refer to it. In the conventional configuration, this directory is
157 called <B>/afs/</B><VAR>cellname</VAR><B>/common/etc</B>.
158 <P><H4><A NAME="Header_673">Setting Values for the Variables</A></H4>
159 <P>To learn the values of the AFSSERVER and AFSCONF variables, AFS command
160 interpreters consult the following three sources in sequence:
161 <OL TYPE=1>
162 <P><LI>The current command shell's environment variable definitions
163 <P><LI>The <B>.AFSSERVER</B> or <B>.AFSCONF</B> file in the
164 issuer's home directory
165 <P><LI>The <B>/.AFSSERVER</B> or <B>/.AFSCONF</B> file in
166 the NFS client machine's root (<I>/</I>) directory. If the
167 client machine is diskless, its root directory can reside on an NFS server
168 machine.
169 </OL>
170 <P>(Actually, before consulting these sources, the NFS client looks for the
171 <B>CellServDB</B> and <B>ThisCell</B> files in its own
172 <B>/usr/vice/etc</B> directory. If the directory exists, the NFS
173 client does not use the value of the AFSCONF variable. However, the
174 <B>/usr/vice/etc</B> directory usually exists only on AFS clients, not NFS
175 clients.)
176 <P>As previously detailed, correct performance generally requires that the
177 remote executor machine be the NFS client's primary translator machine
178 (the one whose <B>/afs</B> directory is mounted at the <B>/afs</B>
179 directory on the NFS client). The requirement holds for all users
180 accessing AFS from the NFS client, so it is usually simplest to create the
181 <B>.AFSSERVER</B> file in the NFS client's root
182 directory. The main reason to create the file in a user's home
183 directory or to set the AFSSERVER environment variable in the current command
184 shell is that the user needs to switch to a different translator machine,
185 perhaps because the original one has become inaccessible.
186 <P>Similarly, it generally makes sense to create the
187 <B>.AFSCONF</B> file in the NFS client's root
188 directory. Creating it in the user's home directory or setting the
189 AFSCONF environment variable in the current command shell is useful mostly
190 when there is a reason to specify a different set of database server machines
191 for the cell, perhaps in a testing situation.
192 <P><H3><A NAME="HDRWQ602" HREF="auagd002.htm#ToC_674">Delayed Writes for Files Saved on NFS Client Machines</A></H3>
193 <A NAME="IDX8167"></A>
194 <A NAME="IDX8168"></A>
195 <A NAME="IDX8169"></A>
196 <A NAME="IDX8170"></A>
197 <A NAME="IDX8171"></A>
198 <A NAME="IDX8172"></A>
199 <A NAME="IDX8173"></A>
200 <P>When an application running on an AFS client machine issues the
201 <B>close</B> or <B>fsync</B> system call on a file, the Cache Manager
202 by default performs a synchronous write of the data to the File Server.
203 (For further discussion, see <A HREF="auagd007.htm#HDRWQ33">AFS Implements Save on Close</A> and <A HREF="auagd015.htm#HDRWQ418">Enabling Asynchronous Writes</A>.)
204 <P>To avoid degrading performance for the AFS users working on a translator
205 machine, AFS does not perform synchronous writes for applications running on
206 the translator machine's NFS clients. Instead, one of the Cache
207 Manager daemons (the <I>maintenance daemon</I>) checks every 60 seconds
208 for chunks in the cache that contain data saved on NFS clients, and writes
209 their contents to the File Server. This does not guarantee that data
210 saved on NFS clients is written to the File Server within 60 seconds, but only
211 that the maintenance daemon checks for and begins the write of data at that
212 interval.
213 <P>Furthermore, AFS always ignores the <B>fsync</B> system call as issued
214 on an NFS client. The call requires an immediate and possibly
215 time-consuming response from the File Server, which potentially causes delays
216 for other AFS clients of the File Server. NFS version 3 automatically
217 issues the <B>fsync</B> system call directly after the <B>close</B>
218 call, but the Cache Manager ignores it and handles the operation just like a
219 regular <B>close</B>.
220 <P>The delayed write mechanism means that there is usually a delay between the
221 time when an NFS application issues the <B>close</B> or <B>fsync</B>
222 system call on a file and the time when the changes are recorded at the File
223 Server, which is when they become visible to users working on other AFS client
224 machines (either directly or on its NFS clients). The delay is likely
225 to be longer than for files saved by users working directly on an AFS client
226 machine.
227 <P>The exact amount of delay is difficult to predict. The NFS protocol
228 itself allows a standard delay before saved data must be transferred from the
229 NFS client to the NFS server (the translator machine). The modified
230 data remains in the translator machine's AFS client cache until the
231 maintenance daemon's next scheduled check for such data, and it takes
232 additional time to transfer the data to the File Server. The
233 maintenance daemon uses a single thread, so there can be additional delay if
234 it takes more than 60 seconds to write out all of the modified NFS
235 data. That is, if the maintenance daemon is still writing data at the
236 time of the next scheduled check, it cannot notice any additional modified
237 data until the scheduled time after it completes the long write
238 operation.
239 <P>The Cache Manager's response to the <B>write</B> system call is
240 the same whether it is issued on an AFS client machine or on an NFS client of
241 a translator machine: it records the modifications in the local AFS
242 client cache only.
243 <HR><H2><A NAME="HDRWQ603" HREF="auagd002.htm#ToC_675">Configuring NFS/AFS Translator Machines</A></H2>
244 <P>To act as an NFS/AFS translator machine, a machine must
245 configured as follows:
246 <UL>
247 <P><LI>It must be an AFS client. Many system types supported as AFS
248 clients can be translator machines. To learn about possible
249 restrictions in a specific release of AFS, see the <I>IBM AFS Release
250 Notes</I>.
251 <P><LI>It must be an NFS server. The appropriate number of NFS server
252 daemons (<B>nfsd</B> and others) depends on the anticipated NFS client
253 load.
254 <P><LI>It must export the local directory on which the AFS filespace is mounted,
255 <B>/afs</B> by convention.
256 </UL>
257 <P>If users on a translator machine's NFS clients are to issue AFS
258 commands, the translator machine must also meet the requirements discussed in <A HREF="#HDRRMTSYS">Configuring the Translator Machine to Accept AFS Commands</A>.
259 <P><H3><A NAME="Header_676" HREF="auagd002.htm#ToC_676">Loading NFS and AFS Kernel Extensions</A></H3>
260 <P>The AFS distribution for system types that can act as NFS/AFS
261 Translator machines usually includes two versions of the AFS kernel extensions
262 file, one for machines where the kernel supports NFS server functionality, and
263 one for machines not using NFS (the latter AFS kernel extensions file
264 generally has the string <B>nonfs</B> in its name). A translator
265 machine must use the NFS-enabled version of the AFS extensions file. On
266 some system types, you select the appropriate file by moving it to a certain
267 location, whereas on other system types you set a variable that results in
268 automatic selection of the correct file. See the instructions in the
269 <I>IBM AFS Quick Beginnings</I> for incorporating AFS into the kernel on
270 each system type.
271 <P>On many system types, NFS is included in the kernel by default, so it is
272 not necessary to load NFS kernel extensions explicitly. On system types
273 where you must load NFS extensions, then in general you must load them before
274 loading the AFS kernel extensions. The <I>IBM AFS Quick
275 Beginnings</I> describes how to incorporate the AFS initialization script
276 into a machine's startup sequence so that it is ordered correctly with
277 respect to the script that handles NFS.
278 <P>In addition, the AFS extensions must be loaded into the kernel before the
279 <B>afsd</B> command runs. The AFS initialization script included in
280 the AFS distribution correctly orders the loading and <B>afsd</B>
281 commands.
282 <P><H3><A NAME="HDRRMTSYS" HREF="auagd002.htm#ToC_677">Configuring the Translator Machine to Accept AFS Commands</A></H3>
283 <P>For users working on a translator machine's NFS
284 clients to issue AFS commands, the <B>-rmtsys</B> flag must be included on
285 the <B>afsd</B> command which initializes the translator machine's
286 Cache Manager. The flag starts an additional daemon (the <I>remote
287 executor daemon</I>), which executes AFS-specific system calls on behalf of
288 NFS clients. For a discussion of the implications of NFS users issuing
289 AFS commands, see <A HREF="#HDRWQ600">Setting the AFSSERVER and AFSCONF Environment Variables</A>.
290 <P>The instructions in the <I>IBM AFS Quick Beginnings</I> for configuring
291 the Cache Manager explain how to add options such as the <B>-rmtsys</B>
292 flag to the <B>afsd</B> command in the AFS initialization script.
293 On many system types, it is simplest to list the flag on the line in the
294 script that defines the OPTIONS variable. The remote executor daemon
295 does not consume many resources, so it is simplest to add it to the
296 <B>afsd</B> command on every translator machine, even if not all users on
297 the machine's NFS clients issue AFS commands.
298 <P><H3><A NAME="HDRWQ604" HREF="auagd002.htm#ToC_678">Controlling Optional Translator Features</A></H3>
299 <P>After an AFS client machine is configured as a translator
300 machine, it by default exports the AFS filespace to NFS clients. You
301 can disable and reenable translator functionality by using the <B>fs
302 exportafs</B> command's <B>-start</B> argument. The
303 command's other arguments control other aspects of translator
304 behavior.
305 <UL>
306 <P><LI>The <B>-convert</B> argument controls whether the second and third
307 (<B>group</B> and <B>other</B>) sets of UNIX mode bits on an AFS file
308 or directory being exported to NFS are set to match the first
309 (<B>owner</B>) mode bits. By default, the mode bits are set to
310 match.
311 <P>Unlike AFS, NFS uses all three sets of mode bits when determining whether a
312 user can read or write a file, even one stored in AFS. Some AFS files
313 possibly do not have any <B>group</B> and <B>other</B> mode bits
314 turned on, because AFS uses only the <B>owner</B> bits in combination with
315 the ACL on the file's directory. If only the <B>owner</B> mode
316 bits are set, NFS allows only the file's owner of the file to read or
317 write it. Setting the <B>-convert</B> argument to the value
318 <B>on</B> enables other users to access the file in the same manner as the
319 owner. Setting the value <B>off</B> preserves the mode bits set on
320 the file as stored in AFS.
321 <P><LI>The <B>-uidcheck</B> argument controls whether tokens can be assigned
322 to an NFS user whose local UID on the NFS client machine differs from the
323 local UID associated with the tokens on the translator machine. By
324 default, this is possible.
325 <P>If you turn on UID checking by setting the value <B>on</B>, then tokens
326 can be assigned only to an NFS user whose local UID matches the local UID of
327 the process on the translator machine that is assigning the tokens. One
328 consequence is that there is no point in including the <B>-id</B> argument
329 to the <B>knfs</B> command: the only acceptable value is the local
330 UID of the command's issuer, which is the value used when the
331 <B>-id</B> argument is omitted. Requiring matching UIDs in this way
332 is effective only when users have the same local UID on the translator machine
333 as on NFS client machines. In that case, it guarantees that users
334 assign their tokens only to their own NFS sessions. For instructions,
335 see <A HREF="#HDRWQ612">Authenticating on Unsupported NFS Client Machines</A>.
336 <TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">Turning on UID checking also prevents users on supported NFS clients from
337 using the <B>klog</B> command to authenticate on the NFS client
338 directly. They must authenticated and use the <B>knfs</B> command
339 on the translator machine instead. This is because after the
340 <B>klog</B> command interpreter obtains the token on the NFS client, it
341 passes it to the Cache Manager's remote executor daemon, which makes the
342 system call that stores the token in a credential structure on the translator
343 machine. The remote executor generally runs as the local superuser
344 <B>root</B>, so in most cases its local UID (normally zero) does not match
345 the local UID of the user who issued the <B>klog</B> command on the NFS
346 client machine. 
347 <P>On the other hand, although using the <B>knfs</B> command instead of
348 the <B>klog</B> command is possibly less convenient for users, it
349 eliminates a security exposure: the <B>klog</B> command interpreter
350 passes the token across the network to the remote executor daemon in clear
351 text mode.
352 </TD></TR></TABLE>
353 <P>If you disable UID checking by assigning the value <B>off</B> , the
354 issuer of the <B>knfs</B> command can assign tokens to a user who has a
355 different local UID on the NFS client machine, such as the local superuser
356 <B>root</B>. Indeed, more than one issuer of the <B>knfs</B>
357 command can assign tokens to the same user on the NFS client machine.
358 Each time a different user issues the <B>knfs</B> command with the same
359 value for the <B>-id</B> argument, that user's tokens overwrite the
360 existing ones. This can result in unpredictable access for the NFS
361 user.
362 <P><LI>The <B>-submounts</B> argument controls whether users on the NFS
363 client can mount AFS directories other than the top-level <B>/afs</B>
364 directory. By default, the translator does not permit these
365 submounts.
366 <P>Submounts can be useful in a couple of circumstances. If, for
367 example, NFS users need to access their own AFS home directories only, then
368 creating a submount to it eliminates the need for them to know or enter the
369 complete path. Similarly, you can use a submount to prevent users from
370 accessing parts of the filespace higher in the AFS hierarchy than the
371 submount.
372 </UL>
373 <P><H3><A NAME="Header_679" HREF="auagd002.htm#ToC_679">To configure an NFS/AFS translator machine</A></H3>
374 <P>The following instructions configure the translator to enable users to
375 issue AFS commands. Omit Step <A HREF="#LIWQ605">6</A> if you do not want to enable this functionality.
376 <OL TYPE=1>
377 <P><LI>Become the local superuser <B>root</B> on the machine, if you are not
378 already, by issuing the <B>su</B> command. 
379 <PRE>   % <B>su root</B>
380    Password: <VAR>root_password</VAR>
381 </PRE>
382 <P><LI>Configure the NFS/AFS translator machine as an NFS server, if it is not
383 already. Follow the instructions provided by your NFS supplier.
384 The appropriate number of NFS server daemons (such as <B>nfsd</B>) depends
385 on the number of potential NFS clients.
386 <P><LI>Configure the NFS/AFS translator machine as an AFS client, if it is not
387 already. For the most predictable performance, the translator
388 machine's local copies of the <B>/usr/vice/etc/CellServDB</B> and
389 <B>/usr/vice/etc/ThisCell</B> files must be the same as on other client
390 machines in the cell.
391 <P><LI><A NAME="LITRANS-MOUNTFILE"></A>Modify the file that controls mounting of directories
392 on the machine by remote NFS clients.
393 <UL>
394 <A NAME="IDX8174"></A>
395 <A NAME="IDX8175"></A>
396 <P><LI>On systems that use the <B>/etc/exports</B> file, edit it to enable
397 export of the <B>/afs</B> directory to NFS clients. You can list
398 the names of specific NFS client machines if you want to provide access only
399 to certain users. For a description of the file's format, see the
400 NFS manual page for <B>exports(5)</B>.
401 <P>The following example enables any NFS client machine to mount the
402 machine's <B>/afs</B>, <B>/usr</B>, and <B>/usr2</B>
403 directories: 
404 <PRE>   /afs
405    /usr
406    /usr2
407 </PRE>
408 <A NAME="IDX8176"></A>
409 <A NAME="IDX8177"></A>
410 <P><LI>On system types that use the <B>share</B> command, edit the
411 <B>/etc/dfs/dfstab</B> file or equivalent to include <B>share</B>
412 instructions that enable remote mounts of the <B>/afs</B>
413 directory. Most distributions include the binary as
414 <B>/usr/sbin/share</B>. The following example commands enable
415 remote mounts of the root ( <B>/</B> ) and <B>/afs</B>
416 directories. To verify the correct syntax, consult the manual page for
417 the <B>share</B> command. 
418 <PRE>   share -F nfs -o rw -d "root" /
419    share -F nfs -o rw -d "afs gateway" /afs
420 </PRE>
421 </UL>
422 <P><LI>Edit the machine's AFS initialization file to invoke the standard
423 UNIX <B>exportfs</B> command after the <B>afsd</B> program
424 runs. On some system types, the modifications you made in Step <A HREF="#LITRANS-MOUNTFILE">4</A> are not enough to enable exporting the AFS filespace
425 via the <B>/afs</B> directory, because the resulting configuration changes
426 are made before the <B>afsd</B> program runs during machine
427 initialization. Only after the <B>afsd</B> program runs does the
428 <B>/afs</B> directory become the mount point for the entire AFS
429 filespace; before, it is a local directory like any other.
430 <P><LI><A NAME="LIWQ605"></A>Modify the <B>afsd</B> command in the AFS initialization
431 file to include the <B>-rmtsys</B> flag. 
432 <P>For system types other than IRIX, the instructions in the <I>IBM AFS
433 Quick Beginnings</I> for configuring the Cache Manager explain how to add
434 the <B>-rmtsys</B> flag, for example by adding it to the line in the
435 script that defines the value for the OPTIONS variable.
436 <P>On IRIX systems, the AFS initialization script automatically adds the
437 <B>-rmtsys</B> flag if you have activated the <B>afsxnfs</B>
438 configuration variable as instructed in the <I>IBM AFS Quick
439 Beginnings</I> instructions for incorporating AFS extensions into the
440 kernel. If the variable is not already activated, issue the following
441 command. 
442 <PRE>   
443    # <B>/etc/chkconfig  -f  afsxnfs  on</B>
444 </PRE>
445 <P><LI><B>(Optional)</B> Depending on the number of NFS clients you expect
446 this machine to serve, it can be beneficial to add other arguments to the
447 <B>afsd</B> command in the machine's initialization file, such as the
448 <B>-daemons</B> argument to set the number of background daemons.
449 See <A HREF="auagd015.htm#HDRWQ387">Administering Client Machines and the Cache Manager</A> and the <B>afsd</B> reference page in the <I>IBM AFS
450 Administration Reference</I>.
451 <P><LI>Reboot the machine. On many system types, the appropriate command
452 is <B>shutdown</B>; consult your operating system
453 administrator's guide. 
454 <PRE>   # <B>shutdown</B> <VAR>appropriate_options</VAR>
455 </PRE>
456 </OL>
457 <A NAME="IDX8178"></A>
458 <A NAME="IDX8179"></A>
459 <P><H3><A NAME="Header_680" HREF="auagd002.htm#ToC_680">To disable or enable Translator functionality, or set optional features</A></H3>
460 <OL TYPE=1>
461 <P><LI>Become the local superuser <B>root</B> on the machine, if you are not
462 already, by issuing the <B>su</B> command. 
463 <PRE>   % <B>su root</B>
464    Password: <VAR>root_password</VAR>
465 </PRE>
466 <P><LI>Issue the <B>fs exportafs</B> command. 
467 <PRE>   # <B>fs exportafs nfs</B> [<B>-start</B> {<B>on</B> | <B>off</B>}} ]  [<B>-convert</B> {<B>on</B> | <B>off</B>}]   
468                       [<B>-uidcheck</B> {<B>on</B> | <B>off</B>}]   [<B>-submounts</B> {<B>on</B> | <B>off</B>}] 
469 </PRE> 
470 <DL>
471 <P><DT><B>-start
472 </B><DD>Disables translator functionality if the value is <B>off</B> or
473 reenables it if the value is <B>on</B>. Omit this argument to
474 display the current setting of all parameters set by this command.
475 <P><DT><B>-convert
476 </B><DD>Controls the setting of the second and third (<B>group</B> and
477 <B>other</B>) sets of UNIX mode bits on AFS files and directories as
478 exported to NFS clients If the value is <B>on</B>, they are set to match
479 the <B>owner</B> mode bits. If the value is <B>off</B>, the
480 bits are not changed. If this argument is omitted, the default value is
481 <B>on</B>.
482 <P><DT><B>-uidcheck
483 </B><DD>Controls whether issuers of the <B>knfs</B> command can specify a
484 value for its <B>-id</B> argument that does not match their AFS UID:
485 <UL>
486 <P><LI>If the value is <B>on</B>, the value of the <B>-id</B> argument
487 must match the issuer's local UID.
488 <P><LI>If the value is <B>off</B>, the issuer of the <B>knfs</B> command
489 can use the <B>-id</B> argument to assign tokens to a user who has a
490 different local UID on the NFS client machine, such as the local superuser
491 <B>root</B>.
492 </UL>
493 <P>If this argument is omitted, the default value is <B>off</B>.
494 <P><DT><B>-submounts
495 </B><DD>Controls whether the translator services an NFS mount of any directory in
496 the AFS filespace other than the top-level <B>/afs</B> directory.
497 If the value is <B>on</B>, such submounts are allowed. If the value
498 is off, only mounts of the <B>/afs</B> directory are allowed. If
499 this argument is omitted, the default value is <B>off</B>.
500 </DL>
501 </OL>
502 <HR><H2><A NAME="HDRWQ606" HREF="auagd002.htm#ToC_681">Configuring NFS Client Machines</A></H2>
503 <P>Any NFS client machine that meets the following requirements
504 can access files in AFS via the NFS/AFS Translator. It does not need to
505 be configured as an AFS client machine.
506 <UL>
507 <P><LI>It must NFS-mount a translator machine's <B>/afs</B> directory on
508 a local directory, which by convention is also called <B>/afs</B>.
509 The following instructions explain how to add the <B>mount</B> command to
510 the NFS client machine's <B>/etc/fstab</B> file or equivalent.
511 <P>
512 <P>The directory on which an NFS client mounts the translator's
513 machine's <B>/afs</B> directory can be called something other than
514 <B>/afs</B>. For instance, to make it easy to switch to another
515 translator machine if the original one becomes inaccessible, you can mount
516 more than one translator machine's <B>/afs</B> directory. Name
517 the mount <B>/afs</B> for the translator machine that you normally use,
518 and use a different name the mount to each alternate translator
519 machine.
520 <P>Mounting the AFS filespace on a directory other than <B>/afs</B>
521 introduces another requirement, however: when issuing a command that
522 takes an AFS pathname argument, you must specify the full pathname, starting
523 with <B>/afs</B>, rather than a relative pathname. Suppose, for
524 example, that a translator machine's AFS filespace is mounted at
525 <B>/afs2</B> on an NFS client machine and you issue the following command
526 to display the ACL on the current working directory, which is in AFS: 
527 <PRE>   % <B>fs listacl .</B>
528 </PRE> 
529 <P>The <B>fs</B> command interpreter on the NFS client must construct a
530 full pathname before passing the request to the Cache Manager on the
531 translator machine. The AFS filespace is mounted at <B>/afs2</B>,
532 so the full pathname starts with that string. However, the Cache
533 Manager on the translator cannot find a directory called <B>/afs2</B>,
534 because its mount of the AFS filespace is called <B>/afs</B>. The
535 command fails. To prevent the failure, provide the file's complete
536 pathname, starting with the string <B>/afs</B>.
537 <P><LI>It must run an appropriate number of NFS client <B>biod</B> daemons,
538 which improve performance by handling pre-reading and delayed writing.
539 Most NFS vendors recommend running four such daemons, and most NFS
540 initialization scripts start them automatically. Consult your NFS
541 documentation.
542 </UL>
543 <P>To enable users to issue AFS commands, the NFS client machine must also be
544 a supported system type (one for which AFS binaries are available) and able to
545 access the AFS command binaries. The <I>IBM AFS Release Notes</I>
546 list the supported system types in each release.
547 <P>In addition, the AFSSERVER and AFSCONF environment variables must be set
548 appropriately, as discussed in <A HREF="#HDRWQ600">Setting the AFSSERVER and AFSCONF Environment Variables</A>.
549 <P><H3><A NAME="Header_682" HREF="auagd002.htm#ToC_682">To configure an NFS client machine to access AFS</A></H3>
550 <TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">The following instructions enable NFS users to issue AFS commands.
551 Omit Step <A HREF="#LIWQ608">5</A> and Step <A HREF="#LIWQ609">6</A> if you do not want to enable this
552 functionality.
553 </TD></TR></TABLE>
554 <OL TYPE=1>
555 <P><LI>Become the local superuser <B>root</B> on the machine, if you are not
556 already, by issuing the <B>su</B> command. 
557 <PRE>   % <B>su root</B>
558    Password: <VAR>root_password</VAR>
559 </PRE>
560 <P><LI>Configure the machine as an NFS client machine, if it is not
561 already. Follow the instructions provided by your NFS vendor.
562 The number of NFS client (<B>biod</B>) daemons needs to be appropriate for
563 the expected load on this machine. The usual recommended number is
564 four.
565 <P><LI>Create a directory called <B>/afs</B> on the machine, if one does not
566 already exist, to act as the mount point for the translator machine's
567 <B>/afs</B> directory. It is acceptable to use other names, but
568 doing so introduces the limitation discussed in the introduction to this
569 section. 
570 <PRE>   # <B>mkdir /afs</B>
571 </PRE>
572 <A NAME="IDX8180"></A>
573 <A NAME="IDX8181"></A>
574 <P><LI><A NAME="LIWQ607"></A>Modify the machine's file systems registry file
575 (<B>/etc/fstab</B> or equivalent) to include a command that mounts a
576 translator machine's <B>/afs</B> directory. To verify the
577 correct syntax of the <B>mount</B> command, see the operating
578 system's <B>mount(5)</B> manual page. The following example
579 includes options that are appropriate on many system types. 
580 <PRE>   mount -o hard,intr,timeo=300  <VAR>translator_machine</VAR>:/afs /afs
581 </PRE> 
582 <P>where 
583 <DL>
584 <P><DT><B><TT>hard</TT>
585 </B><DD>Indicates that the NFS client retries NFS requests until the NFS server
586 (translator machine) responds. When using the translator, file
587 operations possibly take longer than with NFS alone, because they must also
588 pass through the AFS Cache Manager. With a soft mount, a delayed
589 response from the translator machine can cause the request to abort.
590 Many NFS versions use hard mounts by default; if your version does not,
591 it is best to add this option.
592 <P><DT><B><TT>intr</TT>
593 </B><DD>Enables the user to use a keyboard interrupt signal (such as
594 &lt;<B>Ctrl-c</B>>) to break the mount when the translator machine is
595 inaccessible. Include this option only if the <TT>hard</TT> option is
596 used, in which case the connection does not automatically break off when a
597 translator machine goes down.
598 <P><DT><B><TT>timeo</TT>
599 </B><DD>Sets the maximum time (in tenths of seconds) the translator can take to
600 respond to the NFS client's request before the client considers the
601 request timed out. With a hard mount, setting this option to a high
602 number like 300 reduces the number of error messages like the following, which
603 are generated when the translator does not respond immediately. 
604 <PRE>   NFS server <VAR>translator</VAR> is not responding, still trying
605 </PRE>
606 <P>
607 <P>With a soft mount, it reduces the number of actual errors returned on
608 timed-out requests.
609 <P><DT><B><VAR>translator_machine</VAR>
610 </B><DD>Specifies the fully-qualified hostname of the translator machine whose
611 <B>/afs</B> directory is to be mounted on the client machine's
612 <B>/afs</B> directory.
613 </DL>
614 <TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">To mount the translator machine's <B>/afs</B> directory onto a
615 directory on the NFS client other than <B>/afs</B>, substitute the
616 alternate directory name for the second instance of <TT>/afs</TT> in the
617 <B>mount</B> command.
618 </TD></TR></TABLE>
619 <P><LI><A NAME="LIWQ608"></A><B>(Optional)</B> If appropriate, create the
620 <B>/.AFSSERVER</B> file to set the AFSSERVER environment variable
621 for all of the machine's users. For a discussion, see <A HREF="#HDRWQ600">Setting the AFSSERVER and AFSCONF Environment Variables</A>. Place a single line in the file, specifying the
622 fully-qualified hostname of the translator machine that is to serve as the
623 remote executor. To enable users to issue commands that handle tokens,
624 it must be the machine named as <VAR>translator_machine</VAR> in Step <A HREF="#LIWQ607">4</A>.
625 <P><LI><A NAME="LIWQ609"></A><B>(Optional)</B> If appropriate, create the
626 <B>/.AFSCONF</B> file to set the AFSCONF environment variable for
627 all of the machine's users. For a discussion, see <A HREF="#HDRWQ600">Setting the AFSSERVER and AFSCONF Environment Variables</A>. Place a single line in the file, specifying the name
628 of the directory where the <B>CellServDB</B> and <B>ThisCell</B> files
629 reside. If you use a central update source for these files (by
630 convention, <B>/afs/</B><VAR>cellname</VAR><B>/common/etc</B>), name it
631 here.
632 </OL>
633 <HR><H2><A NAME="HDRWQ610" HREF="auagd002.htm#ToC_683">Configuring User Accounts</A></H2>
634 <P>There are no requirements for NFS users to access AFS as
635 unauthenticated users. To take advantage of more AFS functionality,
636 however, they must meet the indicated requirements.
637 <UL>
638 <P><LI>To access AFS as authenticated users, they must of course authenticate
639 with AFS, which requires an entry in the Protection and Authentication
640 Databases.
641 <P><LI>To create and store files, they need the required ACL permissions.
642 If you are providing a home directory for storage of personal files, it is
643 conventional to create a dedicated volume and mount it at the user's home
644 directory location in the AFS filespace.
645 <P><LI>To issue AFS commands, they must meet several additional
646 requirements:
647 <UL>
648 <P><LI>They must be working on an NFS client machine of a supported system type
649 and from which the AFS command binaries are accessible.
650 <P><LI>Their command shell must define values for the AFSSERVER and AFSCONF
651 environment variables, as described in <A HREF="#HDRWQ600">Setting the AFSSERVER and AFSCONF Environment Variables</A>. It is often simplest to define the variables by
652 creating <B>/.AFSSERVER</B> and <B>/.AFSCONF</B> file in
653 the NFS client machine's root directory, but you can also either set the
654 variables in each user's shell initialization file
655 (<B>.cshrc</B> or equivalent), or create files called
656 <B>.AFSSERVER</B> and <B>.AFSCONF</B> in each
657 user's home directory.
658 <P><LI>They must have an entry in the AFS Protection and Authentication
659 Databases, so that they can authenticate if the command requires AFS
660 privilege. Other commands instead require assuming the local
661 <B>root</B> identity on the translator machine; for further
662 discussion, see <A HREF="#HDRWQ601">The AFSSERVER Variable</A>.
663 <P><LI>Their PATH environment variable must include the pathname to the
664 appropriate AFS binaries. If a user works on NFS client machines of
665 different system types, include the <B>@sys</B> variable in the pathname
666 rather than an actual system type name.
667 </UL>
668 </UL>
669 <P><H3><A NAME="Header_684" HREF="auagd002.htm#ToC_684">To configure a user account for issuing AFS commands</A></H3>
670 <OL TYPE=1>
671 <P><LI>Create entries for the user in the Protection and Authentication
672 Databases, or create a complete AFS account. See the instructions for
673 account creation in <A HREF="auagd017.htm#HDRWQ449">Creating and Deleting User Accounts with the uss Command Suite</A> or <A HREF="auagd018.htm#HDRWQ491">Administering User Accounts</A>.
674 <P><LI><A NAME="LIWQ611"></A>Modify the user's PATH environment variable to include the
675 pathname of AFS binaries, such as
676 <B>/afs/</B><VAR>cellname</VAR><B>/</B><VAR>sysname</VAR><B>/usr/afsws/bin</B>.
677 If the user works on NFS client machines of different system types,
678 considering replacing the specific <VAR>sysname</VAR> value with the
679 <B>@sys</B> variable. The PATH variable is commonly defined in a
680 login or shell initialization file (such as the <B>.login</B> or
681 <B>.cshrc</B> file).
682 <P><LI><B>(Optional)</B> Set the AFSSERVER and AFSCONF environment variables
683 if appropriate. This is required if the NFS client machines on which
684 the user works do not have the <B>/.AFSSERVER</B> and <B>
685 /.AFSCONF</B> files in their root directories, or if you want
686 user-specific values to override those settings.
687 <P>Either define the variables in the user's login or shell
688 initialization file, or create the files <B>.AFSSERVER</B> and
689 <B>.AFSCONF</B> files in the user's home directory.
690 <P>For the AFSSERVER variable, specify the fully-qualified hostname of the
691 translator machine that is to serve as the remote executor. For the
692 AFSCONF variable, specify the name of the directory where the
693 <B>CellServDB</B> and <B>ThisCell</B> files reside. If you use
694 a central update source for these files (by convention,
695 <B>/afs/</B><VAR>cellname</VAR><B>/common/etc</B>), name it here.
696 <P><LI>If the pathname you defined in Step <A HREF="#LIWQ611">2</A> includes the <B>@sys</B> variable, instruct users to
697 check that their system name is defined correctly before they issue AFS
698 commands. They issue the following command: 
699 <PRE>   % <B>fs sysname</B>
700 </PRE>
701 </OL>
702 <HR><H2><A NAME="HDRWQ612" HREF="auagd002.htm#ToC_685">Authenticating on Unsupported NFS Client Machines</A></H2>
703 <P>The <B>knfs</B> command enables users to authenticate
704 with AFS when they are working on NFS clients of unsupported system types
705 (those for which AFS binaries are not available). This enables such
706 users to access the AFS file tree to the same extent as any other AFS
707 user. They cannot, however, issue AFS commands, which is possible only
708 on NFS client machines of supported system types.
709 <P>To authenticate on an unsupported system type, establish a connection to
710 the translator machine (using a facility such as <B>telnet</B>), and issue
711 the <B>klog</B> command to obtain tokens for all the cells you wish to
712 contact during the upcoming NFS session. Then issue the <B>knfs</B>
713 command, which stores the tokens in a credential structure associated with
714 your NFS session. The Cache Manager uses the tokens when performing AFS
715 access requests that originate from your NFS session.
716 <P>More specifically, the credential structure is identified by a process
717 authentication group (PAG) number associated with a particular local UID on a
718 specific NFS client machine. By default, the NFS UID recorded in the
719 credential structure is the same as your local UID on the translator
720 machine. You can include the <B>-id</B> argument to specify an
721 alternate NFS UID, unless the translator machine's administrator has used
722 the <B>fs exportafs</B> command's <B>-uidcheck</B> argument to
723 enable UID checking. In that case, the value of the <B>-id</B>
724 argument must match your local UID on the translator machine (so there is not
725 point to including the <B>-id</B> argument). Enforcing matching
726 UIDs prevents someone else from placing their tokens in your credential
727 structure, either accidentally or on purpose. However, it means that
728 your cell's administrators must set your local UID on the NFS client to
729 match your local UID on the translator machine. It also makes it
730 impossible to authenticate by issuing the <B>klog</B> command on supported
731 NFS clients, meaning that all NFS users must use the <B>knfs</B>
732 command. See <A HREF="#HDRWQ604">Controlling Optional Translator Features</A>.
733 <P>After issuing the <B>knfs</B> command, you can begin working on the NFS
734 client with authenticated access to AFS. When you are finished working,
735 it is a good policy to destroy your tokens by issuing the <B>knfs</B>
736 command on the translator machine again, this time with the <B>-unlog</B>
737 flag. This is simpler if you have left the connection to the translator
738 machine open, but you can always establish a new connection if you closed the
739 original one.
740 <P>If your NFS client machine is a supported system type and you wish to issue
741 AFS commands on it, include the <B>-sysname</B> argument to the
742 <B>knfs</B> command. The remote executor daemon on the translator
743 machine substitutes its value for the <B>@sys</B> variable in pathnames
744 when executing AFS commands that you issue on the NFS client machine.
745 If your PATH environment variable uses the <B>@sys</B> variable in the
746 pathnames for directories that house AFS binaries (as recommended), then
747 setting this argument enables the remote executor daemon to access the AFS
748 binaries appropriate for your NFS client machine even if its system type
749 differs from the translator machine's.
750 <P>If you do not issue the <B>knfs</B> command (or the <B>klog</B>
751 command on the NFS client machine itself, if it is a supported system type),
752 then you are not authenticated with AFS. For a description of
753 unauthenticated access, see <A HREF="#HDRWQ599">Enabling Unauthenticated or Authenticated AFS Access</A>.
754 <A NAME="IDX8182"></A>
755 <A NAME="IDX8183"></A>
756 <P><H3><A NAME="Header_686" HREF="auagd002.htm#ToC_686">To authenticate using the knfs command</A></H3>
757 <OL TYPE=1>
758 <P><LI>Log on to the relevant translator machine, either on the console or
759 remotely by using a program such as <B>telnet</B>.
760 <P><LI>Obtain tokens for every cell you wish to access while working on the NFS
761 client. AFS-modified login utilities acquire a token for the translator
762 machine's local cell by default; use <B>klog</B> command to
763 obtain tokens for other cells if desired.
764 <P><LI>Issue the <B>knfs</B> command to create a credential structure in the
765 translator machine's kernel memory for storing the tokens obtained in the
766 previous step. Include the <B>-id</B> argument to associate the
767 structure with a UID on the NFS client that differs from your local UID on the
768 translator machine. This is possible unless the translator
769 machine's administrator has enabled UID checking on the translator
770 machine; see <A HREF="#HDRWQ604">Controlling Optional Translator Features</A>. If the NFS client machine is a supported system type
771 and you wish to issue AFS commands on it, include the <B>-sysname</B>
772 argument to specify its system type. 
773 <PRE>   % <B>knfs -host</B> &lt;<VAR>host&nbsp;name</VAR>>  [<B>-id</B> &lt;<VAR>user&nbsp;ID&nbsp;(decimal)</VAR>>]  [<B>-sysname</B>  &lt;<VAR>host's&nbsp;'@sys'&nbsp;value</VAR>>]
774 </PRE> 
775 <P>where 
776 <DL>
777 <P><DT><B>-host
778 </B><DD>Specifies the fully-qualified hostname of the NFS client machine on which
779 you are working.
780 <P><DT><B>-id
781 </B><DD>Specifies a local UID number on the NFS client machine with which to
782 associate the tokens, if different from your local UID on the translator
783 machine. If this argument is omitted, the tokens are associated with an
784 NFS UID that matches your local UID on the translator machine. In both
785 cases, the NFS client software marks your AFS access requests with the NFS UID
786 when it forwards them to the Cache Manager on the translator machine.
787 <P><DT><B>-sysname
788 </B><DD>Specifies the value that the local machine's remote executor daemon
789 substitutes for the <B>@sys</B> variable in pathnames when executing AFS
790 commands issued on the NFS client machine (which must be a supported system
791 type).
792 </DL>
793 <P>The following error message indicates that the translator machine's
794 administrator has enabled UID checking and you have provided a value that
795 differs from your local UID on the translator machine. 
796 <PRE>   
797    knfs: Translator in 'passwd sync' mode; remote uid must be the same as local uid
798 </PRE>
799 <P><LI>Close the connection to the translator machine (if desired) and work on
800 the NFS client machine.
801 </OL>
802 <A NAME="IDX8184"></A>
803 <P><H3><A NAME="Header_687" HREF="auagd002.htm#ToC_687">To display tokens using the knfs command</A></H3>
804 <OL TYPE=1>
805 <P><LI>Log on to the relevant translator machine, either on the console or
806 remotely by using a program such as <B>telnet</B>.
807 <P><LI>Issue the <B>knfs</B> command with the <B>-tokens</B> flag to
808 display the tokens associated with either the NFS UID that matches your local
809 UID on the translator machine or the NFS UID specified by the <B>-id</B>
810 argument. 
811 <PRE>   % <B>knfs -host</B> &lt;<VAR>host&nbsp;name</VAR>>  [<B>-id</B> &lt;<VAR>user&nbsp;ID&nbsp;(decimal)</VAR>>] <B>-tokens</B>
812 </PRE> 
813 <P>where 
814 <DL>
815 <P><DT><B>-host
816 </B><DD>Specifies the fully-qualified hostname of the NFS client machine on which
817 you are working.
818 <P><DT><B>-id
819 </B><DD>Specifies the local UID on the NFS client machine for which to display
820 tokens, if different from your local UID on the translator machine. If
821 this argument is omitted, the tokens are for the NFS UID that matches your
822 local UID on the translator machine.
823 <P><DT><B>-tokens
824 </B><DD>Displays the tokens.
825 </DL>
826 <P><LI>Close the connection to the translator machine if desired.
827 </OL>
828 <A NAME="IDX8185"></A>
829 <P><H3><A NAME="Header_688" HREF="auagd002.htm#ToC_688">To discard tokens using the knfs command</A></H3>
830 <OL TYPE=1>
831 <P><LI>If you closed your connection to the translator machine after issuing the
832 <B>knfs</B> command, reopen it.
833 <P><LI>Issue the <B>knfs</B> command with the <B>-unlog</B> flag. 
834 <PRE>   % <B>knfs -host</B>  &lt;<VAR>host&nbsp;name</VAR>>  [<B>-id</B> &lt;<VAR>user&nbsp;ID&nbsp;(decimal)</VAR>>]  <B>-unlog</B>
835 </PRE> 
836 <P>where 
837 <DL>
838 <P><DT><B>-host
839 </B><DD>Specifies the fully-qualified hostname of the NFS client machine you are
840 working on.
841 <P><DT><B>-id
842 </B><DD>Specifies the local UID number on the NFS client machine for which to
843 discard the associated tokens, if different from your local UID on the
844 translator machine. If this argument is omitted, the tokens associated
845 with an NFS UID that matches your local UID on the translator machine are
846 discarded.
847 <P><DT><B>-unlog
848 </B><DD>Discards the tokens.
849 </DL>
850 <P><LI>If desired, close the connection to the translator machine.
851 </OL>
852 <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="auagd021.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="auagd023.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> 
853 <!-- Begin Footer Records  ========================================== -->
854 <P><HR><B> 
855 <br>&#169; <A HREF="http://www.ibm.com/">IBM Corporation 2000.</A>  All Rights Reserved 
856 </B> 
857 <!-- End Footer Records  ============================================ -->
858 <A NAME="Bot_Of_Page"></A>
859 </BODY></HTML>