|
|
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.