связанное с пересылкой информации, чтобы не было необходимости
вводить много данных.
В строках 23 и 24 проверяется, инициализированы ли переменные.
Если переменной SYSTEM присвоен возврат каретки, в нее заносится
значение SELF. Если переменная DEST пустая, ей присваивается
~/$LOGNAME. Эти операторы устанавливают значения по умолчанию.
Строка 26 печатает сообщение о том, что файлы ставятся в
очередь. Весь фокус заключается фактически в строках 28-32. Команда
find начинает работать с каталога SOURCE и находит все обычные файлы.
Этот список передается утилите sort, так что uucp пересылает файлы в
отсортированном порядке. Это облегчает отслеживание того, какие файлы
были переданы, если возникают какие-то проблемы.
Отсортированный список попадает в цикл while, читающий имена
файлов. Каждое имя отображается на экран для справки, и файл ставится
в очередь к удаленной системе. В строке 31 указаны такие опции uucp:
-r для постановки в очередь, -c для того, чтобы не копировать файлы в
каталог подкачки, и -d для создания каталогов, необходимых в
удаленной системе.
Для поддержки древовидной структуры мы применяем магический
синтаксис $SYSTEM!$DEST/$FILE. Нам нужно не только скопировать файлы
в систему и в каталог, но и определить маршрутное имя вплоть до
самого файла. Это гарантирует, что файлы будут расфасованы по
каталогам. Если бы был использован синтаксис $SYSTEM!$DEST, то все
файлы попали бы в один каталог и их иерархическая структура была бы
утеряна.
После того как все файлы поставлены в очередь, они находятся в
этой очереди до тех пор, пока их не позовет удаленная система. Тогда
файлы будут скопированы в эту систему.


    КОНФИГУРАЦИОННЫЕ РЕШЕНИЯ



Зачастую на практике вокруг нашей системы UNIX накапливается
много не особенно совместимой аппаратуры, включая терминалы,
микро-ЭВМ и модемы. Как заставить их работать совместно? Теперь когда
мы рассмотрели основные особенности аппаратуры и программмного
обеспечения для коммуникаций в системе UNIX, мы готовы представить
некоторые примеры работы коммуникаций в комплексах с системой UNIX.
Мы хотим рассмотреть ряд конфигураций, использующих различные
комбинации аппаратуры. Проблемы меняются, но наш общий подход
остается.


ПОДКЛЮЧЕНИЕ UNIX К МОДЕМУ И ГЛАВНОЙ МАШИНЕ

Первая задача, которую мы рассмотрим, это использование
"персональной" системы UNIX, модема и главной машины. У нас есть
система UNIX с одним последовательным портом, но мы имеем как модем,
так и линию прямого подключения к системе большего размера. Как нам
использовать один последовательный порт и для модема, и для главной
машины? Решение показано на рис. 8-10.


Рис. 8-10. Подключение системы UNIX к модему и главной машине
---------------------------------------------------------------

***** +----------------+
* * | |
* модем * | главная машина |
* * | |
***** +----------------+
^ ^
| Прямой кабель | Нуль-модем
| |
| +---------------+ |
------>| |-------
| переключатель |
| |
\ /
\___________/
^
|
| Прямой кабель
|
v
+-------------+
| |
| UNIX |
| |
+-------------+

---------------------------------------------------------------

Нам нужен блок переключения. Этот блок имеет один вход на одной
стороне и два входа на другой. Мы подсоединяем UNIX к главному входу,
что позволяет переключаться либо на модем, либо на главную машину.
Здесь два различных подсоединения:

UNIX <-- --> модем
Вызов из UNIX при помощи cu, uucp и обращение в UNIX
с удаленного терминала

UNIX --> главная машина
UNIX обращается к главной машине, как прямо
подключенный терминал


ПОДКЛЮЧЕНИЕ UNIX И ТЕРМИНАЛА К МОДЕМУ

