Новые книги

В основу книги легли материалы занятий, апробированные автором в стенах факультета переподготовки специалистов Санкт-Петербургского государственного политехнического университета. Рассмотрены основы работы в сети Интернет, поиск информации, работа с электронной почтой. Описано, как общаться через интернет-форумы, чаты, блоги и социальные сети («ВКонтакте», «Одноклассники»), вести телефонные разговоры через Skype, обмениваться сообщениями через Twitter и др. Даны рекомендации по использованию Интернета при решении бытовых вопросов: бронирование номера в гостинице, заказ билетов, получение госуслуг, покупка товаров и др. Уделено внимание развлечениям и самообразованию: посещение интернет-музеев и библиотек, обучение через Интернет, просмотр телевизионных передач и видеороликов «YouTube» и др. Рассмотрены вопросы безопасности при работе в сети.
Журналист Дэвид Оуэн рассказывает историю изобретения, без которого немыслима жизнь современного офиса – копировального аппарата. Уникальный случай: он был создан усилиями практически одного человека. Поразительное упорство изобретателя Честера Карлсона принесло ему славу второго Гутенберга и избавило тысячи людей на планете от изнурительного переписывания документов. Автор прослеживает путь Честера от первого ксерографического аппарата, изготовленного в 1938 году, до создания гигантской корпорации Xerox, чье название стало синонимом высочайшего качества и скорости копирования. Это захватывающее повествование о борьбе за реализацию грандиозного открытия, которое журнал Fortune позднее назвал «самым успешным товаром, который когда-либо продавался в Америке».

Управление с помощью команд shell



5.2. Управление с помощью команд shell

5.2.1. Управляющие файлы.

5.2.2. Поддержка файлов базы данных

5.2.3. Управляющие задания.

5.2.4. UUCP и cron.

5.2.5. Элементы Inittab .
5.2.6. Имена регистрации и пароли UUCP

В этой части рассматриваются файлы и задания, связанные с действием базовых сетей. Величина усилий, затрачиваемых на управление базовыми сетями зависит от количества "потока (информационного) обмена", который входит или выходит из вашего компьютера. Средний компьютер требует небольшого - если вообще оно требуется - вмешательства автоматических функций доводки. Компьютеры с большим объемом могут потребовать больше внимания при возникновении трудностей.

5.2.1. Управляющие файлы

5.2.1.1. TM - временный файл данных

Этот файл данных создается под управлением программы подкачки (т.е. var/spoll/uucp/XXXX) при получении файла из другой машины. Каталог "XXXX" имеет тоже самое имя, что и удаленная машина, которая посылает этот файл. Имя временного файла данных имеет следующий формат:

	TM pid.ddd

где pid - ID процесса;
ddd - число из трех цифр, начинающееся с нуля.

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

5.2.1.2. LCK - файл блокировки

Файл блокировки создается в каталоге /var/spool/locks для каждого из используемых устройств. Файл блокировки предупреждает дублирование разговоров и многочисленные попытки использовать одно и то же устройство вызова. Полное имя файла имеет следующий формат:

	LCK..str

где str - имя устройства или компьютера.

Файл можно оставить в каталоге spool при срывах программ (обычно в случаях аварийного отказа компьютера). Файл блокировки будет игнорироваться (использоваться повторно) после того, как родительский процесс уже не будет являться активным.

5.2.1.3. Рабочий файл (C.)

Рабочий файл создается в каталоге программ подкачки, когда работа (передача или выполнение дистанционных команд) поставлена в очередь для передачи в удаленный компьютер. Имя имеет следующий формат:

	C.sysnxxxx

где sys - имя удаленного компьютера;
n - символ ASCII, представляющий градацию (приоритет) работы;
xxxx - 4-х символьный номер последовательности выполнения заданий, присвоенный с помощью UUCP.

Рабочий файл содержит следующую информацию:

  • полное имя файла, который отсылается или запрашивается;
  • полное имя пункта назначения или ~user/filename;

