этого файла можно найти имена пользователей без паролей, и другие
люди могут прорваться в вашу систему. Более строгий файл USERFILE
выглядит так:
uucp /usr/spool/uucppublic /tmp
что ограничивает файловые пересылки только указанными каталогами. Это
препятствует предыдущей попытке пересылки парольного файла.
Последний файл L.sys, вероятно, наиболее важен для uucp с точки
зрения системы защиты. Он содержит имена узлов, телефонные номера,
регистрационные имена и пароли для всех удаленных систем, известных
центральной системе. Если бы какая-то часть этой информации была
доступна широкой публике, кто-нибудь смог бы выполнить пересылку с
помощью uucp из удаленной системы и претендовать на роль центральной
системы. Новая система HoneyDanber uucp в System V кое-что делает для
того, чтобы не давать удаленным системам перехватывать почту и
пересылки данных путем маскировки под другие удаленные системы. В
главе 9 более подробно рассматриваются вопросы безопасности программы
uucp и коммуникаций вообще.
В следующем примере показан файл L.sys, в котором определены два
разных вида систем: системы типа прямого подключения и удаленные
системы с номеронабирателем (dial-up systems).
remote Any ACU 1200 5551212 ogin:--ogin: uucp word: uucp
selector Any ACU 1200 5551213 \d--CLASS--CLASS A ogin:--ogin: uucp word:
uucp
direct Any tty00 9600 tty00 ogin:-@-ogin: uucp word: uucp
Запись для системы "remote" отражает, что это линия с набором
номера, может быть вызвана произвольное число раз ("any time"),
доступна через ACU (automatic call unit - автоматическое устройство
вызова) со скоростью 1200 бод и по номеру 5551212. Регистрационная
последовательность определена в виде регистрационного имени uucp и
пароля uucp. Слово "ogin" - не опечатка. Uucp использует подсказку
"ogin:" для того, чтобы отличить ее от обычной подсказки login
системы UNIX. Распознавание шаблона "ogin:" более надежно, чем
использование "Login:" или "login:".
Указание "Any" можно заменить на определенные интервалы времени,
если 24-часовый доступ не разрешен. Заметим, что обозначение "ACU"
соответствует записи ACU в файле L-devices (как рассмотрено ранее). В
следующей записи файла L-devices имена cua0 и cul0 связаны с
устройством, присоединенным к модему, в данном случае /dev/tty00:
ACU cul0 cua0 1200
Эту связь можно проверить с помощью команды "ls -li /dev/tty*
/dev/cul* /dev/cua*".
Система "selector" в нашем файле L.sys также имеет набор номера,
только подключается через коммутатор порта. Для общения с
коммутатором порта необходима дополнительная информация, которая
начинается с символов "\d". Поля в файле L.sys следуют в таком
порядке: "ожидание посылка ожидание посылка ...". Когда мы в первый
раз подключаемся к селектору порта, в нашу линию ничего не выводится.
Просто он так работает. Селектору нужен символ , чтобы стать
активным, а первое поле uucp означает ожидание. Как нам ничего не
дождаться и послать возврат каретки? Путем указания uucp ожидать
невозможный символ, например control-D (\d). Uucp никогда не получит
его, поэтому по тайм-ауту эта программа выдаст возврат каретки (-).
Если слово CLASS приходит назад, когда мы посылаем CR, то мы
отправляем символ "A", который означает класс системной
идентификации, указанный в данной записи. Когда связь
устанавливается, мы ищем "ogin:" в качестве регистрационной
подсказки. Если мы не находим ее, то посылаем символы возврата
каретки. Это может потребоваться по той причине, что инициирующий
процесс getty в системе A может быть настроен на 9600 бод. Тогда мы
должны будем послать либо символы возврата каретки, либо символы
break, чтобы сбросить скорость обмена до 1200 бод.
Последняя системная запись "direct" не использует ACU и
телефонный номер. Она собирается обращаться к терминальной линии
tty00 на скорости 9600 бод, чтобы получить регистрационную
последовательность. Здесь нет селектора порта, через который нужно
пройти, а есть просто прямая линия. В файле L-devices эта линия
описана так:
DIR tty00 0 9600
ОТЛАДКА КОММУНИКАЦИЙ
В тех случаях, когда uucp работает неправильно, можно
воспользоваться некоторыми хитростями отладки. Последовательность
действий по отладке обычно проходит по такому циклу: попытаться
передать файл, локализовать проблему, разрешить ее, сделать еще одну
передачу. Здесь мы рассмотрим локализацию проблемы и выполнение еще
одной пересылки.
Если после проверки и перепроверки всех конфигурационных файлов
имеют место отказы при передаче файлов, запустите вручную программу
/usr/lib/uucico с некоторыми активными отладочными флагами. Они
помогут увидеть, как происходит рукопожатие. Вот командная строка для
отладочного режима:
/usr/lib/uucp/uucico -r1 -x9 -ssystem_name
где r1 указывает программе uucico стартовать в ведущем (master)
режиме, вызывая system_name, а x9 указывает уровень отладочных
сообщений. Если вы хотите получать от uucico поменьше подробностей,
можете понизить уровень отладки до x4 или другого значения.
Отладочный вывод варьируется в диапазоне от x1 до x9.
Типичная последовательность для этой команды выглядит так. Во
-первых, поставить некоторые файлы в очередь для того, чтобы
направить их в другую систему. Благодаря постановке файлов в очередь,
вы избегаете автоматического запуска процесса uucico. После того как
файлы поставлены в очередь и готовы к передаче, запустите отладочный
режим и следите за происходящим. Это выглядит примерно так:
---------------------------------------------------------------------------
|
| $ uucp -r *.c remote!~/src
| $ /usr/lib/uucp/uucico -r1 -x4 -sremote
|
Если вам нужно только активизировать передачу с помощью uucp в
обычном режиме, то проще всего применить команду mail. Направьте
почтой некоторый текст пользователю другой системы - и механизм uucp
сразу же начнет работу. Следующая команда приводит к тому, что этот
механизм вызывает систему "remote" и запускает утилиту rmai(1) в
другой системе, чтобы передать по почте файл "dummy" пользователю
"user":
$ mail remote!user < dummy
Есть команда, которая явно вызывает /usr/lib/uucp/uucico - это
команда uusub(1M), размещенная в каталоге /usr/lib/uucp. Она
вызывается с указанием имени системы, с которой вы хотите связаться.
Большинство систем имеют такую команду. Если у вас ее нет,
пользуйтесь uucico. Если такая команда есть, вы имеете еще один
способ запуска uucico. Синтаксис выглядит так:
$ /usr/lib/uucp/uusub -c system
Теперь когда мы знаем, как использовать все эти команды вручную,
мы можем рассмотреть некоторые инструментальные средства,
автоматизирующие большую часть вашей работы с uucp.
---------------------------------------------------------------------------
ИМЯ: uust
---------------------------------------------------------------------------
uust Состояние uucp и служебные действия
НАЗНАЧЕНИЕ
Предоставляет управляемый с помощью меню доступ ко многим
служебным функциям, связанным с утилитой uucp и передачей файлов.
ФОРМАТ ВЫЗОВА
uust
Опции меню:
c - подключиться к другой системе в отладочном режиме
d - показать файлы в вашем каталоге PUBDIR
f - длинноформатный список файлов в каталоге подкачки
(spool directory)
l - динамически отображать регистрационный файл
r - повторное подключение к другой системе
s - дать пользователю сводку о транзакциях
u - разблокировать все терминальные линии (ОСТОРОЖНО:
это может нарушить сеанс работы)
w - отобразить регистрационный файл за последнюю неделю
ПРИМЕР ВЫЗОВА
uust Динамически отображать регистрационный файл, чтобы
следить за транзакциями uucp
ТЕКСТ ПРОГРАММЫ
1 :
2 # @(#) uust v1.0 Uucp status utility Author: Russ Sage
4 if [ $# -gt 0 ]
5 then echo "uust: argument error" >&2
6 echo "usage: uust" >&2
7 exit 1
8 fi
10 UUNODE=`uuname -l`
11 echo "
12 UUST MENU system node: $UUNODE
13 ---------
14 c - connect with another system in debug mode
15 d - show files in your directory under PUBDIR
16 f - long list files in the spool directory
17 l - display the logfile dynamically
18 r - reconnect with another system
19 s - give user summary of transactions
20 u - unlock the tty line
21 w - display logfile for the last week
22 - exit program
24 Press c,d,f,l,r,s,u,w,or : \c"
25 read CMD
27 case $CMD in
28 "") exit 0;;
29 c) echo "\nSystem name ( to exit): \c"
30 read SYSTEM
31 if [ "$SYSTEM" = "" ]
32 then exit 0
33 fi
34 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c"
35 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \
36 && echo "" || echo "no STST files"
37 echo "\n/usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM:"
38 /usr/lib/uucp/uucico -r1 -x4 -s$SYSTEM;;
39 d) echo "\n/usr/spool/uucppublic/$LOGNAME:"
40 ls -l /usr/spool/uucppublic/$LOGNAME;;
41 f) echo "\n/usr/spool/uucp:"
42 ls -l /usr/spool/uucp | more;;
43 l) echo "\n/usr/spool/uucp/LOGFILE:"
44 tail -20f /usr/spool/uucp/LOGFILE;;
45 r) echo "\nSystem name ( to exit): \c"
46 read SYSTEM
47 if [ "$SYSTEM" = "" ]
48 then exit 0
49 fi
50 echo "\nrm /usr/spool/uucp/STST.$SYSTEM : \c"
51 rm /usr/spool/uucp/STST.$SYSTEM 2>/dev/null \
52 && echo "" || echo "no STST files"
53 echo "uusub -c$SYSTEM:"
54 if [ -f /xenix ]
55 then /usr/bin/uusub -c$SYSTEM
56 else /usr/lib/uucp/uusub -c$SYSTEM
57 fi
58 tail -20f /usr/spool/uucp/LOGFILE;;
59 s) echo "\nuulog -u$LOGNAME:"
60 uulog -un$LOGNAME | more;;
61 u) echo \\nrm /usr/spool/uucp/LCK* :
62 rm /usr/spool/uucp/LCK* 2>/dev/null || echo "no lock files";;
63 w) echo "\n/usr/spool/uucp/Log-WEEK:"
64 more /usr/spool/uucp/Log-WEEK;;
65 *) echo "uust: invalid argument '$CMD'" >&2;;
66 esac
ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ
CMD Содержит символ входной команды, поступивший из
стандартного ввода
LOGNAME Содержит ваше регистрационное имя
SYSTEM Узловое имя uucp той системы, в которую вы обращаетесь
UUNODE Узловое имя uucp локальной системы
ОПИСАНИЕ
ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ uust?
Многие области системы UNIX являются фактически самостоятельными
подсистемами. Uucp одна из них. Она использует конфигурационные
файлы, файлы подкачки (spool files), файлы блокировки (lock files) и
имеет много исполняемых модулей, образующих целую систему. Если вы
интенсивно используете uucp, вы часто занимаетесь просмотром
регистрационных файлов, очисткой каталогов после аварийных завершений
работы uucp и наблюдением за системой в целом. Если делать все это
вручную, требуется запоминать каталоги, файлы, команды, опции. Трудно
запомнить так много символов для ввода команд. Uust значительно
сокращает издержки и облегчает использование утилиты uucp.
ЧТО ДЕЛАЕТ uust?
Uust - это управляемый с помощью меню интерфейс, предоставляющий
основные служебные функции, необходимые для среды uucp. Вам нужно