тановки. Та же программа, которая отображает сообщение login
(getty(М)) читает эти значения линии терминала из таблицы, об-
рабатывая каждый параметр установки до успешного завершения и
до того, как пользователь сможет подключиться к системе. Эта
таблица обеспечивает несколько параметров установки, принимае-
мых по умолчанию для различных типов линий терминала.
Getty автоматически выполняется как часть процесса login.
Таблица параметров установки терминала находится в файле, назы-
ваемом /etc/gettydefs. Вы можете редактировать файл gettydefs
для добавления различных наборов характеристик терминалов или
их изменения.
Файл gettydefs
Файл /etc/gettydefs содержит информацию, которую программа
getty использует для задания характеристик линии терминала, та-
ких как скорость передачи данных в бодах. Файл хранится в виде
таблицы. Каждый элемент таблицы разделен на пять полей. Эти по-
ля включают:
label#initial-flags#final-flags#login-prompt#next-label
метка начальные конечные подсказка следующая
флаги флаги login метка
[#login-program]
программа login
Этими полями являются:
label идентифицирует элемент gettydefs для программы
getty. Это может быть число или буква. label
соответствует полю режима линии в /etc/inittab.
Программа init передает режим линии программы
getty, как аргумент.
initial-flags устанавливают характеристики линии терминала,
когда программа getty первоначально устанавли-
вает связь. Программа getty распознает флаги,
- 14-9а -
перечисленные в termio(М) в документе User's
Reference. Часто единственным устанавливаемым
флагом в этом поле является флаг скорости пере-
дачи. Например В300 задает скорость передачи,
равную 300.
- 14-10 -
final-flags устанавливают характеристики линии терминала
(сразу перед тем, как программа getty вы-
полняет процедуру login. Эти флаги опи-
сывают рабочие характеристики для линии. Снова
устанавливается скорость передачи В. Другие
общие флаги включают SANE (составной флаг, ко-
торый устанавливает для ряда характеристик
терминала соответствующие значения, ТАВ3 (рас-
ширяет таблицы пробелами), IXANY (разрешает
любому символу выполнение рестарта выхода) и
HUPCL (перехватывает линию при конечном закры-
тии). Флаги могут вводиться в любом порядке.
login-prompt содержит сообщение LOGIN, выдаваемое пользова-
телю. Это поле печатается точно в том виде, в
каком оно вводится, включая пробелы и символы
табуляции. Символ "@" в поле подсказки login
расширяется в первой строке (или второй стро-
ке, если она имеется) в файле /etc/systemid
(если только символу @ не предшествует знак
'\').
Распознаются несколько последовательностей
символов, включая:
\n перевод строки \t табуляция
\r возврат каретки \f перевод формата
\v вертикальная табуляция \b пробел
\nnn (3 восьмеричных цифры)
заданные символы ASCII
next-label идентифицирует следующую метку в gettydefs для
getty для повторного выполнения, если предыду-
щее заканчивается неудачно. Getty переходит на
следующую метку, если пользователь нажимает
клавишу BREAK при попытке подключения к систе-
ме. Группы элементов, такие как коммутируемые
или TTY линии, должны образовывать закрытый
набор так, что getty переходит обратно к пер-
воначальному входу, если ни один из других
входов не выполняется успешно.
login-program имя программы, которая в действительности
подключает пользователей к системе. По умолча-
- 14-10а -
нию это программа /etc/login. Это поле являет-
ся выборочным.
Если присутствует ключевое слово AUTO, то
getty не выдает подсказку для имени пользова-
теля, но вместо этого использует имя устройс-
тва (то есть tty03) как имя пользователя и не-
медленно выполняет программу login.
- 14-11 -
Каждое поле разделяется знаком решетки (#) и каждый эле-
мент в gettydefs разделяется пустой строкой.
Элемент в gettydefs может выглядеть следующим образом:
4#B1200 SANE TAB3 HUPCL #login: #2#AUTO /etc/login new
Далее следует описание каждой части этой строки:
* число 4 идентифицирует этот элемент getty;
* следующее поле задает скорость передачи 1200;
* третье поле указывает скорость передачи (В1200), SANE
(составной флаг для ряда характеристик) и HUPCL (перех-
ват строки при конечном закрытии);
* login : появляется как подсказка login. Если это задание
не успешно, getty переходит к метке 2 в gettydefs;
* AUTO пытается подключить пользователя выполнением
/etc/login new.
Если последний элемент также содержит filename, то выпол-
няется программа login. (Заметим, что filename и соответствую-
щая программа login создаются пользователем). Например может
использоваться включение файла, такого как /etc/diаl_login для
линии, присоединенной к модему. Следует задать идентификатор
пользователя, назначить пароль, проверить пользователя и далее
назначить пользователя. При этом возможно потребуется пароль
для системы в добавление к учетному паролю, а также задание
специального набора переменных среды подключения, включенных в
/etc/default/dial_login.
Изменение файла gettydefs
Файл /etc/gettydefs задает наборы элементов для коммутиру-
емых линий и линий терминалов. Эти наборы элементов соответс-
твуют заданиям режимов линий в /etc/inittab. Программа init пе-
редает режим линии как аргумент для getty.
- 14-12 -
Можно редактировать gettydefs для добавления новых устано-
вок для терминала или изменения существующих. Например задание
установок для терминала может выглядеть следующим образом:
4 # B2400 HUPCL # B2400 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Для изменения файла-образца gettydefs таким образом, чтобы
getty пыталась использовать скорость передачи 1200 выполните
следующие действия:
1. Вызовите текcтовый редактор для редактирования первой
строки файла gettydefs.
2. Измените первое и третье поля с В2400 на В1200.
3. Сохраните gettydefs и выйдите из редактора.
Файл-образец будет выглядеть как в следующем примере:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Вы можете также добавить дополнительные задания для линии
терминала в gettydefs. Флаги и допустимые значения для заданий
для терминала перечислены в stty(C) документа User's Reference.
Когда вы добавляете новый элемент, убедитесь, что группы
элементов в gettydefs образуют закрытый набор, так что поле
next-label последнего элемента направляет getty обратно к пер-
вому элементу группы.
Для добавления элемента, задающего скорость передачи 300 в
предшествующем файле образце gettydefs выполните следующие ша-
ги:
1. Вызовите текстовый редактор для редактирования файла /etc/
gettydefs.
- 14-13 -
2. Найдите точку, где вы хотите поместить новые определения
установки для gettydefs. Порядок элементов не существенен;
getty только просматривает метку. В данном примере новый
элемент является последним элементом файла.
3. Поместите символ возврата каретки после последней строки в
файл и введите следующую новую строку
# B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
4. Для помещения метки 7 в набор меток измените поле
next_label для элемента с 6 на 7:
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7
Getty теперь направляется с метки 6 на метку 7 и далее об-
ратно на метку 4.
5. Завершите работу текстового редактора с сохранением изме-
ненного файла gettydefs.
Новый файл gettydefs выглядит следующим образом:
4 # B1200 HUPCL # B1200 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 5
5 # B4800 HUPCL # B4800 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 6
6 # B6900 HUPCL # B6900 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 7
7 # B300 HUPCL # B300 CS8 SANE HUPCL TAB3 ECHOE IXANY
#\r\n@!login: # 4
Проверка параметров установки терминала
Каждый раз, когда вы изменяете параметры установки линии
терминала или добавляете новые элементы в файл gettydefs следу-
ет проверить, что новые значения удовлетворяют getty Чтобы сде-
лать это, используйте команду getty с возможностью проверки -с
и именем файла.
Например для проверки gettydefs введите:
getty -c /etc/gettydefs
- 14-14 -
Если любые из значений и параметров установки в файле
gettydefs не разрешены, getty -с отображает их на экране терми-
нала.
Дополнительная информация о getty и gettydefs содержится в
разделах getty(M) и gettydefs(F) документа User's Reference.
- 14-15 -
ИЗМЕНЕНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОЙ ЛИНИИ
Когда вы "открываете" терминал командой enable, система
автоматически устанавливает рабочие характеристики последова-
тельной линии по умолчанию. Иногда эти значения не соответству-
ют величинам, используемым терминалом и поэтому должны менять-
ся, чтобы обеспечить связь между системой и терминалом. Можно
отобразить рабочие характеристики последовательной линии коман-
дой stty (set tty). Если нужно изменить характеристики "откры-
того" порта, следует использовать элементы в файле gettydefs, а
не команды stty, приведенные ниже.
Примечание
Любые параметры установки для порта, задаваемые командой
stty, действуют только до тех пор, пока рассматриваемый порт
открыт. Например, если вы хотите изменить скорость передачи
tty2a, а tty2a не "открыт", то сначала команда stty открывает
порт, далее изменяет параметры установки порта и окончательно
закрывает порт. Когда она закрывает порт последний раз, зна-
чения параметров установки восстанавливаются к своим первона-
чальным значениям. В командах stty позднее в данном разделе
используется цикл while для устранения такого поведения ко-
манды stty. Если вы выполняете stty перенаправляя вход с