Примечание. Символ ~ - это сокращенная запись /var/spool/uucppublic, которую необходимо включить, если полное имя не используется.

  • имя регистрации пользователя;
  • список параметров;
  • имя соответствующего файла данных в каталоге spool (если были указаны параметр -c или -p, будет использоваться фиктивное имя [D.0];
  • биты режима исходного файла;
  • имя регистрации удаленного пользователя, о котором необходимо уведомить при завершении передачи.

5.2.1.4. Файл данных (D.)

Файл данных создается, когда он указывается в командной строке для копирования исходного файла в каталог программ подкачки. Имя файла имеет следующий формат:

	D.sysnxxxx

где sys - имя удаленного компьютера;
n - символ, представляющий градацию (приоритет) работы;
xxxx - номер последовательности выполнения заданий из 4 символов, присваиваемых с помощью uucp.

За номером последовательности выполнения заданий может следовать номер подзадания, который используется, когда создается несколько D. файлов для рабочего (C.) файла.

5.2.1.5. Файл выполнения (X.)

Файл выполнения создается в каталоге spool до выполнения удаленных команд. Имя файла имеет следующий формат:

	X.sysnxxxx

где sys - имя удаленного компьютера;
n - символ, представляющий градацию (приоритет) работы;
xxxx - номер последовательности выполнения заданий из 4 символов, присваеваемых с помощью UUCP.

Файл выполнения содержит следующую информацию:

  • имя регистрации пользователя и имя компьютера;
  • имя файла (-ов), необходимых для выполнения;
  • ввод, используемый в качестве стандартного ввода в символьную строку команд;
  • имя компьютера и файла, которые получают вывод выполнения команды;
  • символьная цепочка команд;
  • строки параметров для возврата запросов о состоянии.

5.2.1.6. Машинный файл протоколов

Файл протоколов создается для каждой удаленной машины, с которой осуществляет связь ваш компьютер. Каждая машина может иметь четыре файла протоколов, один для запросов uucico, uuxqt, uux и/или uucp, в зависимости от типа установленной связи. Файлы протоколов хранятся в каталоге /var/spool/uucp/.Log. Каждый день эти файлы объединяются и хранятся в каталоге /var/spool/uucp/.Old, когда выполняется uudemon.cleanup. Объединенные файлы хранятся три дня, прежде чем их удалят. Если возникает проблема из-за отсутствия свободного пространства, администратор может сократить количество дней сохранения файлов, если модифицирует командный файл uudemon.cleanup.

5.2.2. Поддержка файлов базы данных

База данных, которая поддерживает базовые сети, состоит из нескольких файлов поддержки. Эти файлы поддержки содержат информацию, требующуюся "демонам" uucico и uuxqt в ходе передач файлов или выполнения удаленных команд. Все файлы поддержки помещаются в каталоге /etc/uucp.

5.2.2.1. Файл устройств

Файл Devices (/etc/uucp/Devices) содержит информацию для всех устройств, которые могут использоваться для установки связи с удаленной машиной. Он содержит информацию для обоих блоков автоматического вызова, прямых соединений и сетевых соединений. Хотя есть условия использования устройств нескольких типов, AT&T поддерживает только модемы и прямые соединения.

Этот файл работает с файлами Dialers, Systems и Dialcodes. Не лишним будет ознакомиться с этими файлами, прежде чем попытаться понять файл Devices.

Каждый элемент файла Devices имеет следующий формат:

	Type Line Line2 Class Dialer-Token-Pairs (DTP)

где каждое поле (отделенное пробелом) определяется в нижеприводимых абзацах.

Type: Это поле может содержать одно из пяти служебных слов:

Direct
указывает на прямое соединение с другим компьютером (только для соединений cu).
ACU
указывает, что соединение с удаленным компьютером осуществляется через блок автоматического вызова (модем автоматического набора номера). Этот модем можно подсоединять или прямо к компьютеру или опосредованно через коммутатор локальной сети (LAN).
Network
указывает, что соединение осуществляется через переключатель LAN, где Network заменяется на micom или develcon. Эти два коммутатора LAN - единственные, которые содержат командные файлы вызывающей программы в файле Dialers. Другие переключатели можно использовать, если командные файлы вызывающей программы созданы и помещены в файл Dialers.
Modem Control
приводит к открытию устройства с помощью множества O_NDELAY (когда для открытия не надо дожидаться несущей). После открытия O_NDELAY стирается.
System Name
указывает прямое соединение с конкретной машиной, где System-Name заменяется на имя этого конкретного компьютера. Такая схема наименования используется для сообщения того, что линия, связанная с этим элементом Devices, предназначена для конкретной машины.

Служебное слово, используемое в поле Type, согласовывается с третьим полем элементов файла Systems следующим образом:

	Devices: ACU tty01,M - 1200 penril
	Systems: eagle Any ACU 1200 3-2-5-1 ogin: nuucp ssword:
							Oakgrass

Line: Это поле содержит имя устройства линии (порта), связанных с элементом Devices. Например, если модем автоматического набора для конкретного элемента был бы подсоединен к линии /dev/tty01, имя устройства было бы tty01. ,M указывал бы, что используется управление модема.

Line2: Если в поле Type было бы использовано служебное слово ACU, а ACU - это устройство набора номера 801 типа, это поле содержало бы имя устройства наборного устройства 801. Ситуация, когда одна линия подведена к модему, а другая к этой конфигурации, встречается редко; это поле обычно содержит "-" в качестве символа-заполнителя.

Class: Если используется служебное слово ACU, это может означать просто скорость устройства. Оно может содержать букву и значение скорости (например C1200, D1200) для различения классов наборных устройств (centrex или DIMENSION PBX). Это необходимо потому, что в некоторых учреждениях могут использоваться несколько типов телефонной сети. Одна сеть может служить только для внутренней связи, а другая - обрабатывать внешние линии связи. Следовательно, необходимо различать линии (линию), используемые для внутренней связи, и линию (линии) внешней связи. То же самое различие должно быть сделано в файле Systems, потому что выполняется согласование с четвертым полем элементов файла Systems следующим образам:

	Devices: ACU tty01,M - D1200 penril
	Systems: eagle Any ACU D1200 3-2-5-1 ogin: nuucp ssword:
							Oakgrass

Некоторые устройства могут использоваться с любой скоростью, и тогда в поле Class можно использовать служебное слово Any. Если используется Any, линия будет согласовывать любое значение скорости, запрашиваемое в элементе Systems. Если это поле Any и поле класса Systems - тоже Any, скорость по умолчанию будет 1200 бит/с.

Dialer-Token-Pairs: Это поле содержит пары устройств набора и лексем. Часть "устройства набора" может представлять собой модем автоматического набора номера или "прямые" устройства для прямой связи. Часть "лексема" может подаваться сразу же после устройства набора; или если она отсутствует, ее можно взять из файла Systems. Это поле имеет следующий формат:

	dialer-token dialer-token

где последняя пара может присутствовать или отсутствовать в зависимости от связанного с ней устройства (набора номера). В большинстве случаев последняя пара будет содержать только устройство набора, а лексема разыскивается в поле Phone элемента Systems. Поле DTP может иметь структуру, созданную четырьмя разными способами, в зависимости от устройства, связанным с элементом:

  1.  
  2. Если устанавливается прямая связь с конкретным компьютером, поле DTP соответствующего элемента будет содержать служебное слово "direct". Это истинно для обоих типов элементов прямой связи - Direct и Systems-Name (обратитесь к части, где рассматривается поле Type).
  3. Если модем автоматического набора номера подсоединяется прямо к порту компьютера, поле DTP соответствующего элемента Devices будет иметь только одну пару. Пара обычно представляет имя модема. Это имя используется для согласования конкретного элемента Devices с элементом в файле Dialers. Следовательно, это устройство набора номера должно согласовываться с первым полем элемента файла Dialers следующим образом:
    	Devices: ACU tty01,M - 1200 ventel
    	Dialers: ventel =&-% "" \M\r\p\r\c $ <K\T%%\r>\c ONLINE!\m
    

    Обратите внимание, что в поле DTP элемента Devices присутствует только устройство набора номера (ventel). Это означает, что лексема, которую необходимо передать в устройство набора (в данном случае - номер телефона) берется из поля Phone элемента файла Systems.

  4. Если модем автоматического набора номера соединяется с локальной сетью (LAN), компьютер сначала должен обратиться к коммутатору, а коммутатор подсоединится к модему автоматического набора. Этот тип элемента будет иметь две пары. Часть устройства набора каждой пары (пятое и седьмое поля элемента) используется для согласования элементов в поле Dialers следующим образом:
    	Devices: ACU tty01 - 1200 develcon vent ventel
    	Dialers: ventel =&-% "" \M\r\p\r\c $ <K\T%%\r>\c ONLINE!\m
    	Dialers: develcon "" "" \pr\ps\c est:\077 \E\D\e \007
    

    В первой паре develcom - это устройство набора номера, а vent - лексема, которая передается в коммутатор Develcon, чтобы сообщить какое устройство (модем ventel) должно подсоединяться к компьютеру. Эта лексема будет уникальной для каждого коммутатора LAN, так как каждый коммутатор может устанавливаться по разному. После подсоединения модема ventel выполняется обращение ко второй паре, где ventel - это устройство набора номера, а лексема разыскивается в файле Systems.

  5. Если машина, с которой вы хотите устанавливать связь, находится на том же коммутаторе LAN, что и ваш компьютер, то сначала ваш компьютер должен обратиться к коммутатору, а затем коммутатор может подсоединиться к другой машине. В таком типе элемента есть только одна пара. Часть устройства набора используется для согласования с элементом Dialers следующим образом:
    	Devices: develcon tty01 - 1200 develcon \D
    	Dialers: develcon "" "" \pr\ps\c est:\077 \E\D\e \007
    

    Как показано "token" (лексема) это левый пробел. Он является указанием того, что она разыскивается в файле Systems. Элемент файла Systems для этой конкретной машины будет содержать лексему в поле Phone, которое обычно резервируется для телефонного номера машины (смотрите главу "Файл Systems" поле Phone). Этот тип DTP содержит символ перехода (\D), который гарантирует, что содержимое поле Phone не будет интерпретироваться как действительный элемент в файле Dialcodes. В конце поле DTP могут появиться два символа перехода:

\T Указывает, что поле Phone (лексема) должно преобразовываться с помощью файла Dialcodes. Этот символ перехода нормально размещается в файле Dialers для каждого командного файла, связанного с модемом автоматического набора (penril, ventel и т. д.). Следовательно, преобразование не будет осуществляться до тех пор, пока обращение идет к командному файлу программ вызова.
\D Указывает, что поле Phone (лексема) не должно преобразовываться с помощью файла Dialcodes. Если в конце элемента Devices символ перехода не указывается, \D допускается (по умолчанию). \D также используется в файле Dialers с элементами, связанными с коммутаторами LAN (develcon и micom).

5.2.2.2. Файл устройств набора номера

Файл Dialers (/etc/uucp/Dialers) используется для указания начального квитирования установления связи, которое должно происходить на линии, прежде чем она будет готова к передаче данных. Такое начальное квитирование обычно представляет собой последовательность символьных строк ASCII, которые преобразуются и ожидаются, а часто и используются для набора телефонного номера с помощью устройства набора ASCII (такого как модем AT&T 2212C Modem). Пятое поле в элементе файла Devices используется в качестве индекса для входа в поле Dialers. Здесь предпринята попытка согласовать поле Devices с первым полем каждого элемента Dialers. Кроме того, каждое нечетное поле Devices, начиная с седьмой позиции, используется как индекс входа в файл Dialers. Изменения следует вносить с помощью одного из редакторов (ed или vi). Если согласование выполнено успешно, элемент Dialers интерпретируется для осуществления переговоров устройства набора номеров. Первое поле согласуется с пятым и дополнительными нечетными полями в файле Devices. Второе поле используется как символьная строка преобразования (первый символ каждой пары символов преобразуется во второй символ в паре). Это обычно используется для преобразования "=" и "-" в те символы, которые требует устройство набора номера для "ожидания тональной посылки номера" и "паузы". Оставшиеся поля - это символьные строки "ожидание - отсылка". Типичные примеры элементов файла Dialers:

	att4000 =,-,  "" \M\dat\r\c OK\r \EATDT\T\r\c CONNECT \m\c
	penril  =W-P  "" \d > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP
								> 9\c OK
	ventel   =&-% ""\M\r\p\r\c $ <K\T%%\r>\c ONLINE!\m
	hayes  =,-, "" \M\dAT\r\c OK\r \EATDT\T\r\c CONNECT\m\c
	rixon  =&-% "" \d\r\r\c $ s9\c )-W\r\ds9\c-) s\c : \T\r\c $
								9\c LINE
	vadic  =K-K "" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e
								\r\c LINE
	develcon "" "" \pr\ps\c est:\007 \E\D\e \007
	micom  ""   "" \s\c NAME? \D\r\c GO
	direct

