начиная от корня и двигаясь вниз, т.е. фактически во всей системе.
Это открывает лазейки в системе защиты, например:

uucp central!/etc/passwd /tmp

Здесь извлекается парольный файл из другой системы. С помощью
этого файла можно найти имена пользователей без паролей, и другие
люди могут прорваться в вашу систему. Более строгий файл 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. Вам нужно
набрать только команду uust, а затем требуемые опции.
Вполне возможно также, что вы обнаружите трудосберегающие
функции, о которых вы не знали раньше.
Первое, что печатает данные командный файл - это главное меню:



-------------------------
|
| UUST MENU system node: russ
| ---------
| c - connect with another system in debug mode
| d - show files in your directory under PUBDIR
| f - long list files in the spool directory
| l - display the logfile dynamically
| r - reconnect with another system
| s - give user summary of transactions
| u - unlock the tty line
| w - display logfile for the last week
| - exit program
|
| Press c,d,f,l,r,s,u,w,or :

Первая опция 'c' предназначена для подключения линии uucp в
отладочном режиме. Эта опция генерирует такую же командную строку,
как при ручном способе запуска процесса uucico (см. предыдущий
раздел). Uust запрашивает у вас имя системы, к которой вы хотите
подключиться.
Следующая опция 'd' дает длинноформатный листинг файлов вашего
каталога, определяемого вашей переменной $PUBDIR, т.е.
/usr/spool/uucppublic/$LOGNAME. Если вы часто делаете пересылки с
помощью uucp, здесь может собраться много файлов. Данная опция
предоставляет вам простой способ их просмотра.
Опция 'f' выдает длинноформатный листинг всех файлов,
находящихся в каталоге подкачки. Выход команды "ls -l" передается по
конвейеру команде more, что удобно при наличии большого количества
файлов. Этот каталог является сердцем исполняющей системы uucp. Почти
все находится или в этом каталоге, или как-то связано с ним.
Опция 'l', видимо, наиболее часто используемая во всей утилите.
Она позволяет увидеть в динамике функционирование uucp, наблюдая за
регистрационным файлом. При первом вызове она печатает последние 20
строк этого файла, а затем ведет наблюдение, пока не будет
остановлена ее работа. Общее количество нажатий на клавиши для вызова
этой команды с помощью uust равно 5: 4 для вызова uust и 1 для
указания опции меню. Для того чтобы набрать ту же команду вручную,
требуется 31 символ. Вот где экономия времени и избавление от лишних
проблем!
Очень интересна опция 'r'. Укажите ей имя системы - и она
установит связь с этой системой при помощи uucp. Используемый при
этом метод отличается от метода, применяемого в опции 'c', но
работает в System V. Отметим, однако, что в большинстве систем
команда uusub, задействованная здесь, требует возможностей
суперпользователя. Uusub возвращает управление обратно вашему
интерпретатору shell, но затем запускает uucp в фоновом режиме. Когда
это произойдет, uust продвигается вперед и показывает динамический
хвост регистрационного файла, как описано выше. После этого вы можете
наблюдать все действия uucp по вызову, передаче файлов и завершению
работы.
Опция 's' показывает все ваши транзакции к утилите uucp, выбирая
из регистрационного файла только то, что относится к вашему имени.
Обычно имеется много записей, поэтому вывод передается по конвейеру
команде more в целях удобства чтения.
Следующую опцию 'u' нужно использовать с большой осторожностью.
Она удаляет файлы блокировки, устанавливаемые системой uucp для самой
себя. Если в это время uucp работает, другой пользователь может
обратиться при помощи cu к линии и все разрушить. Эти файлы
блокировки существуют также, когда кто-то применяет cu на
последователной линии. Данная опция предусмотрена по той причине, что
иногда uucp или cu завершается аварийно. Когда такое происходит,
нужно удалить файлы блокировки, чтобы начать все сначала. Эту опцию
следует использовать только для этой цели либо для запланированного
эксперимента, чтобы посмотреть, что при этом может произойти.
Последняя опция 'w' предназначена для отображения из
регистрационного файла тех транзакций uucp, которые относятся к
последней неделе. Это нетрудно сделать, но если бы вы искали
определенную транзакцию, вы могли бы применить для этого средства
поиска символьных строк команды more.


    ПРИМЕР



