Жанр: Учеба
SCO: Пособие администратора системы Unix
...льные два поля time (время) и
retry (период повторного вызова) являются необязательными. Синтаксис
следующий:
day[time][;1retry]
Подполе day может содержать следующие ключевые слова:
Su Mo Tu We Th Fr Sa Для указания дней недели.
Wk Для указания будничного дня.
Any Для любого дня.
Never Для пассивной настройки с удаленным компьютером. Если в
поле Schedule указано Never, ваш компьютер никогда не
будет инициатором вызова удаленного компьютера. Вызов
должен инициироваться удаленным компьютером. Иначе го-
воря, ваш компьютер работает в пассивном режиме по отно-
шению к удаленному (см. описание файла 1Permissions).
указано Never, ваш компьютер никогда
- 11-29 -
Дополнительное подполе time должно указывать интервал
времени в 24-часовом формате, например, 0800-1230. Если это поле
не заполнено, принимается любое время суток, когда разрешено
делать вызов. Допускается указывать интервал времени, переходящий
через 0000. Например, 0800-0600 означает любое время, кроме
интервала с 6 по 8 утра.
Например, следующая запись позволяет делать вызов в понедельник,
среду и пятницу в интервале с 9 утра до полудня (для
выделения поля schedule оно указано жирным шрифтом):
---------------------------------------------------------------------------
grebe MoWeFr0900-1200 ACU D1200 14087672676 \
ogin: nuucp ssword: Created
---------------------------------------------------------------------------
Кроме того, вы можете указывать несколько набров из дней и
часов. Это может пригодиться для более сложной спецификации. В
следующем примере вызов разрешается с 5:00 вечера до 8:00 утра
с понедельника до четверга и в любое время в субботу и
воскресенье.
Этот пример может оказаться эффективным способом вызова,
когда скорость телефонной связи низкая и немедленное соединение
не является важным.
---------------------------------------------------------------------------
gorgon Wk1700-0800.SaSu ACU D1200 14087672676 \
ogin: nuucp ssword: DontLook
---------------------------------------------------------------------------
Дополнительное подполе retry используется для указания минимального
времени (в минутах) перед повторением вызова после
неудачной попытки соединения. Разделителем полей является точка
с запятой (;). Например, следующая запись интерпретируется как
вызов в любое время, но с ожиданием по крайней мере 9 минут
перед повторением вызова при неудачной попытке соединения:
Any;9
---------------------------------------------------------------------------
Замечание
По умолчанию UUCP использует принцип "экспоненциальной выдержки"
при повторе неудачных соединений. После начального отказа
следующий вызов делается через 5 минут. Этот интервал растягивается
с ростом числа неудачных попыток. Поле retry
перекрывает стндартное значение.
---------------------------------------------------------------------------
- 11-30 -
Поле Device
Поле device указывает тип устройства, в большинстве случаев
ACU (Устройство автоматического вызова). Например, ключевое
слово, используемое в следующем поле сравнивается с первым полем
записей файла Devices:
---------------------------------------------------------------------------
Systems: gorgon Any ACU D1200 14087672676 \
ogin: nuucp ssword: DontLook
Devices: ACU tty1A - D1200-2400 hayes2400
---------------------------------------------------------------------------
Поле Speed
В этом поле можно указывать букву и скорость (например,
C1200, D1200), что позволяет дифференцировать различные классы
кодовых наборных устройств (см. описание поля speed файла
Devices). Некоторые устройства могут работать на любой скорости;
в этом случае можно указывать Any. Однако мы рекомендуем
указывать действительный интервал скоростей, который предполагается
использовать. (Если указывается Any и в записи файла
Systems, и в записи файла Devices, по умолчанию принимается
значение 2400.) Например, это поле должно совпадать с полем
speed соответствующей записи файла Devices:
---------------------------------------------------------------------------
Systems: gorgon Any ACU D2400-9600 14087672676 \
ogin: nuucp ssword: DontLook
Devices: ACU tty1A - D1200-2400 hayes2400
---------------------------------------------------------------------------
Если информация для этого поля не нужна, используйте знак
тире (-).
Поле Phone
Это поле используется для указания телефонного номера для
наборного устройства модема. Телефонный номер составляется из
необязательной буквенной аббревиатуры и цифровой части. Если
используется аббревиатура, она должна указываться в файле
Dialcodes. (См. "Использование кодов вызова для образование мобильного
файла Systems"). Например:
- 11-31 -
---------------------------------------------------------------------------
Systems: gorgon Any ACU D1200 CA3676 \
ogin: nuucp ssword: DontLook
Dialcodes: CA 9=408767
---------------------------------------------------------------------------
Знак равенства (=) в этой группе знаков сообщает ACU о необходимости
выдерживания паузы до появления вторичного звукового
сигнала, после которого можно продолжать набор оставшихся
цифр. Знак тире (-) в этой группе означает выдерживание 2-секундного
интервала перед набором очередной цифры.
Знак равенства (=) в этой группе знаков сообщает ACU о необходимости
выдерживания паузы до появления вторичного звукового
сигнала, после которого можно продолжать набор оставшихся
цифр. Знак тире (-) в этой группе означает выдерживание 2-секундного
интервала перед набором очередной цифры.
Если ваш компьютер подсоединен к LAN-переключателю или селектору
порта, вы можете осуществлять доступ к другим компьютерам,
подключенным к этому переключателю. Записи файла
Systems для этих компьютеров не будут содержать телефонных номеров
в поле phone. Вместо этого в этом поле будет указана лексема,
которая должна передаваться в переключатель для того,
чтобы было ясно, какой компьютер и с каким желает установить
связь. (Обычно это и есть системное имя.) Для предотвращения
преобразования с помощью записи из файла Dialcodes соответствующая
запись файла Devices должна иметь на своем конце \D.
- 11-31а -
Поле Login-Script
Поле сценария входа в систему используется для открытия
связи между модемами, плюс распознавания и и посылки необходимой
последовательности регистрации (login) и пароля. Сценарий
указывается в виде ряда полей, отделенных пробелами, и подполей
следующего формата:
expect send
где expect представляет собой группу знаков, которая получается6
а send - группа знаков, посылаемая после получения
expect.
Поле expect можно составлять из подполей следующим
образом:
expect[-subsend-subexpect]...
где subsend посылается в том случае, если предшествующий
expect не был успешно считан, а subexpect, следующий за
subsend, является следующей ожидаемой при приеме группой знаков.
Поясним их различие: последовательность "send-expect" посылает
группу знаков при получении ожидаемой группы знаков,
последовательность "subsend-subexpect" посылает группу знаков
только в том случае, если предыдущая ожидаемая группа знаков не
была получена в течение 10 сек.
Например, при указании "login--login" UUCP будет ожидать
"login". Если принимается "login", делается переход к следующему
полю. Если "login" не получен, после сигнала "возврат каретки"
ничего не посылается, после чего снова просматривается
"login". Если в начальный момент от удаленного компьютера не
ожидается поступления каких-либо символов, в поле expect следует
указывать "" (пустой стринг). Заметим, что после всех полей
send будет посылаться знак "возврат каретки, если только в конце
поля send не будет указан \c.
- 11-32 -
Если стринг начинается с тире, он понимается как пустрой
стринг expect, за которым следует стринг subsend. Например, "--
login:" будет вызывать посылку знака "возврат каретки" и ожидание
получения "login:".
Стринг expect необязательно должен заканчиваться; необходимо
указывать только хвостовые знаки, как, например, в
"ogin:". Это устраняет возможные трудности при использовании
стрингов регистрации, в которых используются прописные буквы,
например, "Login:" или "Password:", а также трудности при использовании
шины как для вызова других абонентов, так и для вызова
другими.
Составление сценариев регистрации
В настоящем разделе дается более подробное описание, как
составлять сценарий входа систему (протокола общения).
Предположим, что имеется следующий элемент файла Systems:
---------------------------------------------------------------------------
terps Any ACU 1200 18005211980 ""\r ogin:-BREAK-ogin: \
uucpx word: ichore
---------------------------------------------------------------------------
Вот как работал бы этот сценарий:
1. Первоначально ничего не ожидается.
2. Посылается возврат каретки и по сценарию ожидается
появление запроса "ogin:" (login:).
3. Если "ogin:" не поступает, посылается сигнал BREAK.
4. Когда окончательно поступает "ogin:", посылается имя
под которым осуществляется вход в систему, uucpx.
5. Когда поступает запрос "word:" (для Password:),
посылается пароль "ichore".
Сценарии регистрации зачастую требуют некоторой экспериментальной
работы. Бывают случаи, когда до появления
запроса на вход в систему требуется одна или более последовательностей
BREAK (часто это происходит с модемами с переменной
скоростью). Если вы не можете получить необходимую последовательность
регистрации от администратора для данного абонента,
неплохим выходом оказалась бы попытка связаться с ним вручную.
Выполнить это можно с помощью cu; в результате можно определить,
что необходимо посылать для генерации запроса на вход в
систему (login:). (Кроме того, вы можете соединиться с системой,
работая в отладочном режиме с помощью uutry; подробности
см. в "Отладочная передача данных".) Имеется ряд управляющих
знаков, вызывающих специальные действия, при посылке их в
процессе выполнения регистрационной последовательности, некоторые
из которых соответствуют нажатию клавишей; их следует по
необходимости включать в сценарий:
- 11-33 -
Таблица 11-3. Управлющие последовательности для сценариев
входа в систему
Знак Описание
---------------------------------------------------------------------------
\N Посылается пустой символ (NUL в коде ASCII)
\b Посылается или ожидается знак возврата на одну позицию
\c Если указывается в конце группы знаков, подавляет знак
возврата каретки, который обычно посылается. В противном
случае игнорируется.
\d Задержка в течение 1сек перед посылкой или чтением
следующих знаков.
\p Установка паузы длительностью от 1/4 до 1/2 сек.
\E Устанавливается режим проверки отображения. (С этого мо-
мента всякий раз, когда передается знак, до того,
пока что-либо будет сделано, устанавливается ожидание
знака, который должен быть получен.)
\e Выключается режим проверки отображения.
\n Посылается или ожидается знак новой строки.
\r Посылается или ожидается знак возврата каретки.
\s Посылается или ожидается знак пробела.
\t Посылается или ожидается знак табуляции.
\\ Посылается или ожидается знак \.
EOT Посылается EOT (конец передачи или "CTL"d).
BREAK Посылается сигнал BREAK.
\K То же, что и BREAK.
\ddd Свертывание восьмеричного числа (ddd) в единичный знак.
"" Ожидание пустой строки.
Ограничение доступа через файл Permissions
Если другие компьютеры будут вызывать вашу систему, файл
Permissions (/usr/lib/uucp/Permissions) указывает права доступа,
которыми обладают удаленные компьютеры при входе в систему,
доступе к файлам и выполнении команд. Имеются опции, которые
ограничивают возможности удаленных компьютеров при запросе файлов
и их возможности при запросе файлов, поставленных в очередь
локальным компьютером. Другие опции устанавливают команды, которые
может выполнять на локальном компьютере удаленный абонент.
- 11-34 -
Составление записей файла Permissions
Каждый элемент является логической последовательностью;
при этом для указания продолжения на следующую физическую используется
знак \. Элементы составляются из опций, отделяемых
друг от друга пробелами. Каждая опция представляется парой "имя
-величина" следующего формата:
name=value
Заметим, внутри назначаемого для опции значения пробелов
быть не может.
Строка комментариев начинается со знака (#) и она заполняет
всю строку до знака новой строки. Пустые строки игнорируются
(даже внутри многострочной логической записи).
Имеется два типа элементов файла Permissions:
LOGNAME Указывает на полномочия, которые учитываются при
вызове вашего компьютера из удаленного.
MACHINE Указывает на полномочия, которые учитываются при
вызове вашим компьютером удаленного.
Ограничения файла Permissions
Если файл Permissions используется для ограничения уровня
доступа для удаленного компьютера:
- Все идентификаторы регистрации (ID), применяемые удаленны-
ми компьютерами для входа в систему UUCP, должны появлять-
ся только в одном из элементов типа LOGNAME;
- При вызове удаленного абонента, имя которого не указано ни
в одной записи типа MACHINE, этот абонент будет иметь сле-
дующие полномочия/ограничения:
1. Будут выполняться только локальные запросы на передачу
и прием.
2. Удаленный компьютер может посылать файлы в в каталог
/usr/spool/uucppublic вашего компьютера.
3. Команды, посылаемые из удаленного компьютера для выпол-
нения в вашем, должны принадлежать перечню стандартных
команд, обычно rmail.
- 11-35 -
---------------------------------------------------------------------------
Замечание
При вызове вашего компьютера из удаленного и в том случае,
если у вас нет информации о последовательности регистрации и
пароле для этого компьютера, вы не знаете, что это за компьютер
и к кому предъявлять претензии.
---------------------------------------------------------------------------
Опции разрешения
В этом разделе описывается каждая опция, указывается как
эти опции используются и перечисляются значения, принимаемые по
умолчанию.
REQUEST
Указывает, может или нет удаленный компьютер выставлять
запрос на передачу файлов из вашего компьютера. Если удаленный
компьютер вызывает ваш компьютер и посылает запрос на получение
вашего файла, этот запрос может быть отклонен или удовлетворен.
В следующем стринге указывается, что удаленный компьютер имеет
право запрашивать передачу файла из вашего компьютера:
REQUEST=yes
В следующем стринге указывается, что удаленный компьютер
не имеет права запрашивать передачу файла из вашего компьютера:
REQUEST=no
По умолчанию принимается значение no. Оно устанавливается,
если опция REQUEST не указывается. Опция REQUEST можно указывать
и в LOGNAME (удаленный компьютер вызывает ваш), и в
MACHINE (вы вызываете удаленный компьютер).
- 11-36 -
SENDFILES
Указывает, может или нет ваш компьютер посылать работу из
очереди к удаленному компьютеру. Когда удаленный компьютер вызывает
вас и завершает свою работу, от может попытаться взять
работу из очереди для него в вашем компьютере.
В следующем стринге указывается, что ваш компьютер может
посылать задание, поставленное в очередь к удаленному компьютеру
в том случае, если регистрируется по одному из имен в опции
LOGNAME:
SENDFILES=yes
Этот стринг является преобладающим, если ваш компьютер находится
в пассивном режиме по отношению к удаленному
компьютеру.
В следующем стринге указывается, что файлы, находящиеся в
очереди в вашем компьютере, должны посылаться только тогда,
когда ваш компьютер вызывает удаленный.
SENDFILES=call
По умолчанию принимается значение call. Эта опция имеет
значение только в записях LOGNAME, т.к. записи типа MACHINE
учитываются только тогда, когда вызовы делаются по отношению к
удаленному компьютеру. Если эта опция указывается в записи типа
MACHINE, она игнорируется.
READ и WRITE
Указывает различные части файловой системы, из которой
uucico может читать, или куда она может писать. Опции READ и
WRITE можно применять и в записях типа MACHINE, и в записях типа
LOGNAME.
Значения, принимаемые по умолчанию и для READ, и для
WRITE, находятся в каталоге uucppublic, как видно из следующих
стрингов:
READ=/usr/spool/uucppublic
WRITE=/usr/spool/uucppublic
В следующем стринге указывается разрешение на доступ к любому
файлу, который читается системой UUCP.
READ=/ WRITE=/
Значения этих элементов описываются в виде списка путей
доступа, каждый из которых отделен двоеточием. Опция READ предназначена
для запрашиваемых файлов, а опция WRITE - для откладывания
файлов. Одно из этих значение должно указываться в качестве
префикса к имени любого полного пути поступающих или
выходящих файлов.
- 11-37 -
---------------------------------------------------------------------------
Замечание
Опции READ и WRITE не оказывают никакого действия на действительные
полномочия доступа к файлу или каталогу. Например,
каталог с кодом полномочий 700 допускает доступ для владельца и
не допускает чтение или запись в него со стороны UUCP, независимо
от опций доступа, указанных в файлу Permissions.
---------------------------------------------------------------------------
Для разрешения откладывать файлы в каталоге /usr/tmp, равно
как и в каталоге общего пользования, в опции WRITE следует
указывать следующие значения:
WRITE=/usr/spool/uucppublic:usr/tmp
Необходимо отметить, что если используются опции READ и
WRITE, необходимо указывать все имена путей доступа, т.к. имена
стандартных путей автоматически к списку не добавляются.
Например, если единственным именем пути, указанном в опции
WRITE, является /usr/news, разрешение на откладывание файлов в
каталоге общего пользования будет запрещено.
Вам необходимо соблюдать осторожность при указании каталогов,
которые делаются доступными для чтения или записи удаленным
компьютерам. Например, скорее всего вы не захотите, чтобы
удаленные компьютеры имели разрешение изменение вашего файла
etc/passwd, поэтому etc не должен открываться на запись.
NOREAD и NOWRITE
Указывает исключения для опций READ и WRITE или значений,
принимаемых по умолчанию. В следующих стрингах разрешается чтение
любого файла, за исключением тех, которые находятся в каталоге
etc (и всех его подкаталога - помните, что указывается
лишь префикс полного пути) и записи только в стандартный каталог
usr/spool/uucppublic:
READ=/
WRITE=/usr/spool/uucppublic
NOREAD=/etc
NOWRITE=/etc
Опция NOWRITE работает так же, как и NOREAD. Эти опции
можно указывать и в записях типа LOGNAME, и в записях типа
MACHINE.
- 11-38 -
CALLBACK
Указывает записи в LOGNAME, для которых транзакции не будут
выполняться до тех пор, пока снова не будет повторно вызывана
вызывающая система. Имеется два примера того, когда можно
было бы применять CALLBACK. В целях защиты в том случае, когда
вы повторно вызываете удаленный компьютер, вы должны быть
уверены, что тот, кто ответит, является именно тем компьютером.
Если вы выполняете длинную передачу данных, вы можете выбрать
компьютер, который рассчитан на более длинный сеанс.
В следующем стринге указывается, что ваш компьютер должен
вызывать удаленный компьютер повторно перед тем как начнется
передача файла:
CALLBACK=yes
По умолчанию принимается значение:
CALLBACK=no
Опция CALLBACK применяется редко. Если эта опция указывается
для двух абонентов по отношению друг к другу, передача файла
никогда не начнется.
COMMANDS
Указывает в записи MACHINE команды, которые может выполнять
удаленный абонент на вашем компьютере. Это влияет на
защиту вашего компьютера; применять эту возможность следует
крайне осторожно.
С помощью программы uux# генерируется удаленное выполнение
запросов, которые помещаются в очередь для передачи в удаленный
компьютер. Файлы и команды посылаются в адресуемый компьютер
для удаленного выполнения. Заметим, что COMMANDS в записи
LOGNAME не указывается; COMMANDS в записях MACHINE определяют
разрешение на выполнение команд в зависимости от того, вы вызываете
удаленную систему или она вызывает вас.
Командой, принимаемой по умолчанию, которую может выполнять
удаленный компьютер, является:
COMMANDS=rmail
Если в записи MACHINE указывается командный стринг, он
перекрывает стандартное значение. Например, следующая запись
перекрывает стандартное значение COMMAND, в результате чего
компьютеры owl, raven, hawk и dove получают возможность выполнять
на вашем компьютере команды rmail, rnews и lp.
- 11-39 -
MACHINE=owl:raven:hawk:dove \
COMMANDS=rmail:rnews:lp
Можно также использовать имя полного пути доступа.
Например, следующая команда указывает, что команда rmail использует
стандартный путь:
COMMANDS=rmail:/usr/lbin/rnews:/usr/local/lp
Стандартнымы путями для вашего компьютера являются /bin, /
usr/bin и /usr/lbin. Если удаленный компьютер указывает для выполнения
команд каталог /usr/lbin/rnews или rnews, то независимо
от пути, принимаемого по умолчанию, будет выполняться
/usr/lbin/rnews. Аналогично для выполнения команды lp следует
указывать /usr/local/lp.
Указание значения ALL в списке означает, что любая команда,
от удаленного компьютера, указанная в записи, будет выполняться.
Если вы указываете это значение, вы предоставляете удаленному
компьютеру полный доступ к вашему компьютеру. Поэтому
соблюдайте осторожность; это дает намного более полный доступ,
чем тот, который имеют обычные пользователи.
Следующий стринг иллюстрирует два момента:
COMMANDS=/usr/local/bin/lc:ALL:/usr/local/lp
1. Значение ALL можно указывать в любом месте стринга; а
имена путей доступа, указанные для lc и lp будут использоваться
(вместо стандартных), если в запрашиваемой команде не будет
указываться полный путь доступа для lc и lp.
2. В тех случаях, когда имеется потенциальная возможность
применения команд типа cat или uucp, указываемых с помощью опции
COMMANDS, вместе с опцией COMMANDS следует указывать опцию
VALIDATE. Любая команда, выполняющая чтение или запись файлов,
представляет потенциальную опасность для защищенности локального
компьютера, когда они выполняются через удаленный демон UUCP
(uuxqt).
VALIDATE
Применяется в сочетании с опцией COMMANDS при указании команд,
представляющих потенциальную опасность для защиты вашего
компьютера. Она предоставляет определенную степень подтверждения
полномочий (аутентичности) вызывающего компьютера. Применение
опции VALIDATE требует, чтобы привилегированные компьютеры
имели для транзакций UUCP уникальные пароли. При этом важным
моментом является защита пароля/регистрационной последовательности
для этой записи. Если постороннее лицо получает эту информацию,
то конкретная опция VALIDATE не может более считаться
защищенной. (VALIDATE просто добавляет уровень защиты для опции
- 11-40 -
COMMANDS, в результате чего получается более защищенный путь
для получения доступа к выполнению команд, чем ALL.)
Следует соблюдать осторожность при предоставлении удаленному
компьютеру привилегированных регистрационных последовательностей
и пароля для транзакций UUCP. Назначая удаленному
компьютеру специальную регистрацию и пароль для доступа к файлам
и удаленное выполнения команд похоже на разрешение кому-либо
на этом компьютере выполнять нормальный вход в систему и
пароля вашего компьютера. Следовательно, если вы не доверяете
кому-либо, кто работает на удаленном компьютере, не предоставляйте
этому компьютеру привилегированного входа в систему и
пароля.
В следующей записи LOGNAME указывается, что, если один из
удаленных компьютеров, имеющих права на agle, owl или hawk
регистрируются на вашем компьютере, он должен использовать для
регистрации uucpfriend:
LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk
Как можно видеть, если постороннее лицо получает пароль
или регистрацию через uucpfriend, зашита оказывается тривиальной.
Опции COMMAND, указываемые в записях MACHINE, описывают
команды, доступные для системы и для записи LOGNAME удаленного
компьютера. Команды необходимое описывать записях MACHINE для
обеспечения связи между локальной и удаленной системами, когда
удаленный компьютер регистрируется в локальной системе, а демон
выполнения команд не работает.
Каждый удаленный компьютер имеет свой собственный каталог
общего доступа. Эти общие каталоги допускают доступ на запись
только для программ UUCP. Выполняемые файлы из удаленного
компьютера после пересылки в ваш компьютер помещаются в его общий
каталог. Когда работает демон uuxqr, он может использовать
имя общего каталога для поиска записи MACHINE в файле
Permissions и получения списка команд COMMANDS. Если имя компьютера
в файле Permissions отсутствует, используется стандартный
список.
В следующем примере показан взаимосвязь между записями
MACHINE и LOGNAME.
MACHINE=eagle:owl:hawk REQUEST=yes \
COMMANDS=rmail:/usr/local/bin/lc \
READ=/ WRITE=/
- 11-41 -
LOGNAME=uucpz VALIDATE=eagle:owl:hawk \
REQUEST=yes SENDFILES=yes \
READ=/ WRITE=/
Строка опции COMMANDS указывает, что удаленные пользователи
могут запрашивать уда
...Закладка в соц.сетях