Следующий далее список показывает примеры значений некоторых из символов перехода (тех, которые начинаются с "\"), используемых в файле Dialers:

\p паузы (приблизительно 1/4 - 1/2 сек.);
\d задержки (приблизительно 2 секунды);
\D номер телефона или лексема без преобразования Dialcodes;
\M не устанавливает управление модема;
\T номер телефона или лексема с преобразованием Dialcodes;
\K вставляет BREAK;
\E разрешает эхо проверку;
\e запрещает эхо проверку;
\r возврат каретки;
\c нет новой строки;
\m восстанавливает управление модема;
\n посылает новую строку;
\nnn посылает восьмиричное число.

Дополнительные символы перехода перечислены в части, где рассматривается файл Systems. Элемент penril в файле Dialers выполняется следующим образом. Сначала, преобразуется аргумент телефонного номера, заменяя любой "=" на "W" (ждите тональной посылки набора номера) и заменяя любой "-" на "P" (пауза). Квитирование установления связи, данное остальной частью строки работает следующим образом:

"" ничего не ожидает;
\d задерживает на 2 секунды;
> ожидает ">";
s\p9\c посылает "s", делает паузу 1/2 секунды, посылает "9", не посылает окончания новой строки;
) -W\p\r\ds\p9\c-) ждет ")". Если он не получен, обрабатывает символьную строку между "-" следующим образом. Посылает "W", делает паузу, посылает возврат каретки, посылает "9" без новой строки, а затем ждет ")";
y\c посылает "y" без новой строки;
: ждет ":";
\M не устанавливает управление модема (CLOCAL);
\m восстанавливает управление модема. Обычно, CLOCAL устанавливается на срок разговора устройства набора номера, затем стирается (тогда uucico, cu или ct будут выявлять опущенные строки) после подсоединения к удаленной системе;
\E\TP разрешает эхо-проверку. (Начиная с этой точки, каждый раз при передаче символа, он будет ждать получения символа прежде чем выполнить еще что-нибудь). Затем посылает номер телефона, за которым следует символ паузы (P). \T означает необходимость взять телефонный номер, переданный как аргумент, и выполнить преобразование Dialcodes и преобразование функции модема, указанное полем номер 2 этого элемента;
> ждет ">";
9\c посылает "9" без новой строки;
OK ждет символьную строку "OK".

