diff options
Diffstat (limited to '')
-rw-r--r-- | term-utils/agetty.8 | 504 |
1 files changed, 504 insertions, 0 deletions
diff --git a/term-utils/agetty.8 b/term-utils/agetty.8 new file mode 100644 index 0000000..1ef9387 --- /dev/null +++ b/term-utils/agetty.8 @@ -0,0 +1,504 @@ +.TH AGETTY 8 "February 2016" "util-linux" "System Administration" +.SH NAME +agetty \- alternative Linux getty + +.SH SYNOPSIS +.B agetty +[options] +.IR port " [" baud_rate "...] [" term ] + +.SH DESCRIPTION +.ad +.fi +\fBagetty\fP opens a tty port, prompts for a login name and invokes +the /bin/login command. It is normally invoked by \fBinit\fP(8). + +\fBagetty\fP has several \fInon-standard\fP features that are useful +for hardwired and for dial-in lines: +.IP \(bu +Adapts the tty settings to parity bits and to erase, kill, +end-of-line and uppercase characters when it reads a login name. +The program can handle 7-bit characters with even, odd, none or space +parity, and 8-bit characters with no parity. The following special +characters are recognized: Control-U (kill); DEL and +backspace (erase); carriage return and line feed (end of line). +See also the \fB\-\-erase\-chars\fP and \fB\-\-kill\-chars\fP options. +.IP \(bu +Optionally deduces the baud rate from the CONNECT messages produced by +Hayes(tm)-compatible modems. +.IP \(bu +Optionally does not hang up when it is given an already opened line +(useful for call-back applications). +.IP \(bu +Optionally does not display the contents of the \fI/etc/issue\fP file. +.IP \(bu +Optionally displays an alternative issue file or directory instead of \fI/etc/issue\fP or \fI/etc/issue.d\fP. +.IP \(bu +Optionally does not ask for a login name. +.IP \(bu +Optionally invokes a non-standard login program instead of +\fI/bin/login\fP. +.IP \(bu +Optionally turns on hardware flow control. +.IP \(bu +Optionally forces the line to be local with no need for carrier detect. +.PP +This program does not use the \fI/etc/gettydefs\fP (System V) or +\fI/etc/gettytab\fP (SunOS 4) files. +.SH ARGUMENTS +.na +.nf +.fi +.ad +.TP +.I port +A path name relative to the \fI/dev\fP directory. If a "\-" is +specified, \fBagetty\fP assumes that its standard input is +already connected to a tty port and that a connection to a +remote user has already been established. +.sp +Under System V, a "\-" \fIport\fP argument should be preceded +by a "\-\-". +.TP +.IR baud_rate ,... +A comma-separated list of one or more baud rates. Each time +\fBagetty\fP receives a BREAK character it advances through +the list, which is treated as if it were circular. +.sp +Baud rates should be specified in descending order, so that the +null character (Ctrl\-@) can also be used for baud-rate switching. +.sp +This argument is optional and unnecessary for \fBvirtual terminals\fP. +.sp +The default for \fBserial terminals\fP is keep the current baud rate +(see \fB\-\-keep\-baud\fP) and if unsuccessful then default to '9600'. +.TP +.I term +The value to be used for the TERM environment variable. This overrides +whatever init(8) may have set, and is inherited by login and the shell. +.sp +The default is 'vt100', or 'linux' for Linux on a virtual terminal, +or 'hurd' for GNU Hurd on a virtual terminal. +.SH OPTIONS +.na +.nf +.fi +.ad +.TP +\-8, \-\-8bits +Assume that the tty is 8-bit clean, hence disable parity detection. +.TP +\-a, \-\-autologin \fIusername\fP +Automatically log in the specified user without asking for a username or password. +Using this option causes an \fB\-f \fIusername\fR option and argument to be +added to the \fB/bin/login\fP command line. See \fB\-\-login\-options\fR, which +can be used to modify this option's behavior. + +Note that \fB\-\-autologin\fP may affect the way how agetty initializes the +serial line, because on auto-login agetty does not read from the line and it +has no opportunity optimize the line setting. +.TP +\-c, \-\-noreset +Do not reset terminal cflags (control modes). See \fBtermios\fP(3) for more +details. +.TP +\-E, \-\-remote +Typically the \fBlogin\fP(1) command is given a remote hostname when +called by something such as \fBtelnetd\fP(8). This option allows \fBagetty\fP +to pass what it is using for a hostname to \fBlogin\fP(1) for use +in \fButmp\fP(5). See \fB\-\-host\fP, \fBlogin\fP(1), and \fButmp\fP(5). +.IP +If the \fB\-\-host\fP \fIfakehost\fP option is given, then an \fB\-h\fP +\fIfakehost\fP option and argument are added to the \fB/bin/login\fP +command line. +.IP +If the \fB\-\-nohostname\fR option is given, then an \fB\-H\fP option +is added to the \fB/bin/login\fP command line. +.IP +See \fB\-\-login\-options\fR. +.TP +\-f, \-\-issue\-file \fIfile|directory\fP +Display the contents of \fIfile\fP instead of \fI/etc/issue\fP. If the +specified path is a \fIdirectory\fP then displays all files with .issue file +extension in version-sort order from the directory. This allows custom +messages to be displayed on different terminals. The +\-\-noissue option will override this option. +.TP +\-h, \-\-flow\-control +Enable hardware (RTS/CTS) flow control. It is left up to the +application to disable software (XON/XOFF) flow protocol where +appropriate. +.TP +\-H, \-\-host \fIfakehost\fP +Write the specified \fIfakehost\fP into the utmp file. Normally, +no login host is given, since \fBagetty\fP is used for local hardwired +connections and consoles. However, this option can be useful for +identifying terminal concentrators and the like. +.TP +\-i, \-\-noissue +Do not display the contents of \fI/etc/issue\fP (or other) before writing the +login prompt. Terminals or communications hardware may become confused +when receiving lots of text at the wrong baud rate; dial-up scripts +may fail if the login prompt is preceded by too much text. +.TP +\-I, \-\-init\-string \fIinitstring\fP +Set an initial string to be sent to the tty or modem before sending +anything else. This may be used to initialize a modem. Non-printable +characters may be sent by writing their octal code preceded by a +backslash (\\). For example, to send a linefeed character (ASCII 10, +octal 012), write \\012. +.TP +\-J, \-\-noclear +Do not clear the screen before prompting for the login name. +By default the screen is cleared. +.TP +\-l, \-\-login\-program \fIlogin_program\fP +Invoke the specified \fIlogin_program\fP instead of /bin/login. This allows +the use of a non-standard login program. Such a program could, for example, +ask for a dial-up password or use a different password file. See +\fB\-\-login\-options\fP. +.TP +\-L, \-\-local\-line[=\fImode\fP] +Control the CLOCAL line flag. The optional \fImode\fP argument is 'auto', 'always' or 'never'. +If the \fImode\fP argument is omitted, then the default is 'always'. If the +\-\-local\-line option is not given at all, then the default is 'auto'. +.PP +.RS +.PD 1 +.TP +\fIalways\fR +Forces the line to be a local line with no need for carrier detect. This +can be useful when you have a locally attached terminal where the serial +line does not set the carrier-detect signal. +.TP +\fInever\fR +Explicitly clears the CLOCAL flag from the line setting and the +carrier-detect signal is expected on the line. +.TP +\fIauto\fR +The \fBagetty\fR default. Does not modify the CLOCAL setting and follows +the setting enabled by the kernel. +.PD +.RE +.TP +\-m, \-\-extract\-baud +Try to extract the baud rate from the CONNECT status message +produced by Hayes(tm)\-compatible modems. These status +messages are of the form: "<junk><speed><junk>". +\fBagetty\fP assumes that the modem emits its status message at +the same speed as specified with (the first) \fIbaud_rate\fP value +on the command line. +.sp +Since the \fB\-\-extract\-baud\fP feature may fail on heavily-loaded +systems, you still should enable BREAK processing by enumerating all +expected baud rates on the command line. +.TP +\-\-list\-speeds +Display supported baud rates. These are determined at compilation time. +.TP +\-n, \-\-skip\-login +Do not prompt the user for a login name. This can be used in connection +with the \fB\-\-login\-program\fP option to invoke a non-standard login +process such as a BBS system. Note that with the \fB\-\-skip\-login\fR +option, \fBagetty\fR gets no input from the user who logs in and therefore +will not be able to figure out parity, character size, and newline +processing of the connection. It defaults to space parity, 7 bit +characters, and ASCII CR (13) end-of-line character. Beware that the +program that \fBagetty\fR starts (usually /bin/login) is run as root. +.TP +\-N, \-\-nonewline +Do not print a newline before writing out /etc/issue. +.TP +\-o, \-\-login\-options "\fIlogin_options\fP" +Options and arguments that are passed to \fBlogin\fP(1). Where \\u is +replaced by the login name. For example: +.RS +.IP "" 4 +.B "\-\-login\-options '-h darkstar -- \\\u'" +.PP +See \fB\-\-autologin\fR, \fB\-\-login\-program\fR and \fB\-\-remote\fR. +.PP +Please read the SECURITY NOTICE below before using this option. +.RE +.TP +\-p, \-\-login\-pause +Wait for any key before dropping to the login prompt. Can be combined +with \fB\-\-autologin\fP to save memory by lazily spawning shells. +.TP +\-r, \-\-chroot \fIdirectory\fP +Change root to the specified directory. +.TP +\-R, \-\-hangup +Call vhangup() to do a virtual hangup of the specified terminal. +.TP +\-s, \-\-keep\-baud +Try to keep the existing baud rate. The baud rates from +the command line are used when agetty receives a BREAK character. +.TP +\-t, \-\-timeout \fItimeout\fP +Terminate if no user name could be read within \fItimeout\fP seconds. +Use of this option with hardwired terminal lines is not recommended. +.TP +\-U, \-\-detect\-case +Turn on support for detecting an uppercase-only terminal. This setting +will detect a login name containing only capitals as indicating an +uppercase-only terminal and turn on some upper-to-lower case conversions. +Note that this has no support for any Unicode characters. +.TP +\-w, \-\-wait\-cr +Wait for the user or the modem to send a carriage-return or a +linefeed character before sending the \fI/etc/issue\fP file (or others) +and the login prompt. This is useful with the \fB\-\-init\-string\fP +option. +.TP +\-\-nohints +Do not print hints about Num, Caps and Scroll Locks. +.TP +\-\-nohostname +By default the hostname will be printed. With this option enabled, +no hostname at all will be shown. +.TP +\-\-long\-hostname +By default the hostname is only printed until the first dot. With +this option enabled, the fully qualified hostname by \fBgethostname\fR(3P) +or (if not found) by \fBgetaddrinfo\fR(3) is shown. +.TP +\-\-erase\-chars \fIstring\fP +This option specifies additional characters that should be interpreted as a +backspace ("ignore the previous character") when the user types the login name. +The default additional \'erase\' has been \'#\', but since util-linux 2.23 +no additional erase characters are enabled by default. +.TP +\-\-kill\-chars \fIstring\fP +This option specifies additional characters that should be interpreted as a +kill ("ignore all previous characters") when the user types the login name. +The default additional \'kill\' has been \'@\', but since util-linux 2.23 +no additional kill characters are enabled by default. +.TP +\-\-chdir \fIdirectory\fP +Change directory before the login. +.TP +\-\-delay \fInumber\fP +Sleep seconds before open tty. +.TP +\-\-nice \fInumber\fP +Run login with this priority. +.TP +\-\-reload +Ask all running agetty instances to reload and update their displayed prompts, +if the user has not yet commenced logging in. After doing so the command will +exit. This feature might be unsupported on systems without Linux +.BR inotify (7). +.TP +\-\-version +Display version information and exit. +.TP +\-\-help +Display help text and exit. +.PP +.SH EXAMPLES +This section shows examples for the process field of an entry in the +\fI/etc/inittab\fP file. You'll have to prepend appropriate values +for the other fields. See \fIinittab(5)\fP for more details. + +For a hardwired line or a console tty: + +.RS +.B /sbin/agetty\ 9600\ ttyS1 +.RE + +For a directly connected terminal without proper carrier-detect wiring +(try this if your terminal just sleeps instead of giving you a password: +prompt): + +.RS +.B /sbin/agetty\ \-\-local\-line\ 9600\ ttyS1\ vt100 +.RE + +For an old-style dial-in line with a 9600/2400/1200 baud modem: + +.RS +.B /sbin/agetty\ \-\-extract\-baud\ \-\-timeout\ 60\ ttyS1\ 9600,2400,1200 +.RE + +For a Hayes modem with a fixed 115200 bps interface to the machine +(the example init string turns off modem echo and result codes, makes +modem/computer DCD track modem/modem DCD, makes a DTR drop cause a +disconnection, and turns on auto-answer after 1 ring): + +.ie n .RS 0 +.el .RS +.B /sbin/agetty\ \-\-wait\-cr\ \-\-init\-string\ 'ATE0Q1&D2&C1S0=1\\015'\ 115200\ ttyS1 +.RE + +.SH SECURITY NOTICE +If you use the \fB\-\-login\-program\fP and \fB\-\-login\-options\fP options, +be aware that a malicious user may try to enter lognames with embedded options, +which then get passed to the used login program. Agetty does check +for a leading "\-" and makes sure the logname gets passed as one parameter +(so embedded spaces will not create yet another parameter), but depending +on how the login binary parses the command line that might not be sufficient. +Check that the used login program cannot be abused this way. +.PP +Some programs use "\-\-" to indicate that the rest of the commandline should +not be interpreted as options. Use this feature if available by passing "\-\-" +before the username gets passed by \\u. + +.SH ISSUE FILES +The default issue file is \fI/etc/issue\fP. If the file exists then agetty also +checks for \fI/etc/issue.d\fP directory. The directory is optional extension to +the default issue file and content of the directory is printed after +\fI/etc/issue\fP content. If the \fI/etc/issue\fP does not exist than the +directory is ignored. All files with .issue extension from the directory are +printed in version-sort order. The directory allow to maintain 3rd-party +messages independently on the primary system \fI/etc/issue\fP file. + +The default path maybe overridden by \fB\-\-issue\-file\fP option. In this case +specified path has to be file or directory and the default \fI/etc/issue\fP as +well as \fI/etc/issue.d\fP are ignored. + +The issue files may contain certain escape codes to display the system name, date, time +etcetera. All escape codes consist of a backslash (\\) immediately +followed by one of the characters listed below. + +.TP +4 or 4{\fIinterface\fR} +Insert the IPv4 address of the specified network interface (for example: \\4{eth0}). +If the \fIinterface\fR argument is not specified, then select the first fully +configured (UP, non-LOCALBACK, RUNNING) interface. If not any configured +interface is found, fall back to the IP address of the machine's hostname. +.TP +6 or 6{\fIinterface\fR} +The same as \\4 but for IPv6. +.TP +b +Insert the baudrate of the current line. +.TP +d +Insert the current date. +.TP +e or e{\fIname\fR} +Translate the human-readable \fIname\fP to an escape sequence and insert it +(for example: \\e{red}Alert text.\\e{reset}). If the \fIname\fR argument is +not specified, then insert \\033. The currently supported names are: black, +blink, blue, bold, brown, cyan, +darkgray, gray, green, halfbright, lightblue, lightcyan, lightgray, lightgreen, +lightmagenta, lightred, magenta, red, reset, reverse, and yellow. All unknown +names are silently ignored. +.TP +s +Insert the system name (the name of the operating system). Same as 'uname \-s'. +See also the \\S escape code. +.TP +S or S{VARIABLE} +Insert the VARIABLE data from \fI/etc/os-release\fP. If this file does not exist +then fall back to \fI/usr/lib/os-release\fP. If the VARIABLE argument is not +specified, then use PRETTY_NAME from the file or the system name (see \\s). +This escape code allows to keep \fI/etc/issue\fP distribution and release +independent. Note that \\S{ANSI_COLOR} is converted to the real terminal +escape sequence. +.TP +l +Insert the name of the current tty line. +.TP +m +Insert the architecture identifier of the machine. Same as 'uname \-m'. +.TP +n +Insert the nodename of the machine, also known as the hostname. Same as 'uname \-n'. +.TP +o +Insert the NIS domainname of the machine. Same as 'hostname \-d'. +.TP +O +Insert the DNS domainname of the machine. +.TP +r +Insert the release number of the OS. Same as 'uname \-r'. +.TP +t +Insert the current time. +.TP +u +Insert the number of current users logged in. +.TP +U +Insert the string "1 user" or "<n> users" where <n> is the number of current +users logged in. +.TP +v +Insert the version of the OS, that is, the build-date and such. +.PP +An example. On my system, the following \fI/etc/issue\fP file: +.sp +.na +.RS +.nf +This is \\n.\\o (\\s \\m \\r) \\t +.fi +.RE +.PP +displays as: +.sp +.RS +.nf +This is thingol.orcan.dk (Linux i386 1.1.9) 18:29:30 +.fi +.RE + +.SH FILES +.na +.TP +.I /var/run/utmp +the system status file. +.TP +.I /etc/issue +printed before the login prompt. +.TP +.I /etc/os-release /usr/lib/os-release +operating system identification data. +.TP +.I /dev/console +problem reports (if syslog(3) is not used). +.TP +.I /etc/inittab +\fIinit\fP(8) configuration file for SysV-style init daemon. +.SH BUGS +.ad +.fi +The baud-rate detection feature (the \fB\-\-extract\-baud\fP option) requires that +\fBagetty\fP be scheduled soon enough after completion of a dial-in +call (within 30 ms with modems that talk at 2400 baud). For robustness, +always use the \fB\-\-extract\-baud\fP option in combination with a multiple baud +rate command-line argument, so that BREAK processing is enabled. + +The text in the \fI/etc/issue\fP file (or other) and the login prompt +are always output with 7-bit characters and space parity. + +The baud-rate detection feature (the \fB\-\-extract\-baud\fP option) requires that +the modem emits its status message \fIafter\fP raising the DCD line. +.SH DIAGNOSTICS +.ad +.fi +Depending on how the program was configured, all diagnostics are +written to the console device or reported via the \fBsyslog\fR(3) facility. +Error messages are produced if the \fIport\fP argument does not +specify a terminal device; if there is no utmp entry for the +current process (System V only); and so on. +.SH AUTHORS +.UR werner@suse.de +Werner Fink +.UE +.br +.UR kzak@redhat.com +Karel Zak +.UE +.sp +The original +.B agetty +for serial terminals was written by W.Z. Venema <wietse@wzv.win.tue.nl> +and ported to Linux by Peter Orbaek <poe@daimi.aau.dk>. + +.SH AVAILABILITY +The agetty command is part of the util-linux package and is available from +https://www.kernel.org/pub/linux/utils/util\-linux/. |