libvirt/tools/virt-login-shell.pod
Eric Blake 730fc9622b virt-login-shell: saner exit value
virt-login-shell was exiting with status 0, regardless of what the
wrapped shell returned.  This is unkind to users; we should behave
more like env(1), nice(1), su(1), and other wrapper programs, by
preserving the invoked application's status (which includes the
distinction between death due to signal vs. normal death).

* tools/virt-login-shell.c (main): Pass through child exit status.
* tools/virt-login-shell.pod: Document exit status.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-03 12:40:32 -07:00

100 lines
2.6 KiB
Plaintext

=head1 NAME
virt-login-shell - tool to execute a shell within a container matching the users name
=head1 SYNOPSIS
B<virt-login-shell> [I<OPTION>]
=head1 DESCRIPTION
The B<virt-login-shell> program is a setuid shell that is used to join
an LXC container that matches the user's name. If the container is not
running, virt-login-shell will attempt to start the container.
virt-login-shell is not allowed to be run by root. Normal users will get
added to a container that matches their username, if it exists, and they are
configured in /etc/libvirt/virt-login-shell.conf.
The basic structure of most virt-login-shell usage is:
virt-login-shell
=head1 OPTIONS
=over
=item B<-h, --help>
Display command line help usage then exit.
=item B<-V, --version>
Display version information then exit.
=back
=head1 CONFIG
By default, virt-login-shell will execute the /bin/sh program for the user.
You can modify this behaviour by defining the shell variable in
/etc/libvirt/virt-login-shell.conf.
eg. shell = [ "/bin/ksh", "--login"]
By default no users are allowed to use virt-login-shell, if you want to allow
certain users to use virt-login-shell, you need to modify the allowed_users
variable in /etc/libvirt/virt-login-shell.conf.
eg. allowed_users = [ "tom", "dick", "harry" ]
=head1 EXIT STATUS
B<virt-login-shell> normally returns the exit status of the command it
executed. If the command was killed by a signal, but that signal is not
fatal to virt-login-shell, then it returns the signal number plus 128.
Exit status generated by B<virt-login-shell> itself:
=over 4
=item B<0> An option was used to learn more about this binary.
=item B<125> Generic error before attempting execution of the configured
shell; for example, if libvirtd is not running.
=item B<126> The configured shell exists but could not be executed.
=item B<127> The configured shell could not be found.
=back
=head1 BUGS
Report any bugs discovered to the libvirt community via the mailing
list C<http://libvirt.org/contact.html> or bug tracker C<http://libvirt.org/bugs.html>.
Alternatively report bugs to your software distributor / vendor.
=head1 AUTHORS
Please refer to the AUTHORS file distributed with libvirt.
Daniel Walsh <dwalsh at redhat dot com>
=head1 COPYRIGHT
Copyright (C) 2013-2014 Red Hat, Inc., and the authors listed in the
libvirt AUTHORS file.
=head1 LICENSE
virt-login-shell is distributed under the terms of the GNU LGPL v2+.
This is free software; see the source for copying conditions. There
is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE
=head1 SEE ALSO
L<virsh(1)>, L<http://www.libvirt.org/>
=cut