5.2.2.3. Файл систем

Файл Systems (/etc/uucp/Systems) содержит информацию, необходимую "демону" uucico для осуществления связи с удаленной машиной. Каждый элемент в файле представляет машину, которую можно вызывать с помощью компьютера. Только тем машинам, которые перечислены в файле Systems, разрешается устанавливать связь с вашим компьютером через базовую сеть (UUCP), если выполняемые разрешения для remote.unknown не изменяются, разрешая связь с другими машинами (смотрите "remote.unknown"). Для любой конкретной машины может присутствовать несколько элементов. Дополнительные элементы представляют альтернативные пути установки связи, которые будут проводиться в последовательном порядке.

Каждый элемент в файле Systems имеет следующий формат:

	System-Name Time Type Class Phone Login

где каждое поле определяется в нижеприводимых абзацах.

System-name: Это поле содержит имя узла удаленной машины.

Time: Это поле представляет собой символьную строку, которая указывает день недели и время дня, когда можно обращаться к удаленной машине. Часть, относящаяся к указанию дня, может быть списком, содержащим следующее:

	Su Mo Tu We Th Fr Sa

Wk: Для любого дня недели.

Any: Для любого дня.

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

Время должно включать диапазон значений времени, такой как 0800-1230. Если время не указывается, любое время дня допускается для обращения. Вы можете использовать диапазон значений времени в размахе 0000. Например, 0800-0600 означает, что все значения времени, не входящие в диапазон между 6 утра и 8 часами вечера, допускаются. Имеется необязательное подполе для указания минимального времени (в минутах) до повторной попытки после неудачи. Разделителем подполя является точка с запятой (;). Например, "Any ;9" интерпретируется как обращение в любое время, но подождите хотя бы 9 минут, прежде чем предпринять еще одну попытку после отказа.

Type: Это поле содержит тип устройства, которое следует использовать для установления линии связи с удаленной машиной. Файл Devices отыскивается для перечисленного типа устройства, и найденное устройство используется, чтобы установить связь (если оно имеется в наличии). В этом поле могут появляться следующие служебные слова:

