Таблица 9.1. Стандартные программы печати в составе дистрибутивных пакетов Linux
Дистрибутивный пакет
Стандартная система печати
Альтернативная система печати
Caldera OpenLinux Server 3.1
CUPS
Отсутствует
Debian GNU/Linux 2.2
BSD LPD
LPRng, CUPS
Linux Mandrake 8.1
LPRng
CUPS
Red Hat Linux 7.2
LPRng
Отсутствует
Slackware Linux 8.0
BSD LPD
Отсутствует
SuSE Linux 7.3
LPRng
CUPS
TurboLinux 7.0
LPRng
Отсутствует
На
заметку
Различия между "стандартными" и "альтернативными" системами печати, приведенными в табл. 9.1, весьма условны. Например, при инсталляции Mandrake вы можете выбирать, какая из систем печати должна быть установлена: LPRng или CUPS, а в Debian по умолчанию средства печати не устанавливаются вовсе.
При составлении стандартной документации на Linux, как правило, предполагается, что в системе установлены средства печати BSD LPD. Большая часть приведенных в документации сведений справедлива также для системы LPRng, различаются лишь детали, связанные с ограничением доступа к сетевому серверу печати. Что касается CUPS, то конфигурационные файлы этой системы существенно отличаются от BSD LPD и LPRng, поэтому документы, которые касаются конфигурации системы печати, не применимы к CUPS.
Настройка сервера BSD LPD
Среди средств настройки сервера BSD LPD наиболее важны два файла:
/etc/hosts.lpd
и
/etc/printcap
. В первом из них указываются клиенты, которые могут обращаться к серверу для выполнения сетевых операций. Во втором определяются принтеры, доступные как для локальных, так и для удаленных пользователей. Поскольку в файле
/etc/printcap
определяются и локальные, и удаленные принтеры, удаленный пользователь может передать задание на печать очереди, которая соответствует удаленной системе. Если это произойдет, задание будет принято по сети, а затем снова передано. В обычных условиях это означает напрасную затрату сетевых ресурсов, но иногда такое поведение может быть оправдано. В качестве примера можно привести ситуацию, при которой сервер печати использует Ghostscript для преобразования PostScript-файла в формат, совместимый с форматом целевого принтера.
Редактирование файла /etc/hosts.lpd
По умолчанию система BSD LPD не принимает задания на печать с удаленных компьютеров, т.е. реализующие ее программы не могут выполнять роль сетевого сервера печати. Для того, чтобы изменить конфигурацию системы, необходимо отредактировать файл
/etc/hosts.lpd
. В этом файле указан список компьютеров, которым разрешен доступ к локальной очереди печати. Для идентификации компьютеров могут использоваться доменное имя, IP-адрес или имя группы NIS. В последнем случае перед именем группы указывается символ
@
, который, в свою очередь, может предваряться символом
+
. Символ
+
означает, что сервер должен принимать любое задание на печать, что небезопасно для системы. Если перед идентификатором узла указан символ
–
, это означает, что доступ для этого узла запрещен. Пример файла
/etc/hosts.lpd
приведен в листинге 9.1. При указании компьютера
gingko
предполагается, что он принадлежит тому же домену, что и сервер. Выражение
+@group1
предоставляет доступ всем компьютерам в NIS-группе
group1
. Для компьютера
oak.threeroomco.com
доступ запрещен, даже если он принадлежит группе
group1
.
Листинг 9.1. Пример файла
/etc/hosts.lpd
gingko
birch.threeroomco.com
192.168.1.7
+@group1
– oak.threeroomco.com
В файле
/etc/hosts.lpd
, как и в большинстве других конфигурационных файлов, символ
#
является признаком комментариев, однако не следует располагать комментарии за определением клиента; лучше поместить их в предыдущей или последующей строке.
Внимание
Аналогично
/etc/hosts.lpd
можно использовать файл
/etc/hosts.equiv
. Файл
/etc/hosts.equiv
применяется не только для решения задач, связанных с печатью; он также предоставляет доступ для клиентов, которые используют
rlogin
и другие протоколы. Из соображений безопасности этот файл не рекомендуется; лучше настроить каждый сервер индивидуально. Если этот файл присутствует в системе, желательно удалить его и установить требуемую конфигурацию с помощью других файлов.
Указание сервера на клиенте BSD LPD
В файле
/etc/printcap
содержатся определения принтеров для системы BSD LPD (
printcap
сокращенно означает printer capabilities — возможности принтеров). В этом файле содержатся записи для каждой очереди печати в системе, независимо от того, является ли очередь локальной (обслуживающей принтеры, подключенные через параллельный, последовательный или USB-порт) или сетевой (обслуживающей другие LPD-принтеры и даже принтеры, доступ к которым осуществляется посредством SMB/CIFS, AppleTalk или других протоколов). Определение каждого принтера располагается в одной строке, а опции разделяются символом
:
. На практике определение принтера занимает несколько строк; все строки, кроме последней, заканчиваются символом
\
, который означает, что следующая строка является продолжением предыдущей. Размещенные таким образом данные более удобны для чтения.
Большинство деталей настройки принтеров с помощью файла
/etc/printcap
не рассматриваются в данной книге. Как было сказано в начале данной главы, необходимую информацию по установке принтеров, включая вопросы использования фильтров печати и Ghostscript, вы можете получить, прочитав документацию на операционную систему, или узнать из книг, представляющих собой введение в систему Linux. Однако некоторые из опций, непосредственно использующиеся при конфигурации сетевого клиента печати, требуют отдельного рассмотрения. Эти опции перечислены ниже.
•
lр
. Указывает на файл устройства, к которому подключен принтер. Например, выражение
lp=/dev/lp0
сообщает системе о том, что для вывода на принтер должно быть использовано устройство
/dev/lp0
(первый параллельный порт). Если вы настраиваете сетевой принтер, вам следует удалить эту опцию или не указывать после знака равенства никакого значения (например,
lр=
).
•
rm
. Определяет имя сервера печати LPD. Например, если для данной очереди сервером печати является
oak
, вам надо включить в определение очереди опцию
rm=oak
. Заметьте, что для организации печати с помощью удаленной очереди этого недостаточно; данная опция лишь идентифицирует компьютер, на котором расположена очередь. Для определения удаленного компьютера можно использовать имя узла (с указанием или без указания доменного имени) или IP-адрес.
•
rp
. Действие опции
rp
начинается там, где заканчивается действие опции
rm
. Опция
rp
задает имя удаленной очереди печати. Например, если очередь на сервере печати называется
inkjet
, в файл
/etc/printcap
на клиентском компьютере надо включить выражение
rp=inkjet
. Заметьте, что имя удаленной очереди не обязательно должно совпадать с именем локальной очереди. Допустима, например, ситуация, когда принтер
inkjet
сервера будет называться на стороне клиента
lр1
или
canon
. Рекомендуется во избежание недоразумений синхронизировать имена; в особенности это важно в больших сетях.