$ uust
r

Это попытка повторного подключения к линии uucp. Ее можно
использовать для опроса другой системы или для отправки или приема
данных, стоящих в очереди. Первым делом запрашивается имя системы, к
которой нужно обратиться. Затем эта команда пытается удалить все
файлы, оставшиеся после предыдущих аварийных завершений, и произвести
вызов.


    ПОЯСНЕНИЯ



Uust является однопроходной утилитой, т.е. не имеет внутренних
циклов. Вы выбираете опцию, и после завершения ее выполнения
завершается весь командный файл. Таким способом это сделано главным
образом по той причине, что вы должны обрывать вывод команды tail,
коорая используется некоторыми опциями меню. Однако, клавиша break
прекращает все, даже выполнение uust. Не имеет смысла делать
внутренний цикл, так как этот цикл редко смог бы повториться.
В строках 4-8 выполняется проверка командной строки на наличие
ошибок. Если переданы какие-то аргументы, выдается сообщение об
ошибке и командный файл завершается.
Строка 10 инициализирует переменную UUNODE текущим именем uucp
той системы, в которой вы работаете. Это обеспечивается вызовом
утилиты uuname.
Строки 11-24 отображают главное меню одним большим оператором
echo. Имя системы, поступившее в переменную UUNODE, выдается для
справки в правой верхней части экрана.
В строке 25 читается ответ пользователя, а строки 27-66
проверяют команду и выполняют ее. Если вы ввели только возврат
каретки, это соответствует строке 28, и программа завершается.
Строки 29-38 обрабатывают команду 'c' - подключение в отладочном
режиме. Запрашивается имя системы и проверяется, не пустое ли оно.
Если оно пустое, командный файл завершается. В противном случае
строка 34 сообщает, что uust пытается удалить все файлы STST, которые
создавались при неудачных вызовах. Перед тем как обратиться к
системе, вы должны удалить все файлы STST. Если таких файлов нет,
команда rm не срабатывает и выдается сообщение "no STST files".
Строки 39-40 выполняют опцию 'd'. Сначала отображается для
справки название каталога, который мы просматриваем. Затем
распечатывается каталог PUBDIR в длинном формате. Заметим, что
LOGNAME соответствует любому пользователю, запустившему данную
программу, поэтому нет необходиvости вписывать в текст программы
какое-то значение.
В строках 41-42 аналогичным образом обрабатывается опция 'f'. Мы
распечатываем здесь каталог подкачки.
Команда 'l' в строках 43-44 сообщает, что отображается
регистрационный файл. Затем используется команда "tail -f". Опция -f
означает, что нужно производить отображение того, что находится в
файле следующим образом: как только транзакции печатаются в файл, они
отображаются на ваш экран. Пользователь должен нажать клавишу break
для выхода из программы.
Строки 45-58 выполняют команду 'r', которая пытается произвести
повторное подключение. Сначала запрашивается имя системы и
сравнивается с пустой строкой. Если имя введено, мы пытаемся удалить
файлы STST и выдаем сообщение о том, было ли это удаление успешным.
Затем печатается сообщение о том, что запускается процесс uusub. В
строке 54 проверяется, является ли корневым файлом XENIX. Если это
так, то утилита uusub вызывается с учетом ее нового местонахождения в
системе XENIX. В противном случае она вызывается с указанием ее
обычного местонахождения - /usr/lib/uucp. После выполнения uusub
отображается динамический хвост регистрационного файла, пока
пользователь не нажмет клавишу break, после чего командный файл
завершается.
В строках 59-60 выполняется проверка сводки о транзакциях.
Используется команда uulog, ей передается LOGNAME текущего
пользователя. Подробности о команде uulog можно найти в документации.
Опция 'u' рассматривается в строках 61-62. Сначала отображается
команда rm, которая будет выполнена, чтобы уведомить об этом
пользователя. Затем эта команда выполняется, чтобы попытаться удалить
файлы блокировки. Если команда удаления завершается неудачей,
выдается сообщение об ошибке, указывающее на отсутствие файлов
блокировки.
Строки 63-64 запускают опцию 'w', чтобы посмотреть деятельность
uucp за последнюю неделю. С помощью команды more печатается файл
LogWEEK. Этот файл создается утилитой uucp, чтобы обеспечить сжатую
сводку о работе в течение недели.
Строка 65 соответствует любым командам, которые не были
распознаны ранее. Такие команды являются ошибочными, и выдается
сообщение об этом. Когда выполнение программы доходит до этого места,
она завершается.

