TTYS(5)

NAME
ttys - terminal initialization information

DESCRIPTION
The file ttys contains information that is used by various routines to initialize and control the use of terminal special files. This information is read with the getttyent(3) library routines. There is one line in the ttys file per special device file. Fields are separated by tabs and/or spaces. Fields comprised of more than one word should be enclosed in double quotes ("). Blank lines and comments may appear anywhere in the file; comments are delimited by hash marks (#) and new lines. Any unspecified fields will default to null.

The first field is normally the name of the terminal special file as it is found in /dev. However, it can be any arbitrary string when the associated command is not related to a tty.

The second field of the file is the command to execute for the line, usually getty(8), which initializes and opens the line, setting the speed, waiting for a user name and executing the login(1) program. It can be, however, any desired command, for example the start up for a window system terminal emulator or some other daemon process, and can contain multiple words if quoted.

The third field is the type of terminal usually connected to that tty line, normally the one found in the termcap(5) data base file. The environment variable TERM is initialized with the value by either getty(8) or login(1).

The remaining fields set flags in the ty_status entry (see getttyent(3)), specify a window system process that init(8) will maintain for the terminal line, optionally determine the type of tty (whether dialup, network or otherwise), or specify a tty group name that allows the login class database (see login.conf(5)) to refer to many ttys as a group, to selectively allow or deny access or enable or disable accounting facilities for ttys as a group.

The following flag values are supported:

on  Enable the tty entry so that init(8) should execute the command given in the second field.

off Disable the tty entry.

ifconsole
    Disable the tty entry if it is not the console. That is, you can construct a tty entry with both this flag and the “on” flag to make it only active if that tty is the console.

ifexists
    Disable the tty entry if it doesn't exist.

secure
    If the “on” flag is specified, this flag allows users with a uid of 0 to login on this line.

dialup
    Indicate that the tty entry describes a dialup line.

network
    Indicate that the tty entry provides a network connection.

Either of these flag values may also be specified in the terminal type field.

The string “window=” may be followed by a quoted command string which init(8) will execute before starting the command specified by the second field.

The string “group=” may be followed by a group name comprised of alphanumeric characters that can be used by login.conf(5) to refer to many tty lines as a group to enable or disable access and accounting facilities. If no group is specified, then the tty becomes a member of the group “none”. For backwards compatibility, the “group=” should appear last on the line, immediately before the optional comment.

Both the second field and any command specified with “window=” will be split into words and executed using execve(2). Words are separated by any combinations of tabs and spaces. Arguments containing whitespace should be enclosed in single quotes ('). Note that no shell-style globbing or other variable substitution occurs.

FILES
/etc/ttys

EXAMPLES

    # root login on console at 1200 baud
    console	"/usr/libexec/getty std.1200"	vt100	on secure
    # dialup at 1200 baud, no root logins
    ttyd0	"/usr/libexec/getty d1200"	dialup	on group=dialup	# 555-1234
    # dialup at 115200 baud, enable only if it's the console
    ttyd1	"/usr/libexec/getty std.115200"	dialup	on secure ifconsole
    # Mike's terminal: hp2621
    ttyh0	"/usr/libexec/getty std.115200"	hp2621-nl	on group=dialup	# 457 Evans
    # John's terminal: vt100
    ttyh1	"/usr/libexec/getty std.115200"	vt100	on group=dialup		# 459 Evans
    # terminal emulate/window system
    ttyv0	"/usr/local/bin/xterm -display :0"	xterm	on window="/usr/local/bin/X :0"
    # enable the video tty only if it exists
    ttyv1	"/usr/libexec/getty Pc"		cons25	on secure ifexists

SEE ALSO
login(1), getttyent(3), gettytab(5), login.conf(5), termcap(5), getty(8), init(8), pstat(8)

HISTORY
A ttys file appeared in AT&T UNIX.