ACU -
это служебное слово указывает, что связь с удаленным компьютером устанавливается с помощью блока автоматического вызова (модем автоматического набора номера). Этот модем может подсоединяться прямо к компьютеру или опосредованно через коммутатор локальной сети (LAN);
Network -
это служебное слово указывает, что связь устанавливается через коммутатор LAN, где Network заменяется на micom или develcon. Эти два коммутатора LAN являются единственными, содержащими командные файлы программы вызова в файле Dialers. Другие коммутаторы можно использовать, если командые файлы программы вызова созданы и помещены в файл Dialers;
System-Name -
это служебное слово указывает на прямую связь с конкретной машиной, где System-Name заменяется на имя конкретного компьютера (должно совпадать с именем поля).

Служебное слово, используемое в этом поле, согласуется с первым полем элементов файла Devices следующим образом:

	Systems: eagle Any ACU D1200 3-2-5-1 ogin: nuucp ssword:
							Oakgrass
	Devices: ACU tty01 - D1200 penril

Class: Это поле используется для указания скорости передачи в устройстве, используемого в установлении линии связи. Оно может включать букву и скорость (например, C1200, D1200), чтобы различить классы устройств набора номера (смотрите описание поля Class, в части "Файл устройств"). Некоторые устройства могут использоваться при любой скорости, то есть можно использовать служебное слово "Any". Это поле необходимо согласовать с полем Class в соответсвующем элементе Devices следующим образом:

	Systems: eagle Any ACU D1200 3-2-5-1 ogin: nuucp ssword:
								Oakgrass
	Devices: ACU tty01 - D1200 penril

Phone: Это поле используется, чтобы обеспечить номером телефона (лексемой) удаленной машины автоматические устройства набора номера (коммутаторы LAN). Номер телефона составлен из необязательного буквенного сокращения и числовой части. Сокращение должно быть одним из тех, что перечислены в файле Dialcodes. В этой символьной строке знак равенства (=) просит ACU подождать вторичной тональной посылки устройства набора номера, прежде чем набрать оставшиеся цифры. Дефис в строке (-) дает команде ACU сделать 4-секундную паузу, прежде чем набрать следующую цифру.

Если ваш компьютер подсоединен к коммутатору LAN, вы можете обратиться к другим машинам, которые подсоединены к этому же коммутатору. Элементы Systems для этих машин не будут иметь телефонного номера в поле Phone. Вместо него это поле будет содержать "лексему", которую необходимо передать в коммутатор, чтобы он знал с какими машинами компьютер хочет установить связь. Соответствующий элемент Devices должен иметь \D в конце, чтобы гарантировать что это поле не преобразуется с помощью файла Dialcodes. Для прямых линий связи поле телефонного номера игнорируется. В качестве структурного нуля следует использовать "-".

Login: Это поле содержит информацию о регистрации, заданную в виде последовательности полей и подполей следующего формата:

	[expect send]...

где expect - это символьная строка, которую получают;
send - это символьная строка, которую посылают после получения строки expect.

Ожидаемое (expect) поле может состоять из подполей следующего вида:

	expect[-send-expect]...

где send отсылается, если предыдущая expect не считана должным образом, а expect, следующая за этой send, является следующей ожидаемой символьной строкой.

Например, при "login--login" UUCP будет ожидать "login". Если UUCP получает "login", она перейдет к следующему полю. Если она не получает строку регистрации (login), она отошлет "ничего" (nothing), за которым последует новая строка, а затем будет искать строку регистрации вновь. Если изначально не ожидается получения каких-либо символов из удаленной машины, следует в первом ожидаемом поле использовать символы " " (нулевая строка). Обратите внимание, что вслед за всеми посылаемыми полями будет посылаться новая строка, если только строка send не завершается \c.

Несколько символов перехода заставляют выполнять специфические действия, если они являются частью символьной строки при выполнении последовательности регистрации. Нижеприводимые символы перехода используются в осуществлении связи UUCP:

\N посылает нулевой символ;
\b посылает символ возврата на одну позицию;
\c если стоит в конце строки, подавляет новую строку которая нормально отсылается. В противном случае игнорируется;
\d задерживает на две секунды отсылку или считывание новых символов;
\p делает паузу приблизительно 1/4 - 1/2 секунды;
\n посылает символ новой строки;
\r посылает возврат каретки;
\s посылает символ пробела;
\t посылает символ метки табуляции;
\\ посылает символ \;
EOT посылает символ EOT (фактически новая строка EOT посылается дважды);
BREAK посылает символ разъединения;
\ddd преобразует восьмеричные цифры (ddd) в один символ и посылает этот символ.

5.2.2.4. Файл Dialcodes

Файл кодов набора номеров - Dialcodes (/etc/uucp/Dialcodes) содержит сокращения кодов набора номеров, используемых в поле Phone файла Systems. Каждый элемент имеет следующий формат:

	abb dial-sed

где abb - сокращение, используемое в файле Systems (поле Phone);
dial-seq - последовательность набора номера, которая передается в устройство набора номера при обращении к конкретному элементу Systems.

Элемент

	jt 9=847-

будет устанавливаться для работы с полем Phone в файле Systems, например в виде jt7867. Когда встречается элемент содержаший jt7867, в устройство набора следует послать последовательность 9=847-7867.

5.2.2.5. Файл Permission

