|
|
1.1 root 1: .TH SVCMGR 8
2: .CT 1 sa_auto
3: .SH NAME
4: svcmgr \- service remote computing requests
5: .SH SYNOPSIS
6: .B /usr/ipc/mgrs/svcmgr
7: [
8: .B -d
9: ]
10: .SH DESCRIPTION
11: .I Svcmgr
12: performes services
13: such as login and command execution,
14: often in response to requests from network listeners
15: like
16: .IR dkmgr
17: and
18: .IR tcpmgr (8).
19: It should be run once from
20: .IR rc (8).
21: .PP
22: .I Svcmgr
23: is controlled by several files in directory
24: .FR /usr/ipc/lib :
25: services are defined in files
26: .B serv
27: and
28: .BR serv.local ,
29: authorization in
30: .B auth
31: and
32: .BR auth.local .
33: The
34: .B .local
35: files are searched first.
36: The idea is that
37: .B serv
38: and
39: .B auth
40: will be the same throughout an administrative cluster of machines,
41: and anything peculiar to specific systems
42: will be kept in
43: .B serv.local
44: and
45: .BR auth.local .
46: .PP
47: Each service is announced
48: as a name in directory
49: .F /cs
50: using the routines in
51: .IR ipc (3).
52: When a connection is requested to one of these services,
53: .I svcmgr
54: receives a file descriptor
55: connected to the requester.
56: A new process is created
57: to perform the actions listed for that service
58: in the
59: .I serv
60: files,
61: usually resulting in a
62: .IR login (8)
63: with standard input, output, and error files
64: attached to the connection.
65: Often
66: there are flags to
67: .I login
68: specifying a local user name
69: or a command to be executed.
70: Environment variable
71: .SM CSOURCE
72: is set to a string
73: of the form
74: .IP
75: .BI source= remote-machine
76: .BI user= ruser
77: .BI line= lineinfo
78: .PP
79: .I Remote-machine
80: and
81: .I ruser
82: are supplied in the connection message;
83: .I lineinfo
84: network-dependent stuff
85: of varying interest and meaning.
86: If a particular command was specified
87: (the
88: .B cmd
89: or
90: .B exec
91: action),
92: .I login
93: sets
94: environment variable
95: .SM REXEC
96: to
97: .LR 1 .
98: .PP
99: The
100: .I auth
101: files are used to translate remote user names to local ones.
102: They contain lines with four fields:
103: .RS
104: service name
105: .br
106: calling system name
107: .br
108: calling user name
109: .br
110: local user name
111: .RE
112: .LP
113: The service, calling system, and calling user names
114: are regular expressions
115: in the style of
116: .IR regexp (3).
117: The calling system and calling user fields may be omitted;
118: .L .*
119: is assumed.
120: The local user name
121: is a literal name,
122: .L &
123: to repeat the calling user name provided in the request,
124: or
125: .L :
126: to explicitly reject a call.
127: If the local user name is omitted,
128: .L &
129: is assumed.
130: .PP
131: Several service actions `look up the connection in the
132: .I auth
133: files.'\0
134: This means to
135: find the first line in
136: .B auth.local
137: or
138: .B auth
139: for which the service,
140: calling system,
141: and calling user
142: match the patterns,
143: and return the local user name in that line
144: (the same as the calling user if
145: .LR & ).
146: If no matching line is found,
147: or if the first match has local user name
148: .LR : ,
149: the lookup fails.
150: .PP
151: The
152: .I serv
153: files contain lines with three fields:
154: .RS
155: service name
156: .br
157: a list of actions,
158: separated by
159: .L +
160: .br
161: the calling system name
162: .RE
163: .PP
164: The calling system name is a regular expression as in
165: the
166: .I auth
167: file.
168: The line matching an incoming call is the first whose service
169: matches the requested service and whose regular expression
170: matches the calling machine.
171: .PP
172: The possible actions are:
173: .de XP
174: .TP
175: .ie '\\$2'' .L "\\$1"
176: .el .L "\\$1(\f2\\$2\fP)"
177: ..
178: .TF password
179: .PD
180: .XP user x
181: Use local username
182: .IR x .
183: .XP auth
184: Look up the connection
185: in the
186: .I auth
187: files.
188: If a match is found,
189: use the resulting local user.
190: Otherwise reject the call.
191: .XP v9auth
192: Look up the connection
193: in the
194: .I auth
195: files;
196: if a match is found,
197: send
198: .L OK
199: to the caller,
200: and use the result.
201: If there is no match, send
202: .LR NO ,
203: and read a string of the form `login,passwd\\n'.
204: If the login and password
205: describe a valid local user,
206: send
207: .L OK
208: and use that user;
209: otherwise send
210: .L NO
211: and try again
212: (until the caller gives up).
213: This is the authentication protocol used by
214: .IR ipclogin
215: (see
216: .IR ipc (3)),
217: hence by
218: .IR con (1),
219: .IR push (1),
220: and
221: .IR pull.
222: .XP inauth
223: Read two null-terminated strings
224: from the caller.
225: If they aren't the same,
226: reject the call.
227: Otherwise look up the service,
228: calling system,
229: and the null-terminated string
230: (as a user name)
231: in the
232: .I auth
233: files,
234: use the resulting local user if there's a match,
235: reject the call otherwise.
236: This is the authentication protocol used by
237: .IR ipcrogin,
238: hence by
239: .IR rsh
240: and
241: .IR rlogin ;
242: see
243: .IR ipc (3)
244: and
245: .IR con (1).
246: .XP ttyld
247: Push the terminal line discipline
248: .IR ttyld (4)
249: onto the connection.
250: .XP mesgld
251: Push the reverse message line discipline
252: (see
253: .IR mesgld (4))
254: onto the connection.
255: .XP term
256: Read a null-terminated string from the caller,
257: and set environment variable
258: .SM TERM
259: to the result.
260: .XP args
261: Read a null-terminated string from the caller,
262: and save the result as arguments to a possible command.
263: .XP s5parms
264: Extract arguments from the destination address
265: in a way compatible with the
266: DKHOST network software
267: used by System V Datakit implementations,
268: and save for later use.
269: .XP cmd x
270: Execute shell command
271: .IR x ,
272: with any saved arguments,
273: and with the connection as standard input, output, and error.
274: .XP login
275: Provide a login session with the connection as standard input, output, and error.
276: .XP password
277: Provide a login session,
278: but ignore any local user name;
279: always demand a login and password.
280: .XP exec
281: Use any saved arguments
282: as a shell command to be executed.
283: .XP gateout gateway
284: Call network address
285: .IR gateway
286: and send the connection info there,
287: If all is well,
288: pass the new connection's file descriptor
289: to the original caller:
290: the result is a connection through the gateway.
291: .I Gateway
292: should be a
293: .I svcmgr
294: service,
295: perhaps on some other machine,
296: with action
297: .BR gateway .
298: .XP gateway localout
299: The intended target for
300: .BR gateout :
301: read new connection info from the connection,
302: and place a call to the new destination;
303: if it succeeds,
304: loop passing data between the new connection and the original one.
305: .PP
306: If the file
307: .F /usr/ipc/log/svc
308: can be opened,
309: .I svcmgr
310: prints miscellaneous chatter there,
311: including a record of each service request.
312: The
313: .B -d
314: (debug)
315: option increases the chatter.
316: ...SH EXAMPLES
317: ...to be supplied
318: .SH FILES
319: .nf
320: .F /usr/ipc/lib/serv
321: .F /usr/ipc/lib/serv.local
322: .F /usr/ipc/lib/auth
323: .F /usr/ipc/lib/auth.local
324: .F /usr/ipc/log/svc
325: .fi
326: .SH "SEE ALSO"
327: .IR con (1),
328: .IR ipc (3),
329: .IR dkmgr (8),
330: .IR tcpmgr (8),
331: .IR ipc (3)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.