Эта конфигурация аналогична предыдущей, за исключением того, что
вся аппаратура локальна. Мы хотим использовать модем как для
терминала, так и для UNIX. Конфигурация показана на рис. 8-11.
Порт системы UNIX подсоединяется к одной стороне переключателя,
а терминал к другой. Отметим, что терминал НЕ будет обращаться в
систему UNIX. Все кабели прямолинейные. В таком комплексе возможны
следующие конфигурации:


UNIX <-- --> модем
Обращение в UNIX с удаленного терминала и вызов из
UNIX с помощью cu, uucp

терминал --> модем
Для вызова из UNIX только в качестве немого терминала


Рис. 8-11. Подключение UNIX и терминала к модему
----------------------------------------------------------------

*****
* *
* модем *
* *
*****
^
|
| Прямой кабель
|
v
/-----------\
/ \
| |
| переключатель |
| |
------->| |<-------
| |_______________| |
Прямой | | Прямой
кабель | | кабель
| |
v |
+-----------+ +--------------+
| | | |
| UNIX | | терминал |
| | | |
+-----------+ +--------------+

----------------------------------------------------------------


ПОДКЛЮЧЕНИЕ UNIX К ТЕРМИНАЛУ, МОДЕМУ И ГЛАВНОЙ МАШИНЕ

Эта ситуация довольно сложна и требует двух блоков переключения.
Соответствующая архитектура показана на рис. 8-12.


Рис. 8-12. Подключение системы UNIX к терминалу,
модему и главной машине
--------------------------------------------------------------------

***** +----------------+
* * | |
* модем * | главная машина |
* * | |
***** +----------------+
^ ^
Прямой | | Нуль-
кабель | | модем
| +---------------+ |
+-------------+ ----->| |-----
| | | переключатель |
| терминал | | 2 |
| | \ /
+-------------+ \___________/
| ^
| Нуль-модем | Прямой кабель
| |
| +---------------+ |
------>| |<------
| переключатель |
| 1 |
\ /
\___________/
^
|
| Прямой кабель
|
v
+-------------+
| |
| UNIX |
| |
+-------------+

--------------------------------------------------------------------

Начнем с системы UNIX. В ней имеется линия, идущая в
переключатель 1 в качестве главного входа. Переключатель 1
осуществляет переключение между терминалом и блоком переключения 2.
Это позволяет системе UNIX либо получать терминал для регистрации в
системе (в предположении, что работает getty), либо получать модем
для регистрации в системе, либо посылать информацию модему или
главной машине (предполагается, что процесса getty нет). Заметим, что
между терминалом и UNIX должен быть нулевой модем, но мы не можем
сделать нуль-модем сразу после UNIX, потому что нам нужен прямой
кабель для подсоединения к модему.
Затем блок переключения 2 выполняет коммутацию между модемом и
главной машиной. Линия к модему должна быть прямой, а линия в главную
машину должна быть нуль-модемом. Возможны следующие взаимосвязи:

UNIX <-- терминал
Обращение в UNIX с терминала по линии getty

UNIX <-- --> переключатель <-- --> модем
Вызов из UNIX с помощью cu, uucp и обращение в
UNIX с удаленного терминала

UNIX --> переключатель --> главная машина
Обращение из UNIX при помощи cu, uucp



СИСТЕМА UNIX, МИКРО-ЭВМ И МОДЕМ

В этой конфигурации также требуется два блока переключения. У
нас есть машина с двумя последовательными линиями, на которой
работает UNIX, автономная микро-ЭВМ и модем, который они должны
совместно использовать. UNIX-машина также воспринимает регистрацию с
автономной машины, позволяя ей эмулировать терминал, если у нас есть
соответствующее программное обеспечение. Решение показано на рис.
8-13.

Рис. 8-13. Система UNIX, микро-ЭВМ и модем
-------------------------------------------------------------------