Файл разрешений - Permission (/etc/uucp/Permission) используется для указаний разрешений, которые удаленные машины имеют в отношении регистрации, доступа к файлам и выполнения команд. Параметры обеспечиваются, чтобы ограничить возможности запрашивания файлов и получения файлов, организованных в очередь, по местному абонентскому пункту. Кроме того, в наличии есть параметр для указания команд, которые удаленный абонентский пункт может выполнить на локальной машине. Изменения следует вносить, используя один из редакторов (vi или ed).

Как создается структура элементов.

Каждый элемент представляет собой логическую строку с физическими строками, завершающимися символами \, указывающими продолжение. Элементы составлены из параметров, ограниченных пробелами. Каждый параметр - это пара имя/значение. Он состоит из имени параметра, за которым следует "=" и значения. Обратите внимание, что использование пробела в пределах присваивания параметра запрещается. Строки комментария начинаются с "#", и они занимают всю строку до символа новой строки. Пустые строки игнорируются. Есть два типа элементов Permissions:

LOGNAME -
указывает разрешения, которые действуют, когда удаленная машина регистрируется (обращается) в вашем компьютере;
MACHINE -
указывает разрешения, которые действуют, когда ваш компьютер регистрируется (обращается) в удаленной машине.

Элементы LOGNAME будут содержать параметр LOGNAME, а элементы MACHINE - параметр MACHINE.

При использовании файла Permissions, чтобы ограничить уровень доступа, предоставляемый удаленным машинам, необходимо принять во внимание следующие моменты:

  1. Все ID регистрации, используемые удаленными машинами для регистрации в линиях связи типа UUCP, должны появляться в одном и только одном элементе LOGNAME.
  2. Любой абонентский пункт, который вызывается, и чье имя не появляется в элементе MACHINE, будет иметь следующие разрешения/ограничения по умолчанию:
    • локальные запросы отсылки и получения будут выполняться;
    • удаленная машина может посылать файлы в каталог /var/spool/uucppublic вашего компьютера;
    • команды, посланные из удаленной машины, для выполнения на вашем компьютере, должны представлять собой одну из команд по умолчанию, обычно rmail.

Параметры.

Ниже приводятся детали каждого параметра, указывающие как они используются и их значения по умолчанию.

Запрос

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

Символьная строка

	REQUEST=yes

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

Символьная строка

	REQUEST=no

указывает, что удаленная машина не может сделать запрос на получение файлов из вашего компьютера. Символьная строка "no" является значением по умолчанию. Параметр REQUEST может появляться или в элементе LOGNAME (удаленная машина обращается к вашей), или в элементе MACHINE (вы обращаетесь к удаленной машине).

Когда удаленная машина обращается к вашему компьютеру и выполняет свою работу, она может попытаться выполнить работу, для которой ваш компьютер уже организовал очередь. Параметр SENDFILES указывает может или нет ваш компьютер отослать работу, организованную в очередь для удаленной машины.

Символьная строка

	SENDFILES=yes

укзывает, что компьютер может отослать работу, которая организована в очередь для удаленной машины, так как она зарегистрировалась в форме одного из имен в параметре LOGNAME. Эта символьная строка является обязательной, если компьютер находится в "пассивном режиме" по отношению к удаленной машине.

Символьная строка

	SENDFILES=call

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

Параметры READ и WRITE

Эти параметры указывают различные части файловой системы, которые команда uucico может считать или в которые может записать. Параметры READ и WRITE могут использоваться как с элементами MACHINE, так и с LOGNAME.

Значением по умолчанию для READ и WRITE является каталог uucppublic, как показано в следующей символьной строке:

	READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic

Строки

	READ=/ WRITE=/

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

Значением этих элементов является список полных имен команд, отделенных друг от друга ;. Параметр READ служит для запроса файлов, а параметр WRITE - для размещения файлов. Одним из значений должен быть префикс любого полного имени файла, входящего или выходящего. Чтобы дать разрешение на размещение файлов в /usr/news, а также в общественном каталоге, с параметром WRITE следует использовать следующие значения:

	WRITE=/var/spool/uucppublic:/usr/news

Если используются параметры READ и WRITE, все полные имена следует указать, так как полные имена к списку по умолчанию не добавляются. Например, если полное имя /usr/news было единственным указанным полным именем в параметре WRITE, то разрешение на размещение файлов в общественном каталоге будет отвергнуто.

Параметры NOREAD и NOWRITE

Параметры NOREAD и NOWRITE указывают исключения к параметрам READ и WRITE или их значения по умолчанию.

Символьные строки:

	READ=/ NOREAD=/etc WRITE=/var/spool uucppublic

всегда разрешают считывание любого файла за исключением тех, которые находятся в каталоге /etc (и его подкаталогах) и запись только в каталог /var/spool/uucppublic по умолчанию. Параметр NOWRITE действует также, как и параметр NOREAD. NOREAD и NOWRITE можно использовать и в элементах LOGNAME, и в элементах MACHINE.

Параметр CALLBACK

Параметр CALLBACK используется в элементах LOGNAME для указания того, что ни одно входное сообщение не будет выполнено, пока вызывающая система не будет отозвана обратно.

Строка

	CALLBACK=yes

указывает, что ваш компьютер должен отозвать удаленную машину обратно, прежде чем будет передан какой-либо файл.

Значение по умолчанию параметра CALLBACK это

	CALLBACK=no

