|
|
1.1 root 1: .TH NETFS 8
2: .CT 1 sa_nonmortals
3: .SH NAME
4: netfs \- network file system
5: .SH SYNOPSIS
6: .nf
7: .B /usr/netb/setup.go
8: .fi
9: .SH DESCRIPTION
10: The network file system is conventionally a set of directories
11: contained in
12: .FR /n ,
13: and a set of files and programs in
14: .FR /usr/netb .
15: Connections in the network file system are asymmetric:
16: files on a `server' system are made accessible on a `client' system,
17: usually in directory
18: .BI /n/ server-name.
19: .SS Client
20: The client runs
21: .FR /usr/netb/setup
22: to maintain connections;
23: it is started by invoking
24: .F /usr/netb/setup.go
25: from
26: .IR rc (8).
27: .I Setup
28: uses
29: .F /usr/netb/friends
30: to control the connections to servers.
31: Each line in
32: .I friends
33: contains six fields:
34: .RS
35: network address
36: .br
37: network call argument
38: .br
39: mount point
40: .br
41: protocol id
42: .br
43: unique identifier
44: .br
45: debugging flag
46: .br
47: network calling username
48: .RE
49: .PP
50: The network address and argument give the location of the server.
51: They are interpreted differently according to the protocol id,
52: which should be one of
53: .TP
54: .B d
55: Call the server on the named network address,
56: with default network
57: .L dk
58: and default service name
59: .LR fsb .
60: The network call argument is ignored.
61: The server machine should respond by calling
62: .IR zarf ,
63: described below;
64: see
65: .IR svcmgr (8).
66: .TP
67: .B t
68: Call the named network address,
69: with default network
70: .LR tcp ,
71: and invoke the program named in the
72: network call argument
73: using the protocol of
74: .IR rsh ;
75: .IR con (1).
76: .PP
77: .I Setup
78: calls
79: .IR setlogname
80: (see
81: .IR getuid (2))
82: to make the network call appear to have been placed
83: by the calling username.
84: The username may be omitted;
85: .LR daemon
86: is the default.
87: .PP
88: The mount point is the directory
89: on which the remote file system is to appear.
90: The unique identifier is a integer in the range 0-255;
91: it is used internally to distinguish connections,
92: and must be unique among all active remote file systems
93: (including those not maintained by
94: .IR setup ,
95: e.g.
96: .IR faced (9.5)).
97: The debugging flag is usually 0;
98: nonzero numbers
99: increase the chatter in various logfiles.
100: .PP
101: .I Setup
102: reads the
103: .I friends
104: file when it starts,
105: and checks for changes once a minute.
106: Each remote file system is probed once a minute;
107: if there is no response to several consecutive probes,
108: the connection is torn down and restarted.
109: Failed connections are retried every minute.
110: .SS Server
111: The server program is
112: .FR /usr/netb/zarf .
113: A separate
114: .I zarf
115: process exists for each client.
116: .PP
117: When a connection is started,
118: the client sends the server a list of valid user and group names
119: and the corresponding numerical IDs
120: on the client system.
121: The userid and groupid of user and group names that exist
122: on both machines are mapped so that
123: client and server see IDs
124: under the same names.
125: Unmapped IDs on the server appear as \-1 on the client.
126: Client processes with unmapped IDs are denied access.
127: .PP
128: .I Zarf
129: is subject to access control on the server.
130: It will have access only to files that its own userid
131: and groupid admit.
132: Unless run as super-user, it will create files with its own,
133: not mapped, userid.
134: .PP
135: .I Zarf
136: reads configuration information
137: from
138: .F /usr/netb/except.local
139: and
140: .FR /usr/netb/except .
141: The
142: files are read only once,
143: when
144: .I zarf
145: starts,
146: .B except.local
147: first.
148: Usually
149: .B except
150: is the same on all machines in some administrative cluster,
151: .B except.local
152: contains things specific to a particular server system.
153: .PP
154: The files contain sections
155: beginning with the line
156: .B client
157: .I origin.
158: .I Origin
159: is the name of the calling client,
160: as provided by the network;
161: .L *
162: matches any client.
163: The first matching section is used.
164: .PP
165: Within each section,
166: lines have of one of the following forms.
167: Lines beginning with
168: .L #
169: are ignored.
170: .TP
171: .BI "uid " cname = sname
172: Regardless of the contents of password files,
173: map client user name
174: .I cname
175: to server user name
176: .IR sname .
177: If
178: .I cname
179: is not announced as valid by the client,
180: the line is ignored.
181: If
182: .I sname
183: is not a valid name on the server,
184: any previous mapping for
185: .I cname
186: is discarded.
187: .TP
188: .BI "gid " cname = sname
189: Map client group name
190: .I cname
191: to server group name
192: .IR sname ,
193: as above.
194: .TP
195: .BI "param otherok=" val
196: If
197: .I val
198: is
199: .LR 1 ,
200: client processes with unmapped userids
201: are granted world access
202: to existing files on the server.
203: Unmapped userids
204: may never create files
205: (who would own them?).
206: If
207: .I val
208: is anything else,
209: no access is permitted
210: to
211: unmapped client userids.
212: .TP
213: .BI "param root=" pathname
214: Use
215: .I pathname
216: rather than
217: .B /
218: as the root of the filename hierarchy
219: made visible on the client.
220: .SH EXAMPLES
221: A
222: .I friends
223: file
224: for a connection to
225: .B alice
226: over Datakit,
227: .B shamash
228: over TCP/IP,
229: and
230: .B bebop
231: over TCP/IP
232: without administrative help:
233: .RS
234: .EX
235: .ta \w'tcp!shamash!400 'u +\w'/usr/pjw/netb/zarf 'u +\w'/n/alice 'u +.3i +.3i +.3i
236: alice - /n/alice d 0 0
237: tcp!shamash!400 - /n/sun d 1 0
238: bebop /usr/pjw/netb/zarf /n/bebop t 2 0 pjw
239: .EE
240: .RE
241: .PP
242: Some
243: .I except
244: file rules:
245: .RS
246: .EX
247: client dk!nj/astro/research
248: param otherok=1
249: client *
250: uid root=
251: gid mail=other
252: param otherok=0
253: param root=/usr/spool
254: .EE
255: .RE
256: .PP
257: If the
258: .I research
259: machine calls as a client,
260: the whole file system tree is visible,
261: all userids including the super-user
262: are permitted normal access,
263: and user names unknown to the server
264: are permitted world access.
265: If any other machine calls,
266: only the contents of
267: .B /usr/spool
268: are visible,
269: .I root
270: and unknown users
271: are explicitly denied access,
272: and
273: processes in group
274: .I mail
275: on the client
276: are treated as if in group
277: .I other
278: on the server.
279: .SH FILES
280: .PD 0
281: .TF /usr/netb/except.local
282: .TP
283: .F /n/*
284: .TP
285: .F /usr/netb/friends
286: client connection info
287: .TP
288: .F /usr/netb/except.local
289: .TP
290: .F /usr/netb/except
291: .TP
292: .F /usr/netb/setupl
293: log file for
294: .I setup
295: .TP
296: .F /usr/netb/zarf.log
297: log file for zarf
298: server control info
299: .SH SEE ALSO
300: S. A. Rago, `A Look at the Version 9 Network File System',
301: this manual, Volume\ 2
302: .SH BUGS
303: The scheme works only in a modest-sized, friendly community, as it
304: requires a process per client, trust of clients' security, and common
305: login names.
306: .br
307: File modification times are adjusted for clock-time differences
308: between machines.
309: Thus, when viewed across the network,
310: identical files installed on different machines by
311: .IR asd (8)
312: may appear to have different modification times, and
313: symbol tables of random libraries
314: .RI ( ar (1))
315: may appear to be out of date.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.