File:  [Research Unix] / researchv10dc / man / man8 / svcmgr.8
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:34 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Dan Cross

.TH SVCMGR 8
.CT 1 sa_auto
.SH NAME
svcmgr \- service remote computing requests
.SH SYNOPSIS
.B /usr/ipc/mgrs/svcmgr
[
.B -d
]
.SH DESCRIPTION
.I Svcmgr
performes services
such as login and command execution,
often in response to requests from network listeners
like
.IR dkmgr
and
.IR tcpmgr (8).
It should be run once from
.IR rc (8).
.PP
.I Svcmgr
is controlled by several files in directory
.FR /usr/ipc/lib :
services are defined in files
.B serv
and
.BR serv.local ,
authorization in
.B auth
and
.BR auth.local .
The
.B .local
files are searched first.
The idea is that
.B serv
and
.B auth
will be the same throughout an administrative cluster of machines,
and anything peculiar to specific systems
will be kept in
.B serv.local
and
.BR auth.local .
.PP
Each service is announced
as a name in directory
.F /cs
using the routines in
.IR ipc (3).
When a connection is requested to one of these services,
.I svcmgr
receives a file descriptor
connected to the requester.
A new process is created
to perform the actions listed for that service
in the
.I serv
files,
usually resulting in a
.IR login (8)
with standard input, output, and error files
attached to the connection.
Often
there are flags to
.I login
specifying a local user name
or a command to be executed.
Environment variable
.SM CSOURCE
is set to a string
of the form
.IP
.BI source= remote-machine
.BI user= ruser
.BI line= lineinfo
.PP
.I Remote-machine
and
.I ruser
are supplied in the connection message;
.I lineinfo
network-dependent stuff
of varying interest and meaning.
If a particular command was specified
(the
.B cmd
or
.B exec
action),
.I login
sets
environment variable
.SM REXEC
to
.LR 1 .
.PP
The
.I auth
files are used to translate remote user names to local ones.
They contain lines with four fields:
.RS
service name
.br
calling system name
.br
calling user name
.br
local user name
.RE
.LP
The service, calling system, and calling user names
are regular expressions
in the style of
.IR regexp (3).
The calling system and calling user fields may be omitted;
.L .*
is assumed.
The local user name
is a literal name,
.L &
to repeat the calling user name provided in the request,
or
.L :
to explicitly reject a call.
If the local user name is omitted,
.L &
is assumed.
.PP
Several service actions `look up the connection in the
.I auth
files.'\0
This means to
find the first line in
.B auth.local
or
.B auth
for which the service,
calling system,
and calling user
match the patterns,
and return the local user name in that line
(the same as the calling user if
.LR & ).
If no matching line is found,
or if the first match has local user name
.LR : ,
the lookup fails.
.PP
The
.I serv
files contain lines with three fields:
.RS
service name
.br
a list of actions,
separated by
.L +
.br
the calling system name
.RE
.PP
The calling system name is a regular expression as in
the
.I auth
file.
The line matching an incoming call is the first whose service
matches the requested service and whose regular expression
matches the calling machine.
.PP
The possible actions are:
.de XP
.TP
.ie '\\$2'' .L "\\$1"
.el .L "\\$1(\f2\\$2\fP)"
..
.TF password
.PD
.XP user x
Use local username
.IR x .
.XP auth
Look up the connection
in the
.I auth
files.
If a match is found,
use the resulting local user.
Otherwise reject the call.
.XP v9auth
Look up the connection
in the
.I auth
files;
if a match is found,
send
.L OK
to the caller,
and use the result.
If there is no match, send
.LR NO ,
and read a string of the form `login,passwd\\n'.
If the login and password
describe a valid local user,
send
.L OK
and use that user;
otherwise send
.L NO
and try again
(until the caller gives up).
This is the authentication protocol used by
.IR ipclogin
(see
.IR ipc (3)),
hence by
.IR con (1),
.IR push (1),
and 
.IR pull.
.XP inauth
Read two null-terminated strings
from the caller.
If they aren't the same,
reject the call.
Otherwise look up the service,
calling system,
and the null-terminated string
(as a user name)
in the
.I auth
files,
use the resulting local user if there's a match,
reject the call otherwise.
This is the authentication protocol used by
.IR ipcrogin,
hence by
.IR rsh
and
.IR rlogin ;
see
.IR ipc (3)
and
.IR con (1).
.XP ttyld
Push the terminal line discipline
.IR ttyld (4)
onto the connection.
.XP mesgld
Push the reverse message line discipline
(see
.IR mesgld (4))
onto the connection.
.XP term
Read a null-terminated string from the caller,
and set environment variable
.SM TERM
to the result.
.XP args
Read a null-terminated string from the caller,
and save the result as arguments to a possible command.
.XP s5parms
Extract arguments from the destination address
in a way compatible with the
DKHOST network software
used by System V Datakit implementations,
and save for later use.
.XP cmd x
Execute shell command
.IR x ,
with any saved arguments,
and with the connection as standard input, output, and error.
.XP login
Provide a login session with the connection as standard input, output, and error.
.XP password
Provide a login session,
but ignore any local user name;
always demand a login and password.
.XP exec
Use any saved arguments
as a shell command to be executed.
.XP gateout gateway
Call network address
.IR gateway
and send the connection info there,
If all is well,
pass the new connection's file descriptor
to the original caller:
the result is a connection through the gateway.
.I Gateway
should be a
.I svcmgr
service,
perhaps on some other machine,
with action
.BR gateway .
.XP gateway localout
The intended target for
.BR gateout :
read new connection info from the connection,
and place a call to the new destination;
if it succeeds,
loop passing data between the new connection and the original one.
.PP
If the file
.F /usr/ipc/log/svc
can be opened,
.I svcmgr
prints miscellaneous chatter there,
including a record of each service request.
The
.B -d
(debug)
option increases the chatter.
...SH EXAMPLES
...to be supplied
.SH FILES
.nf
.F /usr/ipc/lib/serv
.F /usr/ipc/lib/serv.local
.F /usr/ipc/lib/auth
.F /usr/ipc/lib/auth.local
.F /usr/ipc/log/svc
.fi
.SH "SEE ALSO"
.IR con (1),
.IR ipc (3),
.IR dkmgr (8),
.IR tcpmgr (8),
.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.