Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Администрирование ОС Unix. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Запрос на соединение бывает успешным, когда по крайней мере один символ, отличный от break-символа, за которым следует символ новой строки будет получен из порта. Если сервис, который должен быть вызван, это сервис login, то символу новой строки будет предшествовать имя регистрации пользователя. Символ новой строки не будет распознан, если скорость линии порта и устройства, подсоединенного к порту, будут совпадать.
Если на терминале будет распечатана несчитываемая подсказка, пользователь посылает BREAK, чтобы указать, что скорости линий порта и устройства не совместимы. Каждое появление разъединения (break) приводит к тому, что ttymon перейдет к следующему
ttylabel в /etc/ttydefs, поднастраивая свои значения termio(7) и выдавая подсказку.
При успешном завершении выполнения запроса на соединение,
ttymon интерпретирует командный файл конфигурации сервиса, если
таковой существует. Затем он вызывает сервис, относящийся к порту. Этот сервис может быть любым сервисом, конфигурацию которого вы создаете. Типичным примером служит login.
Монитор ttymon не имеет взаимосвязи с портами TTY, когда они подсоединяются к сервису. После завершения выполнения сервиса в порте, ttymon возвращает порт в его исходное состояние.
4.3.2.2. Опция автонастройки скорости
Автонастройка скорости позволяет системе утанавливать скорость линии заданного порта TTY в соответствии со скоростью линии того средства, которое подсоединено к этому порту, без вмешательства пользователя. Каждый раз, когда добавляется сервис, управление которого осуществляется с помощью монитора ttymon, должно быть обеспечено ttylabel (см. "Добавление сервиса").
Если это ttylabel указывает на элемент в файле /etc/ttydefs, который имеет A в поле автонастройки скорости, то ttymon попытается определить требуемую скорость линии прежде чем распечатать подсказку.
Администрирование ОС UnixUnknown
41
После получения обнаружения несущей в один из портов TTY, но до начала распечатки подсказки, ttymon выполняет следующее:
1. ttymon считывает следующий символ, полученный из порта. Узнав, что считанный символ является символом новой строки и что он передан со скоростью линии, которую может поддержать автонастройка скорости, ttymon точно определит эту скорость линии и изменит скорость линии порта на эту скорость;
2. если скорость передачи невозможно определить по символу, который считан (если пользователь, например, ввел символ, отличный от символа новой строки), или если вместо символа получено разъединение, то ttymon считает, что произошел сбой автонастройки и символ отбрасывается. Если после пяти попыток, символ новой строки не распознан, поиск переходит к следующему элементу ttydefs в последовательности поиска. Если вновь возникает флаг автонастройки скорости, подсказка не будет записана, и описанная процедура просто повторяется. Если флаг автонастройки скорости не установлен, поиск вновь переходит к следующему элементу ttydefs в последовательности поиска (hunt).
4.3.2.3. ttymon и средство доступа к сервису
Средство доступа к сервису (SAF) обеспечивает общий интерфейс, которому должны подчиняться все мониторы портов. ttymon - это монитор порта под управлением контроллера SAF - контроллера доступа к сервису. (Смотрите "Обзор средства доступа к сервису, "Управление мониторами порта" и "Управление сервисом", где описываются средство доступа к сервису, управляющие файлы, которые он поддерживает, а также команды, используемые для управления мониторами портов и сервисом.)
В листинге 4.3 показано как вызывается сервис, который может быть и сервисом login, с помощью ttymon.
Вызов сервиса TTY
init
Администрирование ОС UnixUnknown
42
| | sac | | ttymon |
---------------------­ | | | service service service
-------- forked & exec'ed
Листинг 4.3.
Вызовы мониторов портов ttymon могут быть многочисленными, каждый из которых идентифицируется с помощью уникального pmtag. Каждый из этих мониторов портов могут управлять несколькими портами, получающих запросы на соединение.
Любой порт имеет один и только один сервис, связанный с ним. Каждый порт и связанный с ним сервис, идентифицируется тегом сервиса - svctag. Теги сервиса для каждого данного монитора порта ­уникальны. Когда контроллер доступа к сервису запускает монитор порта, монитор порта считывает свой управляющий файл, который содержит информацию о том какими портами управлять и какой сервис (то есть процесс) связан с каждым портом.
4.3.2.4. Конфигурация ttymon по умолчанию
Некоторые мониторы портов ttymon могут устанавливаться автоматически, когда система переходит на многопользовательский уровень. Чтобы выяснить, была ли конфигурация системы создана автоматически, введите команду
sacadm -l
после того как система будет в многопользовательском режиме. Чтобы просмотреть список всего сервиса, доступного под управлением
Администрирование ОС UnixUnknown
43
мониторов портов ttymon, введите команду
pmadm -l -t ttymon
Модуль линейной дисциплины - ldterm - может быть и не указан в сервисе с автоматически связанной конфигурацией. Вместо этого он может быть определен в управляющем файле autopush ("автоматического проталкивания") и "проталкиваться" при помощи средства "автопроталкивания" (см. autopush (1М) ). Autopush "проталкивает" ранее указанные модули в требуемый STREAM каждый раз, когда устройство открыто.
Сервис не определяется для консоли и портов contty под управлением любого из мониторов ttymon. Вместо этого в файле
/sbin/inittab есть строка для каждого сервиса. Эти строки
содержат обращения к ttymon в режиме "express". (См. "f3ttymon Express").
4.3.2.5. Команда ttyadm
Средство доступа к сервису требует, чтобы каждый тип монитора порта обеспечивал какую-то команду администратора. Эта команда должна форматировать информацию, получаемую из параметров командной строки, в таком виде, чтобы ее можно было включать в управляющие файлы для этого типа монитора порта.
ttyadm является командой администратора монитора ttymon. Команда
ttyadm форматирует информацию на основе параметров, по которым
она вызывается, и записывает эту информацию в стандартный вывод.
Примечание. Управляющий файл монитора порта обновляется с помощью команд администратора контроллера доступа к сервису
sacadm и pmadm. ttyadm обеспечивает средство представления
данных конкретного монитора порта (то есть ttymon - specific ) этим командам. Командная строка sacadm использует ttyadm только с параметром -V. ttyadm -V сообщает SAC номер версии используемой команды ttymon.
Администрирование ОС UnixUnknown
44
ttyadm - это один из аргументов, которые pmadm использует с параметром -a, чтобы сформатировать информацию для включения в управляющий файл ttymon. ttyadm представляет эту информацию (в виде стандартного вывода) pmadm, который помещает ее в файл. Использование ttyadm описывается ниже под заголовком "Добавление Монитора порта ttymon". Информация pmspecific в управляющем файле монитора порта будет различной для различных типов мониторов.
ttyadm также включается в командную строку sacadm, когда монитор порта добавляется к системе. Она используется, чтобы обеспечить номер версии ttymon для включения его в управляющий файл монитора порта.
4.3.2.6. Просмотр информации с помощью команд
Команда sacadm имеет следующий формат:
sacadm -l [-p pmtag | -t type]
Команда sacadm только с параметром -l просматривает все мониторы портов, определенные для системы в текущий момент, без заголовков. Далее приводится пример ее вывода: swt 2>
Пример.
starlan:listen:dx:5:NOTRUNNING:/usr/lib/saf/listen
-m slan# starlan ttymon1:ttymon: :0:ENABLED :/usr/lib/saf/ttymon # ttymon2:ttymon: :0:ENABLED :/usr/lib/saf/ttymon #
sacadm можно также использовать для просмотра одного монитора
порта ( -p ) или только мониторов портов одного из типов ( -t ).
4.3.2.7. Доступ к портам TTY
Чтобы выяснить, к каким портам имеют доступ пользователи, сначала идентифицируйте все разрешенные мониторы портов ttymon,
Администрирование ОС UnixUnknown
45
используя команду:
sacadm -l -t ttymon
#sacadm -1 -t ttymon PMTAG PMTYPE FLGS RCNT STATUS COMAND # ttymon1 ttymon - 0 ENABLED /usr/lib/saf/ttymon # ttymon3 ttymon d 0 DISABLED /usr/lib/saf/ttymon #
В данном списке монитор порта ttymon1 - разрешен. Это значит, что он принимает сервисные запросы для всего своего сервиса, который разрешен.
Чтобы определить какие сервисные программы разрешены, используйте
pmadm -l -p ttymon1
Она просматривает все сервисы TTY с созданной конфигурацией для монитора порта ttymon1.
#pmadm -l -p ttymon1 PMTAG PMTYPE SVCTAG FLGS ID <PMSPECIFIC> ttymon1 ttymon 11 u root /dev/term/11 - ­ /usr/bin/login - 9600 - login: - #
ttymon1 ttymon 12 ux root /dev/term/12 - ­ /usr/bin/login - 9600 - login: - #
ttymon1 ttymon 13 u root /dev/term/13 - ­ /usr/bin/login - 9600 - login: - #
ttymon1 ttymon 14 ux root /dev/term/14 - ­ /usr/bin/login - 9600 - login: - #
Разрешенный сервис - тот, который не имеет X в колонке FLGS. Порты, соответствующие этому сервису ( /dev/term/11 и /dev/term/13 ), являются доступными для пользователя.
Примечание. В версии 4.0 UNIX System V команда who -l просматривает все функционирующие мониторы портов, а не порты TTY с доступом.
Администрирование ОС UnixUnknown
46
Выполняйте процедуру, описанную выше, чтобы обнаружить порты TTY, к которым есть доступ.
4.3.2.8. Добавление монитора порта ttymon с помощью команд
Формат команды, которая добавляет монитор порта ttymon следующий:
sacadm -a -p pmtag -t type -c cmd -v version
-n [ -f dx ] [-n count] [-y comment] [ -z script ]
Эта команда добавляет строку в управляющий файл SAC.
Командный файл конфигурации мониторов портов можно определить, используя команду с параметрами -g и -z.
Командные файлы конфигурации обычно для базовых операций не требуются.
4.3.2.9. Удаление монитора порта ttymon c помощью команд
Формат команды, удаляющей монитор порта следующий:
sacadm -r -p pmtag
Чтобы внести изменения в элемент монитора порта, всегда удаляйте элемент, а затем добавляйте новый, используя команду sacadm. Не редактируйте управляющий файл SAC.
4.3.3. Распечатка, инсталяция и замена командных файлов конфигурации
Командные файлы конфигурации системы и мониторов портов управляются с помощью sacadm ; командные файлы конфигурации сервиса управляются с помощью pmadm и описаны под заголовком "Управление сервисом". Файлы конфигураций системы и мониторов
Администрирование ОС UnixUnknown
47
портов позволяют модифицировать среду системы и среду мониторов. Они написаны на интерпретируемом языке, описанном на странице руководства doconfig (3N) и в "Руководстве программиста: сетевые интерфейсы". Примеры командных файлов приводятся ниже.
Командный файл конфигурации системы _sysconfig интерпретируется после запуска SAC. Командный файл конфигурации монитора порта интерпретируется SAC непосредственно перед тем, как SAC запускает этот монитор порта.
Файлы конфигураций системы и мониторов портов может распечатать любой пользователь системы. Но только администратор системы выполнить их инсталяцию или удаление.
4.3.3.1. Командные файлы конфигурации системы
sacadm -G[ -z script]
Командный файл конфигурации системы /etc/saf/_sysconfig настраивает среду для всего сервиса системы. Когда он запускается, контроллер доступа к сервису интерпретирует файл конфигурации системы, используя библиотечную функцию doconfig. Файл _sysconfig по умолчанию, содержащий только строку комментария, является частью поставляемой системы.
Параметр -G используется для распечатки или замены командного файла конфигурации системы. Сам параметр -G распечатывает файл конфигурации системы. В сочетании с -z параметр -G заменяет
/etc/saf/_sysconfig на содержимое файла script. Другие
сочетания параметров с -G являются не действительными.
В листинге 4.4 файл _sysconfig устанавливает переменную зоны времени -TZ.
Пример файла конфигурации системы
assign TZ-EST5EDT # set TZ runwait echo SAC is starting > /dev/console
Администрирование ОС UnixUnknown
48
Листинг 4.4.
Примечание. Параметр -z также используется с параметром -a для указания содержимого файла конфигурации мониторов портов при создании монитора порта.
4.3.3.2. Командные файлы конфигурации мониторов портов
sacadm -g -p pmtag [-z script]
Командный файл конфигурации мониторов портов
/etc/saf/pmtag/_config настраивает среду для сервиса,
имеющегося в наличии, с помощью специальной совокупности точек доступа, за которую отвечает монитор порта pmtag. Когда SAC запустит монитор порта, при существовании командного файла конфигурации мониторов портов он интерпретируется с помощью библиотечной функции doconfig (3N).
Параметр -g используется для распечатки, инсталяции или замены командного файла конфигурации мониторов портов. Параметр -g требует наличия параметра -p. Только с параметром -p параметр -g распечатывает командный файл конфигурации мониторов портов pmtag. Параметр -g с параметрами -p и -z осуществляют инсталяцию файла script, также как файл конфигурации мониторов портов для монитора порта pmtag, или, если существует /etc/saf/pmtag/_config, он заменяет _config на содержимое script. Другие сочетания параметров с -
g - недействительны.
В листинге 4.5 в гипотетическом файле _config команда
/usr/bin/daemon предположительно запускает процесс daemon,
который создает и сохраняет мультиплексор STREAMS. После инсталяции этого командного файла конфигурации команда может выполняться как раз перед запуском монитора порта, которому она требуется.
Пример файла конфигурации монитора порта
run /usr/bin/daemon
Администрирование ОС UnixUnknown
49
# build a STREAMS multiplexor. runwait echo SPMTAG is starting > /dev/console
Листинг 4.5.
4.3.4. Считывание управляющих файлов
sacadm -x[-p pmtag]
Когда изменения внесены в управляющий файл SAC, SAC необходимо уведомить об изменении. Когда изменения внесены в управляющие файлы монитора порта, этот порт монитора необходимо об этом уведомить. Когда для внесения изменений используется sacadm и
pmadm, уведомление происходит автоматически. Если вы редактируете
файлы прямо, SAC и мониторы портов не уведомляются. sacadm следует вызывать с параметром -x, чтобы уведомить SAC или мониторы портов об изменениях.
sacadm с параметром -x просит SAC обновить свою внутреннюю
копию информации в управляющем файле SAC. sacadm с параметрами -x и -p заставляет SAC послать сообщение в указанный монитор порта.
Администраторам системы рекомендуется не редактировать эти файлы прямо.
4.3.4.1. Справочник по управлению мониторами портов
Синтаксис команд Описание
sacadm -a -p pmtag -t type
-c"cmd" -v ver[-f dx][-n count]\ [-y"comment"][-z script]
Добавляет элемент монитора порта в управляющий файл
sacadm -l[-p pmtag|-t type]
Распечатывает информацию о состоянии монитора порта
Распечатывает информацию о
Администрирование ОС UnixUnknown
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]