Terminal server setup
=====================

This README file provides additional information for configuring
a terminal server.



Installation overview
---------------------
The s390-tools package installs the ts-shell(1) program along with
a set of configuration files in `/etc/iucvterm`.

The ts-shell program is pre-configured to connect to any other z/VM
guest virtual machines (if the z/VM guest virtual machine has the
respective IUCV authorizations).
The administrator can change the ts-shell configuration to restrict
connections to particular z/VM guest virtual machines only.

There are no user authorizations by default. The administrator must
edit `/etc/iucvterm/ts-authorization.conf` to assign authorizations.
See the manual page for ts-shell(1) and the `authorization-sample.conf`
file in the documentation directory for configuration examples.

In addition, the documentation directory also contains the
iucvconn_on_login sample program that is an alternative to ts-shell.




Setup considerations for the terminal server shell (ts-shell)
-------------------------------------------------------------
Adding new ts-shell users
~~~~~~~~~~~~~~~~~~~~~~~~~
The ts-shell installation creates a system group ts-shell.
If you intend to use ts-shell as a login shell for users, ensure that
these users are all members of ts-shell.  To add existing users to
group ts-shell, use +usermod -G ts-shell 'username'+.

The ts-shell configuration files and `/var/log/ts-shell` are
readable only by members of the *ts-shell* group.


Enabling terminal session transcripts
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ts-shell(1) can be configured to create transcripts of terminal sessions
to particular z/VM guest virtual machines. The transcripts are written
to log files in the `/var/log/ts-shell` directory.

NOTE:	The `/var/log/ts-shell` directory permission has the
	set-group-ID bit set. Sub-directories that are created by
	different users will inherit the group ownership of the
	`/var/log/ts-shell` directory.

See the ts-shell(1) manual page for more information about terminal
session transcripts.


Setting up command completion (optional)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*ts-shell* supports completion for commands and, if possible, for
z/VM guest virtual machines. The completion is triggered using the
'Tab' key. Command completion is an optional feature.

To enable command completion, install one of the following Perl
ReadLine libraries:

- Term::ReadLine::Gnu
- Term::ReadLine::Perl

Check your Linux distribution for packages that provide these Perl
ReadLine interfaces.




Setup a terminal server using the iucvconn_on_login program
-----------------------------------------------------------
*iucvconn_on_login* is a sample script that uses the iucvconn(1)
program to establish an IUCV terminal connection to a Linux
instance that runs as z/VM guest operating system.

It can be used as an alternative to set up a terminal server.
The idea of iucvconn_on_login is to establish a terminal connection
at login time.
The z/VM guest virtual machine to which iucvconn_on_login will
connect is the name of the Linux user that logs in.

For example, if you log in as Linux user "lxguest1", iucvconn_on_login
is started and establishes a terminal connection to the z/VM guest
virtual machine lxguest1.


Adding new users for z/VM guest virtual machines
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To set up a terminal server using the iucvconn_on_login program,
create a new Linux user for each z/VM guest virtual machine using
the z/VM user ID as name. Set the login shell of those users to
*iucvconn_on_login*.

NOTE:	User names are case-sensitive in Linux.	To ensure consistency,
	always use either lower or upper case characters for your
	user names.

To create a new user for z/VM guest virtual machine LXGUEST1
----
useradd -s /usr/bin/iucvconn_on_login lxguest1
----

If you log in as user 'lxguest1' on the terminal server (for example
using ssh(1)), *iucvconn_on_login* immediately establishes the terminal
connection to the z/VM virtual guest virtual machine 'lxguest1'.

To access the default terminal ('lnxhvc0') on the Linux instance in
z/VM guest virtual machine LXGUEST1
----
ssh lxguest1@terminal.server
----
To access the terminal 'lnxterm' on the Linux instance in
z/VM guest virtual machine LXGUEST1
----
ssh -t lxguest1@terminal.server lnxterm
----
For ssh(1), you must use the "-t" parameter if you want to specify an
alternate terminal identifier. The "-t" parameter ensures that ssh
starts iucvconn_on_login on a terminal.