*****
* *
* модем *
* *
*****
^
| прямой кабель
|
v
______________
/ \
/ \
| переключатель |
| 2 |
-------------------
^ ^
| |
| |
----------------- -------------------
| |
| ------------------------------- |
| | | |
| | | |
| | -------------------
| | | |
| | | переключатель |
| | \ 1 /
| | \_____________/
Прямой | | Нуль-модем ^
кабель | | |
v v |
+--------+ +-------------+
| | | |
| UNIX | | микро-ЭВМ |
| | | |
+--------+ +-------------+

-------------------------------------------------------------------

Микро-ЭВМ может работать двумя способами: либо как терминал в
системе UNIX, либо как терминал для обращения к модему. Система UNIX
имеет один последовательный порт, позволяющий связываться с микро-ЭВМ
через переключатель 1. Другая последовательная линия идет в блок
переключения 2, подсоединенный к модему. По этой линии можно либо
обращаться из системы UNIX во внешний мир, либо принимать внешние
вызовы с целью удаленной регистрации в системе через модем.
Переключатель 2 коммутирует модем между микро-ЭВМ и системой UNIX.
Возможны такие комбинации:

микро-ЭВМ --> переключатель --> модем
Обращение вовне с помощью коммуникационных средств

микро-ЭВМ --> переключатель --> UNIX
Регистрация в системе путем эмуляции терминала

UNIX <-- переключатель <-- микро-ЭВМ
Регистрация с терминала, подключенного напрямую

UNIX <-- --> переключатель <-- --> модем
Вызов из UNIX при помощи cu, uucp, удаленная
регистрация

модем <-- переключатель <-- микро-ЭВМ
Вызов модема с микро-ЭВМ

модем <-- --> переключатель <-- --> UNIX
Вызов из UNIX или обращение в UNIX; требуется
изменение getty для последовательной линии и
автоответа модема


    АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ



Возможно еще одно решение предыдущей задачи. Оно использует
несколько больше возможностей, чем предыдущее решение. Те же основные
проблемы решены, но подход при этом сильно отличается.
В конфигурации, показанной на рис. 8-14, блоки переключения
подсоединяются иначе, чем в предыдущем комплексе. Доступны те же пути
передачи информации, а также некоторые новые.

Рис. 8-14. Система UNIX, микро-ЭВМ и модем
в альтернативной конфигурации
---------------------------------------------------------------------

*****
* *
------->* модем *
| * *
-------------------- | *****
| | |
| | | прямой кабель
| | v
| _______________
| | |
| нулевой | переключатель |
| модем \ 2 /
| \-----------/
| ^
| | прямой кабель
| |
| v
| /-----------\
| / \
| | переключатель |
| | 1 |
| +_______________+
| ^ ^
| | |
| прямой кабель | | прямой кабель
| ------------------- --------------
| | |
v v |
+--------+ +---------------+
| | | |
| UNIX | | микро-ЭВМ |
| | | |
+--------+ +---------------+

----------------------------------------------------------------------

Как микро-ЭВМ, так и система UNIX подключены к переключателю 1.
Этот переключатель присоединен к блоку переключения 2 главным входом.
Линии от микро-ЭВМ, от UNIX, между переключателями и модемная линия
должны быть прямыми кабелями. Только входная линия системы UNIX
должна быть нуль-модемом.
Переключатель 2 коммутирует один из центральных процессоров
между модемом и второй последовательной линией системы UNIX. Модемная
линия может идти от модема или к нему, но линия системы UNIX должна
быть только входящей, потому что в UNIX работает getty. Возможны
такие комбинации:

микро-ЭВМ --> переключатель --> модем
Обращение вовне при помощи коммуникационных средств

микро-ЭВМ --> переключатель --> UNIX
Регистрация в системе путем эмуляции терминала

UNIX <-- --> переключатель <-- --> модем
Обращение из или в UNIX с помощью cu, uucp

UNIX --> переключатель --> UNIX
Выход с первой линии идет во вторую линию для
регистрации в системе

модем <-- --> переключатель <-- --> процессор
Выбор центрального процессора зависит от
переключателя 1

UNIX <-- переключатель <-- процессор
В зависимости от переключателя 1, один из
процессоров может зарегистрироваться в системе


