Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1666 / 116 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 16:

Поддержка удаленных клиентов

Программа uugetty

Формат командной строки для запуска программы uugetty следующий:

uugetty [-d defaults_file] [-a] [-h] [-r delay]
   [-t timeout] [-w waitfor] line [speed [type [lined]]]

В табл. 16.1 приведены параметры, которые можно задавать при запуске uugetty. Все эти параметры действительны, если программа uugetty описана в файле /etc/inittab, как это показано в листинге 16.1.

Таблица 16.1. Параметры uugetty
Параметры Описание
-d defaults Определяет местоположение файла по умолчанию
-h При запуске не вешать трубку
-r delay Ждать появления одного символа, после чего делать задержку, равную delay секунд
-t timeout Принудительное завершение работы uugetty через timeout секунд, если не введено имя пользователя при регистрации в системе
-w waitfor Принудительное ожидание программой uugetty определенной строки символов
line Определяет /dev/line для мониторинга
speed Определяет скорость для /etc/gettydefs
type Определяет описание терминала в файле termcap
lined Определяет режим использования линии

Достаточным для работы uugetty является параметр line, указывающий программе устройство, которое необходимо отслеживать. Так, например, в листинге 16.1 программа uugetty отслеживает устройство /dev/ttyS0 или последовательный порт СОМ1 на ПК. Причем скорость обмена данными с модемом на этом порту равна 38400 бит/с, и соединение с удаленной рабочей станцией будет осуществляться с эмуляцией терминала VT100. Протокол эмуляции терминала необходим в том случае, если программа uugetty настроена для очистки экрана терминала или для посылки пользователю приглашения системы (более подробно об этом читайте далее).

В каждой строке файла конфигурации определяется одна переменная, которая выражает какое-либо действие программы uugetty. Формат стандартной строки следующий:

NAME=value

Здесь NAME — переменная, выражающая действие, а value — значение переменной. В табл. 16.2 представлены все действия, которые могут быть описаны в конфигурационном файле.

Таблица 16.2. Переменные в файле конфигурации uugetty
Переменные Описание
SYSTEM=name Определяет имя системы для подстановки @S
VERSION=string Определяет номер версии для подстановки @V
LOGIN=name Задает программу, которая будет использоваться для регистрации клиента в системе
INIT=string Задает строку инициализации, посылаемую на модем
ISSUE=string Определяет приглашение системы, которое выдается на удаленный терминал
CLEAR=value При значении value=YES очищает экран удаленного терминала
HANGUP=value При value=NO те же действия, что и в случае параметра -h
WAITCHAR=string При value=YES перед началом работы ожидать появления символа
DELAY=seconds Добавляет задержку после принятия символа WAITCHAR
TIMEOUT=number То же, что и параметр -t
CONNECT=string Определяет последовательность символов, принимаемую от модема при установлении соединения
ALTLOCK=line Задает альтернативную линию для проверки и блокировки
ALTLINE=line Задает альтернативную линию для инициализации
RINGBACK=value При value=YES разрешает обратный вызов абонента
SCHED=range1 range2 ... Задает интервал времени, когда регистрация в системе через данную линию разрешена
OFF=string Определяет строку, посылаемую для выключения модема

Создавая файлы конфигурации для каждой модемной линии, можно управлять поведением программы uugetty. Причем работа программы будет зависеть от типа модема или соединения с удаленным клиентом, которое организуется с помощью определенного устройства. Пример файла конфигурации приведен в листинге 16.2.

1 CLEAR = YES
2 HANGUP=YES
3 INIT="" ATS0=1\r OK
4 ALTLOCK=modem
5 ALTLINE=modem
6 TIMEOUT=60
Листинг 16.2. Пример файла конфигурации /etc/conf.uugetty

В строке 1 листинга 16.2 указано, что при установлении соединения программа uugetty попытается очистить экран удаленного терминала. В строке 2 показано, что при запуске uugetty предпримет попытку повесить трубку (т.е. сбросить телефонную линию, так как в предыдущем сеансе линия принудительно не сбрасывалась). Строка 3 представляет собой обычную строку инициализации модема. В данном случае модем переводится в режим ответа на первый поступивший звонок ( ATS0=1 ), и от него ожидается отклик в виде слова " ОК ". В строках 4 и 5 определяется альтернативное устройство, которое будет использоваться в сеансе. В большинстве версий ОС Linux используется символическая связь /dev/modem, которая указывает на реальное устройство tty. Однако такие обозначения могут ввести вас в заблуждение, если одни из программ перехватывают управление каналами tty, а другие используют символическую связь /dev/modem. С помощью этих строк в листинге программа uugetty будет проверять и каналы, и символические связи. В последней строке указывается, что программа uugetty после ответа на входящий звонок будет ожидать 60 секунд пока пользователь будет выполнять процедуру входа в систему. По истечении этого времени программа завершается.