Параметр CALLBACK используется очень редко. Обратите внимание, что если оба абонентских пункта установят друг для друга этот параметр на "yes", то их общение никогда не начнется.

Параметр COMMANDS

Предупреждение: Параметр COMMANDS может создать рискованную ситуацию для защиты вашей системы. Используйте его с крайней осторожностью.

Программа uux будет генерировать запросы на удаленное выполнение и организовывать их в очередь для передачи в удаленную машину. Файлы и команды посылаются для удаленного выполнения в целевую машину. Параметр COMMANDS можно использовать в элементах MACHINE для указания команд, которые удаленная машина может выполнить в вашем компьютере.

Строка

	COMMANDS=rmail

указывает команды по умолчанию, которые удаленная машина может выполнить в вашем компьютере. Если в элементе MACHINE используется какая-то символьная строка команды, команда по умолчанию будет переопределяться. Например, элемент

	MACHINE=owl:raven:hawk:dove \
	COMMANDS=rmail:rnews:lp

переопределяет COMMAND по умолчанию так, что список команд для машин owl, raven, hawk и dove будет теперь состоять из rmail, rnews и lp. Когда удаленная машина будет указывать rnews или /usr/lbin/rnews для выполняемой команды, /usr/lbin/rnews будет выполняться безотносительно к пути по умолчанию. Точно также /usr/local/lp - это команда lp, которая будет выполняться.

Включение в список значения ALL означает, что любая команда из удаленной машины, указанная в элементе, будет выполняться. Если вы используете это значение, вы даете удаленной машине полный доступ к вашему компьютеру.

Символьная строка

	COMMANDS=/usr/lbin/rnews:All:/usr/local/lp

показывает две вещи. Значение ALL может появляться в любом месте в строке, а полные имена, указанные для rnews и lp будут использоваться (вместо имен по умолчанию), если запрошенная команда не будет содержать полных имен rnews или lp.

Параметр VALIDATE следует использовать с параметром COMMAND каждый раз, когда указываются команды, создающие потенциальный риск, такие как cat и uucp. Любая команда, которая считывает или пишет файлы, создает потенциальную опасность для локальной защиты, когда она выполняется при помощи демона удаленного выполнения UUCP.

Параметр VALIDATE

Параметр VALIDATE используется с параметром COMMANDS для указания команд, создающих потенциальную опасность. Он используется, чтобы обеспечить определенную степень проверки права доступа вызывающей программы. Использование параметра VALIDATE требует, чтобы привилегированные машины имели уникальное имя регистрации и пароль для входных сообщений UUCP. Важным моментом при проверке достоверности является наличие защиты имени регистрации (пароля, связанного с элементом). Если кто-то посторонний получает эту информацию, конкретный параметр VALIDATE нельзя считать безопасным.

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

Элемент LOGNAME

	LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk

указывают, что если одна из удаленных машин собирается зарегистрироваться в вашем компьютере как eagle, owl или hawk, она должна использовать имя регистрации uucpfriend. Как легко увидеть, если внешнее устройство получает имя регистрации/пароль uucpfriend, всякая маскировка банальна. Но что должно происходить с параметром COMMANDS, который появляется в элементах MACHINE? Они связывают элемент MACHINE (и параметр COMMANDS) с элементом LOGNAME, связанным с привилегированной регистрацией. Такое связывание необходимо потому, что демон выполнения не будет функционировать, пока зарегистрирована удаленная машина. В действительности, этот процесс является несинхронным процессом, которому неизвестно из какой машины послан запрос на выполнение. Следовательно, возникает вопрос о том, как ваш компьютер узнает откуда приходят файлы выполнения.

Каждая удаленная машина имеет свой собственный spool-каталог в вашем компьютере. Эти каталоги имеют разрешение на запись, дающееся только программам UUCP. Файлы выполнения из удаленной машины помещаются в свой spool-каталог после поступления в ваш компьютер. Когда функционирует демон uuxt, он может использовать имя каталога буферизации для поиска элемента MACHINE в файле Permissions и получения списка COMMANDS; если имя машины не появляется в файле Permissions, будет использоваться список по умолчанию.

Нижеприводимый пример показывает взаимоотношение между элементами MACHINE и LOGNAME:

Пример.

	MACHINE=eagle:owl:hawk  REQUEST=yes  \
	COMMANDS=ALL  \
	READ=/  WRITE=/
	LOGNAME=uucpz  VALIDATE=eagle:owl:hawk  \
	REQUEST=yes  SENDFILES=yes  \
	READ=/  WRITE=/

Эти элементы обеспечивают неограниченные считывание, запись и выполнение команд для удаленных машин eagle, owl и hawk. Значение ALL дает удаленной машине неограниченный доступ к вашему компьютеру. Фактически к файлам, которые с помощью пользователя "uucp" (типа Systems или Devices) могут только считываться или записываться, можно обращаться, используя команды, например, такую как ed. Это значит, что пользователь одной из привилегированных машин может не только считывать, но и записывать информацию в файл Systems.

В первом элементе вы должны сделать допущение, что когда вы захотите вызвать одну из перечисленных машин, вы вызываете одну из машин: eagle, owl или hawk. Следовательно, любые файлы, помещенные в spool-каталоги машины eagle, owl или hawk, помещаются туда одной из этих машин. Если какая-то удаленная машина регистрируется и сообщает, что она одна из этих трех машин, ее файлы выполнения будут также помещаться в привилегированный spool-каталог. Вы, следовательно, должны проверить имеет ли эта машина привилегированное имя регистрации uucpz.