ТРИ СИСТЕМЫ UNIX

Последняя конфигурация, которую мы рассмотрим, это соединение
трех систем UNIX. Данное решение было подсказано конфигурацией с
прямым подсоединением 16-разрядной машины PC XENIX, 32-разрядной
машины PC XENIX и главной машины VAX. Для того чтобы выполнить такое
подключение, нам нужно три двунаправленных блока переключения.
Не так важно, какая из микро-ЭВМ 1 и микро-ЭВМ 2 является 32-
или 16-разрядной машиной. Они могут быть в вашем помещении, а главная
машина может стоять где-то в другом месте и соединяться кабелем с
вашим помещением. При этом предполагается, что кабель от главной
машины уже является нуль-модемом в вашем подключении. Еще один
нулевой кабель располагается между двумя системами UNIX на микро-ЭВМ,
чтобы можно было зарегистрироваться с одной из этих систем в другой
системе в качестве терминала. Остальные кабели прямые (см. рис.
8-15).

Рис. 8-15. Три системы UNIX
---------------------------------------------------------------------

+------------------+
| |
| UNIX |
| главная машина |
| |
+------------------+
^
| нуль-модем
|
______________
/ \
/ \
| переключатель |
| 3 |
|__________________|
^ ^
| |
прямой кабель | | прямой кабель
---------------- ----------------
| |
| ----------------------- |
| | нуль-модем | |
| v v |
--------------- ---------------
| | | |
| переключатель | | переключатель |
\ 1 / \ 2 /
\___________/ \___________/
^ ^
прямой | | прямой
кабель | | кабель
v v
+-------------+ +-------------+
| | | |
| UNIX | | UNIX |
| Микро-ЭВМ 1 | | Микро-ЭВМ 2 |
| | | |
+-------------+ +-------------+

---------------------------------------------------------------------

Каждая микро-ЭВМ подсоединена к блоку переключения через главное
соединение. Эти переключатели 1 и 2 коммутируются друг с другом и с
блоком переключения 3.
Микро-ЭВМ 1 может переключаться на микро-ЭВМ 2 в качестве
интерфейса терминал/uucp и на главную машину в качестве удаленного
терминала. В этом случае линия главной машины проходит через селектор
порта. Микро-ЭВМ 2 может переключаться между микро-ЭВМ 1 и главной
машиной аналогичным образом. Переключатель 3 коммутирует главную
машину между микро-ЭВМ 1 и микро-ЭВМ 2. Возможны следующие
комбинации:

микро-ЭВМ 1 --> переключатель --> главная машина
Зарегистрироваться в качестве удаленного терминала

микро-ЭВМ 1 <-- --> переключатель <-- --> микро-ЭВМ 2
Обращение в UNIX или из UNIX в зависимости от getty

микро-ЭВМ 2 <-- --> переключатель <-- --> микро-ЭВМ 1
Обращение в UNIX или из UNIX в зависимости от getty

микро-ЭВМ 2 --> переключатель --> главная машина
Зарегистрироваться в качестве удаленного терминала

главная машина <-- переключатель <-- микро-ЭВМ 1
Зарегистрироваться с удаленного терминала

главная машина <-- переключатель <-- микро-ЭВМ 2
Зарегистрироваться с удаленного терминала

***


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

    * ГЛАВА 9. Администрирование и безопасность *




ОБЯЗАННОСТИ И ОТВЕТСТВЕННОСТЬ АДМИНИСТРАТОРА
ПОДДЕРЖКА БЕЗОПАСНОСТИ В СИСТЕМЕ
ТИПИЧНЫЕ ПРОБЛЕМЫ БЕЗОПАСНОСТИ

access показ всех беспарольных входов в систему
chkset проверка наличия в системе файлов с
разрешенной установкой идентификатора
пользователя или группы
suw отслеживание нарушителей по протокольному
файлу команды su



    АДМИНИСТРИРОВАНИЕ И БЕЗОПАСНОСТЬ




    ЗАЧЕМ НАМ ИЗУЧАТЬ АДМИНИСТРИРОВАНИЕ