Вероятно, вы обратили внимание на специальные коды в листинге 16.2 и в табл. 16.2. Эти коды используются программой uugetty в файлах конфигурации. Их также можно задавать и в командной строке для определения действий или переменных. Все возможные коды представлены в табл. 16.3.

Таблица 16.3. Специальные коды, используемые с uugetty
Код Описание
\\ Символ обратный слеш
\b Забой
\c Не начинать с новой строки
\f Пропустить пустую строку
\n Новая строка
\r Возврат каретки
\s Пробел
\t Табуляция
\nnn ASCII-символ с шестнадцатиричным значением nnn
@B Скорость передачи
@D Текущая дата
@L Линия
@S Системное имя
@T Текущее время
@U Количество подключенных пользователей
@V Версия
@@ Одиночный символ @

Все эти коды могут пригодиться при настройке приглашения, выдаваемого программой uugetty. По умолчанию при установлении соединения с удаленным устройством программа uugetty выдает стандартное приглашение, которое находится в файле /etc/issue. В этом файле вы можете с помощью специальных кодов, приведенных выше, сформировать свое сообщение, которое будет выдаваться программой uugetty при установлении соединения.

Сценарии РРР

Зарегистрировавшись на почтовом сервере, удаленный пользователь должен установить РРР-соединение, чтобы обменяться электронной почтой по модемной линии. Как уже отмечалось в "Протокол РРР" , ОС Linux может выполнять функции сервера РРР. Эта возможность обеспечивается программой pppd. После того как сценарий chat на рабочей станции клиента выполнит процедуру регистрации пользователя на почтовом сервере, он должен запустить на нем программу pppd, которая отвечает за установление РРР-соединения. Как правило, программа pppd запускается с несколькими параметрами командной строки. Если ваши клиенты, имеют смутное представление о компьютерах, запуск pppd становится довольно сложной задачей. Так, например, было бы опрометчиво ожидать от пользователя, что при установлении соединения он задаст командную строку вида:

pppd silent modem crtscts proxyarp 192.168.1.100: 192.168.1.2

К счастью, существует более легкий путь задания параметров, необходимых для работы pppd. Программа pppd может считывать параметры из специальных файлов конфигурации. При запуске она считывает файлы конфигурации и обрабатывает все имеющиеся там параметры точно так же, как будто они были заданы в командной строке. По умолчанию имеется один файл конфигурации pppd/etc/ppp/options. Пример этого файла приведен в листинге 16.3.

1 lock
2 silent
3 modem
4 crtscts
5 proxyarp
6 192.168.1.100:192.168.1.2
Листинг 16.3. Пример файла /etc/ppp/options

После того как необходимые параметры сохранены в файле конфигурации, все, что нужно выполнить пользователю, — запустить в командной строке программу pppd без параметров. Как видите, в строке 6 листинга 16.3 назначается статический IP-адрес для устройства удаленного доступа. Если в вашей системе имеется несколько устройств удаленного доступа, то этот способ для вас неприемлем. Дело в том, что тогда всем удаленным устройствам будет назначен один IP-адрес, и они не смогут работать корректно. Чтобы избежать этого, удалите строку, в которой назначается IP-адрес из файла /etc/ppp/options, и для каждой линии tty с номером xx, которая поддерживает работу с одним модемом, создайте отдельные файлы конфигурации /etc/ppp/options.ttyxx. Затем в каждом из них задайте различные статические IP-адреса.

И еще о некоторых особенностях программы pppd. В строке 5 листинга 16.3 задан параметр proxyarp, с помощью которого удаленные устройства могут устанавливать IP-соединение с любыми устройствами в сети, соединенными с почтовым сервером на базе ОС Linux. Это может пригодиться, если возникает необходимость организовать удаленный доступ не только к почтовому серверу, но и к другим устройствам в сети. Если же вы предпочитаете, чтобы удаленные клиенты работали только с почтовым сервером, удалите из конфигурационного файла строку с параметром proxyarp.