\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gates-of-tartaros.info @settitle gates-of-tartaros @afourpaper @documentencoding UTF-8 @documentlanguage en @finalout @c %**end of header @c --- start of do not touch --- @set BIN /bin @set SBIN /sbin @set DEV /dev @set ETC /etc @set GOT got @set SSH ssh @c --- end of do not touch --- @dircategory System @direntry * gates-of-tartaros: (gates-of-tartaros). Extensible minimal TTY login manager with SSH support @end direntry @copying Copyright @copyright{} 2013 Mattias Andrée @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @ifnottex @node Top @top gates-of-tartaros -- Extensible minimal TTY login manager with SSH support @insertcopying @end ifnottex @titlepage @title Gates of Tartaros @subtitle Extensible minimal TTY login manager with SSH support @author by Mattias Andrée (maandree) @page @vskip 0pt plus 1filll @insertcopying @c@page @c@*@* @c@center `' @end titlepage @contents @menu * Overview:: Brief overview of Gates of Tartaros. * Setting up:: Setting up Gates of Tartaros. * Extensibility:: Configure and extend Gates of Tartaros. * GNU Free Documentation License:: Copying and sharing this manual. @end menu @node Overview @chapter Overview Gates of Tartaros is a minimal, but extensible, replacement for agetty written in GNU Bash. The be key feature of Gates of Tartaros is that it lets you easily login to another computer with SSH. @c Hence the name Gates of Tartaros, in MLP Kerberos gaurds the @c gates of Tartaros (rather than Hades), the place where the @c worst of pony kind gets after death, which in this analogy @c is where you are before SSH:ing. When SSH:ing, Kerberos @c (perhaps more specifically Heimdall) make sure you only get @c in if you are authorised (getting in being getting out of @c Tartaros.) To login when Gates of Tartaros is running, just type your username, but for an SSH session, type what you would type as the argments for @command{@value{SSH}}. Normal patterns for SSH logins include: @itemize @item @code{username@@hostname} @item @code{username@@hostname port} @end itemize @node Setting up @chapter Setting up To set up your inittab to to use Gates of Tartaros instead of @command{agetty}, in your inittab, use the command @command{@value{SBIN}/@value{GOT}} with the first argument being the tty it should open on (@code{tty1}, @code{tty2}, ..., not @code{@value{DEV}/tty1}, @code{@value{DEV}/tty2}, ...), followed by exports. For example: @example c1:345:respawn:@value{SBIN}/@value{GOT} tty1 TERM=linux c2:345:respawn:@value{SBIN}/@value{GOT} tty2 TERM=linux c3:345:respawn:@value{SBIN}/@value{GOT} tty3 TERM=linux c4:345:respawn:@value{SBIN}/@value{GOT} tty4 TERM=linux c5:345:respawn:@value{SBIN}/@value{GOT} tty5 TERM=linux c6:345:respawn:@value{SBIN}/@value{GOT} tty6 TERM=linux @end example @node Extensibility @chapter Extensibility Extensions are loaded by Gates of Tartaros by sourcing the file @file{@value{ETC}/@value{GOT}rc} if it exists. @file{@value{ETC}/@value{GOT}rc} can change the behaviour of Gates of Tartaros or source other files that does so. The variable @code{tty} will be set from the beginning to the TTY file, without @code{@value{DEV}/}, for example @code{tty1}. Gates of Tartaros as three functions is calls directly after each other: @code{_display} for printing everying you see, @code{_read} to accept username input and stores it in the variable @code{user}, and then @code{_login} to start a login. Password checking is handled by external programs @command{@value{SSH}} and @command{login} that are used doing the actual user login. You either redefine these functions, or change the variables @code{display_function}, @code{read_function} or @code{login_function} to contain the name of the functions you want to be called instead. The latter option can be used to extend rather then replace the predefined functions. The file @file{@value{ETC}/os-release} will have been sources before the extensions and @code{NAME} and @code{ANSI_COLOR} will have fallback values. @code{NAME} is the name of the operating system (distribution) and @code{ANSI_COLOR} is its associated colour. @node GNU Free Documentation License @appendix GNU Free Documentation License @include fdl.texinfo @bye