Annotation of researchv10dc/man/man8/svcmgr.8, revision 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.