-----------------------------------

Вашу карьеру в системе UNIX в качестве ученика (стать бы поско-
рее мастером!) можно представить себе в виде трех ступеней квалифика-
ции. Первая ступень - посвящение в работу системы UNIX в целом, осо-
бенно изучение ее сердцевины - файловой системы. Первые три главы
заложили этот фундамент и предоставили практические инструментальные
средства для обслуживания системы. Вторая ступень мастерства - под-
держка вашей собственной работы и персональной среды - рассматривает-
ся в главах с четвертой по шестую. В главах 7 и 8 более подробно
рассматриваются два специальных аспекта практической работы с систе-
мой UNIX - устройства и коммуникации.
Теперь мы готовы достичь третьей ступени мастерства - курировать
работу самой системы, что более прозаически называется системным ад-
министрированием.
Если вы в настоящий момент такой пользователь, который занимает-
ся программированием, или если вы все время работаете системным прог-
раммистом, то вас может удивить, зачем вам становиться на точку зре-
ния системного администратора и овладевать его основными
инструментами работы. На это имеется две серьезные причины: знание и
необходимость.
Системное администрирование требует близкого знакомства с тем,
где и что находится в системе, и понимания взаимосвязи конкретного
процесса с системой в целом. Программисты стремятся нахвататься све-
дений о чудесах и результатах таинственных команд и о всяческих хит-
ростях, которые они считают полезными, но зачастую они не хотят тра-
тить время на знакомство с системой UNIX в целом. Мы бы хотели
сагитировать вас на более систематическое изучение системы UNIX с той
целью, чтобы вы могли открыть для себя новые кладовые знаний. Вот по-
чему на протяжении данной книги мы создавали инструментальные средс-
тва, которые не только делают полезные вещи, но и помогают вам изу-
чать саму систему.
Необходимость знать администрирование становится ощутимой, когда
вы обнаруживаете, что вам вдруг задали работу системного администра-
тора или администратор ушел в отпуск, что пользователи выстроились
возле ВАШЕГО стола в ожидании помощи, поскольку вас считают признан-
ным авторитетом. Другой причиной возникновения необходимости может
быть то, что вы стали безраздельным хозяином вашей собственной микро-
ЭВМ с системой UNIX и хотите все установить и поддерживать по своему
вкусу. Взгляните на такую необходимость администрирования как на воз-
можность накопить обширные и доскональные знания о UNIX, которые мо-
гут сослужить вам добрую службу в вашей будничной работе с компьюте-
ром.
Быть мастером UNIX - дело чести и технической грамотности. Пыта-
ясь удовлетворить требованиям необходимости, мастера UNIX учатся пос-
певать за потоком необходимых им знаний. Мастера UNIX не только хоро-
шо играют, но и просчитывают игру на один ход вперед.


    НЕКОТОРЫЕ НАБЛЮДЕНИЯ ПОСВЯЩЕННОГО В АДМИНИСТРИРОВАНИЕ


-----------------------------------------------------

Положение системного администратора таково, что требует более
широкого понимания системы, чем необходимо пользователю или даже
программисту, и в связи с этим большей ответственности. Способность
всех, кто не сильно знает UNIX, выполнить свою работу, зависит от
способности администратора поддерживать работоспособность системы,
предвидя и разрешая проблемы до того, как они станут опасными.
Одним из наиболее важных вопросов администрирования является бе-
зопасность. Сведения о безопасности, представленные здесь, были на-
коплены в результате работы с администраторами, работы в качестве ад-
министратора и иногда необходимости работы при наличии несогласованно
действующих администраторов.
Помимо безопасности, рассмотрены некоторые из более общих вопро-
сов деятельности администратора. Немногие руководства и книги учат,
как быть администратором. Эти навыки в основном приходят с опытом.
Ваша конфигурация системы, потребности пользователей и приоритеты все
вместе оказывают влияние на то, как вы справляетесь с административ-
ными задачами. Мы поможем вам показом инструментальных средств и трю-
ков, рассказом историй о ловушках и капканах и рассмотрением различ-
ных подходов, работающих в реальной практике.


    АДМИНИСТРАТИВНЫЕ ОБЯЗАННОСТИ


