В приведенных строках respawn означает запуск процесса getty в фоновом режиме, а когда процесс завершится (например, с ошибкой), его повторный запуск. Число 38400 (бит/сек) обозначает скорость передачи информации по псевдотерминальной линии. Число 63 – это максимально возможное количество виртуальных консолей. Обусловлено оно тем, что именно столько младших номеров резервировалось за устройствами этого класса. Переключение между консолями с такими номерами с помощью функциональных клавиш уже невозможно. К счастью, на такой чрезвычайный случай есть специальная, и очень простая, команда, не зависящая от количества функциональных клавиш:
chvt N,
которая мгновенно перенесет нас в ту консоль, номер которой указан в качестве ее аргумента.
Не из всех виртуальных терминалов можно регистрироваться и, тем более, входить в систему с правами суперпользователя. В конфигурационном файле /etc/securetty определяются консоли, из которых разрешается аутентификация всех пользователей либо только администратора.
Управлять драйвером терминала можно с помощью особых комбинаций двух клавиш, первой из которых является <Ctrl>. Вот некоторые из этих комбинаций:
<Ctrl>+<C> – посылает сигнал завершения выполняющегося процесса, ассоциированного с текущим терминалом;
<Ctrl>+<D> – посылает признак конца файла (например, если файл создается из консоли с помощью команды cat) либо завершает сеанс;
<Ctrl>+<S> – останавливает вывод информации на экран;
<Ctrl>+<Q> –возобновляет вывод информации на экран.
Давайте посмотрим, что произойдет в случае чтения бинарного файла с помощью утилиты cat или more. Содержимое читаемого файла утилита выводит на терминал, а он ориентирован на вывод алфавитно-цифровой информации и символов псевдографики. Бинарный файл может содержать любые кодовые значения, и не все они соответствуют отображаемым символам. Терминальный драйвер, выводя содержимое бинарного файла на экран, «считает» его текстовым и соответствующим образом интерпретирует каждый байт. Поэтому возникнет ситуация, когда одни байты будут соответствовать отображаемым символам, другие — управляющим, третьи — вообще могут ничему не соответствовать.
В случае соответствия байтов двоичного файла отображаемым символам на экране монитора будет смесь из разных символов. Неотображаемые символы либо вообще не выводятся на экран, либо отображаются точками. Второй случай будет самым «неприятным» для драйвера терминала, и в большинстве случаев мы получим частично или полностью неработоспособную систему драйвер-видеоадаптер-монитор.
Для восстановления работы терминала рекомендуется «вслепую» набрать команду reset и завершить ее нажатием <Enter>, после чего необходимо выполнить сценарий /etc/rc.d/rc.font, чтобы восстановить настройки кодировки терминала. Если это не помогает, нужно комбинацией клавиш <Ctrl>-<D> завершить пользовательский сеанс и вновь зарегистрироваться либо открыть другую виртуальную консоль и повторить регистрацию в ней.
Один пользователь может поочередно работать из нескольких физических или виртуальных консолей. Но из одной консоли должен работать только один пользователь. Физических консолей с выполненным входом в систему и без пользователя существовать не должно. В ОС Linux пока не предусмотрено подтверждение полномочий пользователя в ходе сеанса (за исключением приложений, с которыми работает пользователь), поэтому нарушитель, занявший консоль вместо отсутствующего пользователя, воспринимается системой как ее законный обладатель. Покидая на время свое рабочее место, пользователь должен заблокировать консоль, чтобы нежданному гостю пришлось столкнуться с процедурой аутентификации. Особенно опасно оставлять консоль, в которой зарегистрировался администратор. Завершить сеанс в виртуальной консоли можно тремя способами: комбинацией клавиш <Ctrl>-<D>, командами exit и logout.
К сожалению, пользователи грешат тем, что, локально зарегистрировавшись в системе, они затем надолго оставляют без присмотра свой терминал, способствуя тем самым консольным атакам со стороны случайных посетителей. Либо, удаленно зарегистрировавшись в сети (проводной или беспроводной), они без завершения сеанса отключают свой ноутбук и уходят. Команды w и who (см. ниже) в таком случае могут показать наличие в системе «трудовых энтузиастов», которые работают уже много суток подряд.
Администратор вправе прекратить подобные безобразия, устанавливая переменную окружения оболочки ее внутренней командой
export TMOUT=600
В переменной задается число секунд, по истечении которых с момента последнего нажатия клавиши оболочка автоматически завершит пользовательский сеанс. Но данная команда будет действовать только в той консоли, из которой она была введена, и только на один сеанс. Пользователь, чей сеанс был принудительно завершен, после повторной регистрации вновь может оставлять свою консоль на неограниченный срок. На остальных пользователей эта команда совершенно не влияет. Вероятно, это не совсем то, что хотел бы добиться администратор.
Тайм-аут можно установить надолго, если записать эту команду отдельной строкой в файл /etc/profile. Установка тайм-аута на консольное бездействие будет действовать на всех пользователей, которые зарегистрировались позже. После перезапуска системы переменная окружения будет действовать на всех, включая администратора. Чтобы настройка во всех сеансах действовала только на выбранных пользователей, вышеуказанную строку следует записать в файлы .bashrc в их домашних каталогах. К сожалению, никто не мешает опытному и пренебрегающему безопасностью пользователю отредактировать свой файл .bashrc так, как он посчитает нужным.
В случае опасной пользовательской активности администратор может «заморозить» пользовательский ввод и вывод информации на произвольном локальном или сетевом терминале командой
skill –STOP <tty>,
где вместо <tty> указывается имя и номер терминала, например tty2 или pts/2. Эта мера более эффективна, чем обычное принудительное завершение пользовательского сеанса, поскольку пользователь, «выброшенный» из системы, может повторно зарегистрироваться. Находясь перед заблокированным терминалом (если только это действительно терминал, а не самостоятельный компьютер), он ничего подобного сделать не сможет. Администратор же имеет право посылать сообщения на заблокированный терминал, и они будут исправно отображаться. Снять «блокаду» с терминала можно командой
skill –CONT <tty>
Чтение данных, введенных с клавиатуры другим пользователем, представляет собой угрозу конфиденциальности, а несанкционированный вывод данных на чужой экран является нарушением функциональности и может вызвать угрозы целостности или блокирования данных. Права доступа к консоли по умолчанию установливаются равными 620 = rw--w----. Владельцем консоли является пользователь, который зарегистрировался с нее. Он имеет право читать информацию с экрана и вводить ее с клавиатуры. Члены терминальной группы пользователя (в файле /etc/groupона поименована как tty) имеют право только вводить информацию. По умолчанию в эту группу включены все пользователи. Имя группы и права доступа к виртуальной консоли содержатся в конфигурационном файле /etc/login.defs.
Каждый пользователь имеет право запретить членам терминальной группы запись сообщений в свою консоль. Выполняется это намерение с помощью команды
mesg n,
что равносильно установлению прав доступа к консоли с помощью другой команды