в системе LPRng используется аналогично одноименному файлу в системе BSD LPD. В частности, опции
lp
,
rm
и
rp
, которые обсуждались выше в данной главе, применимы как в BSD LPD, так и в LPRng. Большинство других опций также может присутствовать в обеих системах, но некоторые из них интерпретируются по-разному. Обсуждение этих различий выходит за рамки данной книги.
Системы BSD LPD и LPRng используют протокол LPD, поэтому вы можете сконфигурировать клиент LPRng для печати на сервере BSD LPD и наоборот. Подобное взаимодействие можно также
организовать с системой CUPS. Кроме того, CUPS поддерживает расширенный протокол, который может использоваться только в рамках этой системы.
Настройка сервера CUPS
Система печати CUPS, предназначенная для использования в Unix и Linux, обеспечивает чрезвычайно высокую степень гибкости. Вместо того чтобы вносить изменения в пакет BSD LPD (что по сути надо было сделать при создании LPRng), разработчики CUPS создали полностью новый набор базовых средств, поддерживающих вывод на принтер в различных системах, в том числе в Linux. Часть этих базовых средств предназначена для обеспечения совместимости, поэтому пользователи могут задавать привычные им команды для вывода данных на печать. Клиенты CUPS могут работать с серверами LPD, а клиенты LPD, в свою очередь, могут передавать задания на сервер CUPS. Кроме того, в системе CUPS реализована поддержка нового протокола IPP, который базируется на протоколе HTTP, используемом Web-серверами и броузерами. В системе CUPS можно передавать на сервер информацию о типе файла, что упрощает выбор принтера; для описания возможностей принтеров могут использоваться файлы PPD (PostScript Printer Description); средства просмотра принтеров дают возможность клиенту искать нужные принтеры в сети; при этом не требуется настройка клиентской системы для работы с конкретным устройством. При условии повсеместного применения CUPS перечисленные свойства системы существенно упростят конфигурацию как локальных, так и сетевых средств печати.
Работу с CUPS усложняет одна особенность этой системы: конфигурационные файлы существенно отличаются от файлов, используемых в системах BSD LPD и LPRng. Даже если вы хорошо знакомы с данными системами, это не поможет вам при работе с CUPS; средства ее настройки придется изучать специально. Если вы предпочитаете работать с инструментами, предоставляющими графический интерфейс, можете воспользоваться KUPS (
http://cups.sourceforge.net/kups/
) и ESP Print Pro (
http://www.easysw.com/printpro/
). CUPS также можно настраивать, пользуясь Web-броузером, для этого надо запустить броузер на локальном компьютере и обратиться по адресу
http://localhost:631
.
На заметку
Подробное описание конфигурации системы печати CUPS выходит за рамки данной книги. Предполагается, что вы уже умеете выполнять действия, необходимые для реализации минимальных возможностей локальной очереди. В данном разделе рассматриваются только опции, необходимые для настройки сетевых средств печати. Дополнительная информация о работе системы CUPS находится по адресу
http://www.cups.org/sam.html
.
Редактирование файла
/etc/cups/cupsd.conf
Работой сервера CUPS управляет файл
/etc/cups/cupsd.conf
. Поскольку система CUPS позаимствовала многие средства сервера HTTP, структура ее конфигурационного файла напоминает соответствующий файл Apache (он будет рассмотрен в главе 20). При работе CUPS также применяются другие конфигурационные файлы, в частности
/etc/cups/printers.conf
и
/etc/cups/classes.conf
, которые описывают соответственно принтеры и группы принтеров. Для редактирования обоих файлов используется инструмент
lpadmin
, а данные в файле
cupsd.conf
рекомендуется подготавливать вручную.
Файл
cupsd.conf
содержит набор директив, с помощью которых задаются характеристики сервера, например, определяется имя сервера и расположение файлов протоколов. Ниже описаны наиболее важные директивы, определяющие работу сетевого сервера печати.
•
Allow
. За этой директивой следуют ключевое слово
from
, идентификатор
All
или
None
, имя узла (в котором может содержаться звездочка, задающая групповую операцию), частичный или полный IP-адрес или IP-адрес с указанием маски сети. Независимо от формы записи, значение данной директивы определяют компьютеры, которые имеют право доступа к серверу. Чтобы разрешить доступ для нескольких компьютеров или групп компьютеров, вы можете использовать несколько директив
Allow
. Данная директива должна находиться в составе директивы
Location
.
•
AuthClass
. Директива
AuthClass
может принимать значения
Anonymous
(значение по умолчанию),
User
,
System
и
Group
.
Anonymous
означает, что аутентификация клиентов не должна выполняться; в этом случае система печати работает подобно системе BSD LPD. Остальные три значения требуют от клиента указания пользовательского имени и пароля. Значение
System
требует, чтобы пользователь был членом группы
sys
, заданной с помощью директивы
SystemGroup
. Если указано значение
Group
, пользователь должен принадлежать группе, имя которой определено посредством директивы
AuthGroupName
.
•
BrowseAddress
. Средства просмотра принтеров CUPS лучше всего работают в том случае, если информация о принтерах, доступных в сети, собрана на центральном сервере. Этот сервер можно задать с помощью директивы
BrowseAddress
. В качестве ее значения задается доменное имя или IP-адрес, а также номер порта, например 192.168.23.34:631. (Номер порта 631 чаще всего используется для выполнения различных операций с системой CUPS.) По умолчанию принимается значение 255.255.255.255:631, т.е. широковещательный адрес локальной сети и порт 631.
•
BrowseAllow
. Для того чтобы клиент мог выполнять просмотр принтеров, сервер должен принимать от него специальные пакеты. Директива
BrowseAllow
(за ней следуют ключевое слово
from
и частичное или полное доменное имя либо адрес узла) задает компьютеры, с которых сервер должен принимать данные пакеты. По умолчанию прием пакетов разрешен со всех компьютеров.
•
BrowseDeny
. Данная директива выполняет действие, противоположное директиве
BrowseAllow
. С ее помощью формируется "черный список" клиентов или сетей.
•
BrowseOrder
. Если вы используете и
BrowseAllow
, и
BrowseDeny
, директива
BrowseOrder
позволяет определить порядок применения указанных директив. Она может быть задана в виде
BrowseOrder Allow, Deny
или
BrowseOrder Deny, Allow
.
•
BrowseInterval
. Данная директива задает время в секундах между запросами на просмотр. Значение 0 запрещает передачу запросов. Значение данной опции должно быть меньше, чем значение опции
BrowseTimeout
, в противном случае принтеры будут периодически исчезать из локального списка просмотра.