----------------------------

В большинстве больших компьютерных систем администраторы весьма
уважаемые люди. Они отвечают за поддержание работоспособности вычис-
лительной системы 24 часа в сутки, наращивание ее в случае необходи-
мости, помощь пользователям в разрешении их проблем, патрулирование и
обеспечение безопасности. Администрирование - это фактически несколь-
ко разных работ в одной. Мы собираемся подробно рассмотреть каждую из
этих областей, а затем предложить помощь и инструментальные средства
для овладения администрированием.


    ПОДДЕРЖКА РАБОТОСПОСОБНОСТИ СИСТЕМЫ



Поддержка работоспособности системы - приоритет номер один. Это
означает нечто большее, чем просто избегать сокрушительных системных
крахов, хотя важность их недопущения очевидна. Обеспечение работоспо-
собности системы требует также профилактических мер. Одно из лучших
занятий для вас после того, как вы завершите первое прочтение данной
книги,- вернуться в ее начало и рассмотреть изложенные в ней идеи и
инструментальные средства с точки зрения администратора. Например,
рассмотрение того, как правильно реализовать резервное копирование
файлов и сборку мусора (см. главу 3), может помочь предотвратить сис-
темные крахи, вызванные условиями переполнения. Если же крах все-таки
произойдет, то такое рассмотрение позволит вам восстановить все дан-
ные настолько быстро и полно, насколько это возможно.


    УЛУЧШЕНИЕ СИСТЕМНЫХ ВОЗМОЖНОСТЕЙ



По мере того, как все больше и больше людей эксплуатируют систе-
му, требуется все больше ресурсов, но вы можете также найти способы
использования имеющихся ресурсов с большей эффективностью. Разрабаты-
вая способы повышения производительности системы, вы найдете для себя
много полезного в инструментальных средствах, представленных в главе
3. В системе UNIX редко хватает принтеров, дисковых устройств, после-
довательных портов, сетевого оборудования и т.п., но более эффектив-
ное применение может помочь решить те же задачи без добавления новых
ресурсов.
По всей видимости, наиболее важным ресурсом является время цент-
рального процессора. Посадите тридцать пользователей в системе, расс-
читанной на двадцати четырех - и вы сразу почувствуете нехватку про-
цессорного времени. В работу администратора входит поддержка текущих
ресурсов, а также планирование роста системы на будущее. Поэтому тре-
буется, чтобы вы знали типичные раскладки использования вашей систе-
мы, знали, где могут возникнуть "узкие места", как эффективно распре-
делить имеющиеся ресурсы и какие способы наращивания системы могут
быть наиболее эффективными по стоимости. Некоторую полезную информа-
цию можно извлечь путем "статического" инспектирования файловой сис-
темы с помощью средств, представленных в главе 2. Более динамичную
картину эксплуатации системы вы можете получить, применяя команду ps,
чтобы увидеть, какие процессы активны в настоящее время, и применяя
команду w (в системе Berkeley), которая выдает статистику загрузки
системы и организации очередей.


    ПОМОЩЬ ПОЛЬЗОВАТЕЛЯМ



Пользователи системы - несомненно, имеют высокий приоритет. Все
в системе должно быть организовано так, чтобы они могли выполнить
свою работу. Администратор должен следить за тем, чтобы все разумные
(и некоторые неразумные) запросы пользователей удовлетворялись.
В обслуживание потребностей пользователей может входить монтиро-
вание лент и других файловых систем, резервное копирование файлов,
отладка коммуникационных линий и заготовка персональных записей для
пользователей в привилегированных файлах типа crontab и inittab. (Эти
два файла дают пользователям больше гибкости в организации их среды и