X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=spec.html%2Fch-ipass.html;h=84fcf2bfbd4dd222f282c9f7ae35e4183a508445;hb=577f76ec28003536eb948cadfb24e9fa81dfdad6;hp=cfe70cbc068cc533b78cd89418bd0a6784e288a6;hpb=bf70bf4bd61f77133984b7bb84d2ada358333796;p=userv.git diff --git a/spec.html/ch-ipass.html b/spec.html/ch-ipass.html index cfe70cb..84fcf2b 100644 --- a/spec.html/ch-ipass.html +++ b/spec.html/ch-ipass.html @@ -1,101 +1,144 @@ -
+ + + + + +The information described below is the only information which passes between the caller and the service.
service
parameter, and is used by the
+execute-from-directory
and execute-from-path
configuration directives. It is usually used to select which service
program to invoke. It is also passed to the service program in the
-USERV_SERVICE environment variable.
+USERV_SERVICE
environment variable.
+
+its caller or file descriptors it is passed by its caller. Data may be passed into the service through reading pipes and out of it through writing pipes. These pipes can remain open only until the service and client have terminated, or can be made to stay open after the client has terminated and (if the service program forks) the main service process has exited; the behaviour is controlled by options -passed to the client by its caller.
+passed to the client by its caller. The caller can arrange that a writing pipe be connected to a pipe or similar object and cause attempts to write to that descriptor by the -service to generate a SIGPIPE (or EPIPE if -SIGPIPE is caught or ignored) in the service.
+service to generate a SIGPIPE
(or EPIPE
if
+SIGPIPE
is caught or ignored) in the service.
Likewise, the service can close filedescriptors specified for reading,
which will cause the corresponding filedescriptors passed by the
caller to be closed, so that if these are pipes processes which write
-to them will receive SIGPIPE or EPIPE.
-
SIGPIPE
or EPIPE
.
+
+no-suppress-args
is set then arguments passed to the client
by its caller will be passed on, verbatim, to the service.
+
disconnect-hup
is set then the service will also be sent a
+SIGHUP
.
+
+LOGNAME
(or USER
) environment variable
as passed to the client will be used as the login name of the calling
user if the uid of the calling process matches the uid corresponding
to that login name. Otherwise the calling uid's password entry will
-be used to determine the calling user's login name.+be used to determine the calling user's login name. This login name and the calling uid are available in the configuration -language in the calling-user parameter and are passed to the -service program in environment variables USERV_USER and -USERV_UID.
+language in the calling-user
parameter and are passed to the
+service program in environment variables USERV_USER
and
+USERV_UID
.
The shell corresponding to that login name (according to the password
entry) is available as in the configuration language's
-calling-user-shell parameter.
+calling-user-shell
parameter.
If no relevant password entry can be found then no service will be
invoked.
+
+calling-group
parameter and are passed to the service in
+environment variables.
If no name can be found for a numeric group to which the calling
process belongs then no service will be invoked.
+
--hidecwd
,
+to the service program in the USERV_CWD
variable. This grants no
special access to that directory unless it is a subdirectory of a
directory which is executable (searchable) but not readable by the
service user.
---defvar
-
name=
value
option to the client are available in the
-configuration language as the corresponding u-
name
+
+USERV_U_
name
.
+variables USERV_U_name.
+