Annotation of researchv10dc/man/man8/svcmgr.8, revision 1.1.1.1

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)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.