Элемент MACHINE для других систем

Вы, возможно, захотите указать различные значения параметров для тех машин, к которым обращается ваш компьютер, то есть и те, которые не упомянуты в указанных элементах MACHINE. Такое желание может возникнуть, если вызывается несколько машин, а множество команд время от времени изменяются. Имя OTHER (другие) используются для этого элемента в качестве имени машины и выглядит следующим образом:

	MACHINE=OTHER   \
	COMMANDS=rmail: rnews:/usr/lbin/Photo:/usr/lbin/xp

Все другие параметры, доступные элементу MACHINE, могут также устанавливаться для машин, не упомянутых в других элементах MACHINE.

Есть возможность объединить элементы MACHINE и LOGNAME в один элемент, где общие параметры остаются теми же. Например, два элемента:

	MACHINE=eagle:owl:hawk REQUEST=yes  \
		READ=/  WRITE=/
	LOGNAME=uucpz REQUEST=yes SENDFILES=yes  \
		READ=/  WRITE=/

имеют одни и те же параметры REQUEST, READ и WRITE. Эти два элемента можно объединить в один следующим образом:

	MACHINE=eagle:owl:hawk REQUEST=yes  \
	LOGNAME=uucpz SENDFILES=yes  \
		READ=/  WRITE=/

Образцы файлов Permissions

Этот первый пример представляет наиболее строгий доступ к вашему компьютеру Пример 1.

	LOGNAME=nuucp

Он показывает, что имя регистрации nuucp имеет все разрешения/запрещения по умолчанию:

  • удаленная машина может посылать только в uucppublic;
  • удаленная машина не может запрашивать получение файлов (параметр REQUEST);
  • файлы, которые организуются в очередь для удаленной машины, не будут передаваться в ходе текущего сеанса (параметр SENDFILES);
  • единственными командами, которые можно выполнить, являются команды по умолчанию.

Этот элемент сам по себе достаточен, чтобы установить линию связи с удаленными машинами, разрешая передачу файлов только в каталог /var/spool/uucppublic.

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

Пример 2.

	LOGNAME=uucpz REQUEST=yes SENDFILES=yes \
		READ=/  WRITE=/

Этот элемент размешает разрешения (ограничения) в машине, которая регистрируется как uucpz:

  • файлы можно запрашивать из вашего компьютера (параметр REQUEST);
  • файлы можно передавать в любой каталог или любой файл, который может записываться пользователем "other" (другими). Это файл/каталог, который может записываться локальным пользователем, не имеющим не личного, ни группового разрешения (параметр WRITE);
  • все файлы, считываемые пользователем "other", можно запросить (параметр READ);
  • все запросы организованные в очередь для удаленной машины, будут выполняться в ходе текущего сеанса. Это не файлы, которые предназначены для машины, которая выполнила обращение (параметр SENDFILES).
  • команды, посланные на выполнение в локальную машину, должны находиться в множестве по умолчанию.

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

Пример 3.

	MACHINE=EAGLE:OWL:HAWK:RAVEN  \
		REQUEST=yes READ=/  WRITE=/

При обращении к любым системам, данным в списке MACHINE, преобладают следующие разрешения:

  • удаленная машина может как запрашивать, так и посылать файлы (параметр REQUEST);
  • источник или пункт назначения файлов в локальной машине может находиться в любом месте файловой системы (с параметром read/write);
  • единственными командами, которые будут выполняться для удаленной машины, будут команды, находящиеся в множестве по умолчанию.

Любой абонентский пункт, к которому обращаются, если его имени нет в элементе MACHINE, будет иметь разрешения по умолчанию, как это показано в примере 1, за исключением организованных в очередь для такой машины файлов, которые будут посылаться. (Параметр SENDFILES - является единственным, который интерпретируется в элементе LOGNAME).

5.2.2.6. Файл Poll (опроса)

Файл Poll (/etc/uucp/Poll) содержит информацию по проведению опроса указанных машин. Каждый элемент в файле Poll содержит имя вызываемой удаленной машины, за которым идет символ TAB, и наконец часы, в течение которых следует обращаться к машине.

Элемент

	eagle 0 4 8 12 16 20

будет обеспечивать проведение опроса в машине eagle каждые 4 часа.

Примечание. Следует иметь в виду, что uudemon.poll фактически не осуществляет опрос, он просто устанавливает файлы работы опрашивания (IC.) в spool - каталоге, которая распознается планировщиком, запускается с помощью uudemon.hour.

5.2.2.7. Программа remote.unknown

Программа remote.unknown является командным файлом, который выполняется, когда обращается удаленный абонентский пункт, которого нет в файле SYSTEMS. Командный файл добавит имя и информацию о времени в файл /var/spool/uucp/.Admin/Foreign. Содержимое этого файла следующее:

	FOREIGN-/var/spool/uucp/.Admin/Foreign
	echo "'date': call from system $l" >>$FOREIGN

Если вы хотите разрешить использование устройств, которых нет в файле SYSTEMS, для связи через Базовую сеть, удалите разрешения на выполнение из файла remote.unknown. Например:

	chmod 444 /usr/lib/uucp/remote.unknown

Если remote.unknown является выполнимым, ваш компьютер сбросит линию, когда устройство, которого нет в файле Systems, обратится к вашей системе.

Назад | Содержание | Вперед