Выбрать главу
На заметку

Различия между "стандартными" и "альтернативными" системами печати, приведенными в табл. 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. Однако некоторые из опций, непосредственно использующиеся при конфигурации сетевого клиента печати, требуют отдельного рассмотрения. Эти опции перечислены ниже.

• . Указывает на файл устройства, к которому подключен принтер. Например, выражение 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. Рекомендуется во избежание недоразумений синхронизировать имена; в особенности это важно в больших сетях.

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