------------------------------------------------------------
ИМЯ: uutrans
------------------------------------------------------------

uutrans Передача файловых деревьев из одной системы
UNIX в другую систему UNIX


    НАЗНАЧЕНИЕ



Копирует полную иерархию файловой системы с помощью uucp в
другую систему UNIX и поддерживает структуру файлового дерева.


    ФОРМАТ ВЫЗОВА



uutrans

    ПРИМЕР ВЫЗОВА



cd $HOME/backup
uutrans
remote
~russ

Начиная с подкаталога backup моего регистрационного каталога,
запустить uutrans с целью передачи всех моих файлов. Файлы посылаются
в систему remote и размещаются там в моем регистрационном каталоге
(/usr/russ).

    ТЕКСТ ПРОГРАММЫ



1 :
2 # @(#) uutrans v1.0 Transfer file trees via uucp
3 # Author: Russ Sage
4 if [ $# -gt 0 ]
5 then echo "uutrans: argument count error" >&2
6 echo "usage: uutrans" >&2
7 exit 1
8 fi

10 SELF=`uuname -l`

12 echo "source directory( to exit): \c"
13 read SOURCE
14 if [ "$SOURCE" = "" -o ! -d "$SOURCE" ]
15 then exit 1
16 fi

18 echo "\ndestination system( for $SELF): \c"
19 read SYSTEM
20 echo "\ndestination directory( for ~/$LOGNAME): \c"
21 read DEST

23 : ${SYSTEM:="$SELF"}
24 : ${DEST:="~/$LOGNAME"}

26 echo "\nQUEUEING:"

28 find $SOURCE -type f -print | sort | while read FILE
29 do
30 echo $FILE
31 uucp -c -d -r $FILE $SYSTEM!$DEST/$FILE
32 done


    ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ



DEST Место назначения, куда нужно копировать файлы
FILE Определенный копируемый файл
LOGNAME Содержит регистрационное имя
SELF Содержит узловое имя текущей системы
SOURCE Источник всех копируемых файлов
SYSTEM Имя системы, в которую нужно копировать


ОПИСАНИЕ

ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ uutrans?

Копирование файлов из одной системы в другую с помощью uucp -
довольно простая задача: достаточно указать, какие файлы куда нужно
направить. Но как быть в случае, когда вам нужно скопировать иерархию
файлов? Как гарантировать, что файлы расположатся в системе-адресате
в виде иерархии, а не будут засунуты в один и тот же каталог?
Единственное предложение в документации по uucp (даже не на страницах
руководства) говорит о том, как это сделать. Если вы никогда не
читали его, то скорее всего ваши пересылки завершатся неудачей.
Нам нужно инструментальное средство, которое передает
древовидные структуры в другие системы, сохраняя при этом форму этих
структур. Мы хотим обеспечить простой способ выполнения этой работы,
чтобы не искать каждый раз припрятанную информацию.


ЧТО ДЕЛАЕТ uutrans?

Uutrans предоставляет гибкий интерфейс, гарантирующий правильное
копирование файловых иерархий. Этот командный файл знает, какие файлы
передавать, в какую систему их направить и где их разместить в этой
системе.
Когда вы запускаете uutrans, первым делом он запрашивает
исходный каталог для пересылки файлов. Если вы не хотите продолжать,
нажмите возврат каретки для выхода. Обратите внимание, что
используется команда find, поэтому путь, который вы указываете в
ответ на подсказку, является префиксом маршрутного имени для всех
передаваемых файлов. Например, если вашим текущим каталогом является
$HOME и вы хотите сделать его каталогом-источником, введите ".".
Оператор find сгенерирует для файла /src/f.c маршрутное имя
./src/f.c. Если же вы введете, например, имя /usr/russ, то
результирующим маршрутным именем будет /usr/russ/src/f.c. Таким
образом, требуется небольшая предусмотрительность, чтобы избежать
создания лишних уровней каталога в системе-адресате.
Затем запрашивается имя системы-адресата. Если вы хотите, чтобы
это была ваша собственная система, нажмите возврат каретки. Это
позволит скопировать файлы в пределах того же жесткого диска или в
другие файловые системы.
В запросе каталога-адресата умолчанием является PUBDIR. Если вам
это не подходит, укажите точное маршрутное имя каталога, с которого
вы хотите начать иерархию в системе-адресате. (Напомним также, что
многие системы накладывают ограничения на то, куда вы можете
копировать файлы с помощью uucp.) Способ, которым uutrans
поддерживает правильное файловое дерево - это указание абсолютного
маршрутного имени в системе-адресате, ниже которого будут
располагаться все передаваемые файлы. Единственный способ сделать это
- занести маршрутное имя в переменную и использовать ее в качестве
путей как источника, так и адресата при вызове uucp.
Когда вся входная информация введена, используется команда find,
чтобы найти все файлы, относящиеся к данной иерархии. Затем каждое
маршрутное имя передается по конвейеру в цикл, который отображает имя
и передает файл адресату при помощи uucp.
Для того чтобы ускорить весь процесс и сэкономить свободное
пространство, файлы ставятся в очередь в каталоге подкачки (т.е. не
делается попытка вызвать удаленную систему), и никакие файлы не
копируются в каталог подкачки. Это экономит время, которое ушло бы на
копирование больших количеств файлов, и даже может обезопасить вашу
машину от аварийных завершений работы, так как копирование большого
числа файлов забирает все свободное пространство.
Когда все файлы поставлены в очередь, вам нужно вручную
подсоединиться к uucp с помощью команды 'c' или 'r' утилиты uust. Все
каталоги в системе-адресате должны создаваться автоматически по мере
пересылки файлов.
Несколько неприятный вопрос - права собственности и доступа к
файлам на принимающей стороне. Обычная последовательность действий
такова:

1. Поставить файлы в очередь к uucp, используя инструментальное
средство uutrans.
2. Выйти из системы-источника.
3. Войти в систему-адресат.
4. Запустить uust и повторно подключиться к uucp.

Если вы придерживаетесь такой технологии постановки в очередь и
передачи, то вы полностью контролируете, какие файлы куда
направляются. Имеется побочный эффект, заключающийся в том, что права
доступа к файлам в каталоге-адресате устанавливаются в соответствии с
маской интерпретатора shell (shell umask) того процесса, который
производит повторное подключение.
Необходимо отметить, что если у вас нет прав доступа на запись в
вашей umask, то создается пересылочный каталог, но в него не могут
быть помещены никакие файлы, что подрывает передачу файлов с помощью
uucp. Для разрешения этой проблемы измените вашу umask на "000" (по
умолчанию она равняется 777 для каталогов и 644 для обычных файлов).


    ПРИМЕРЫ



1. cd $P
uutrans
.
remote


Сменить каталог на PUBDIR. Передать все файлы из текущего
каталога (.) в удаленную систему, размещая их в подразумеваемом
каталоге ~/$LOGNAME, т.е. в моем каталоге PUBDIR.

2. uutrans
/etc
remote
/tmp/etc

Передать все файлы из каталога /etc в систему remote, помещая их
в каталог /tmp/etc.


    ПОЯСНЕНИЯ



Строки 4-8 проверяют наличие ошибок. Если в командной строке
есть аргументы, печатается сообщение об ошибке.
Строка 10 инициализирует переменную SELF именем вашего
системного узла, используемого утилитой uucp.
Строки 12-16 запрашивают каталог-источник и читают ответ в
переменную SOURCE. Если ничего не введено или указан не каталог,
программа завершается.
Строки 18-21 запрашивают систему-адресат и каталог-адресат.
Умолчаниями являются ваша собственная система и каталог PUBDIR для
размещения файлов. Эти умолчания облегчают конфигурирование,