Программа cups-lpd
не может выполнять функции независимого сервера, ее необходимо сконфигурировать для работы с суперсервером inetd
или xinetd
(суперсерверы и взаимодействие с ними рассматривались в главе 4). Программа cups-lpd
обычно располагается в каталоге /usr/lib/cups/daemon
, а соответствующая ей запись в конфигурационном файле /etc/inetd.conf
выглядит следующим образом:
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd \
cups-lpd
Учитывая различия между inetd
и xinetd
, описанные в главе 4, вы можете легко сконфигурировать cups-lpd
для работы с xinetd
. В некоторых случаях пакет CUPS поставляется уже сконфигурированным для взаимодействия с клиентами BSD LPD, в этом случае нет необходимости предпринимать специальные меры по его настройке.
В CUPS не предусмотрены никакие средства для контроля доступа клиентов, использующих протокол LPD. При передаче заданий от таких клиентов используется адрес сервера, и директивы в файле /etc/cups/cupsd.conf
не оказывают никакого влияния на ход взаимодействия. Для того чтобы ограничить доступ к серверу CUPS с внешних узлов, надо настроить соответствующим образом брандмауэр или использовать другие механизмы ограничения доступа.
Определение сервера CUPS на стороне клиента
Для добавления принтеров к системе CUPS используется утилита lpadmin, вызываемая из командной строки или доступная посредством специального графического
интерфейса. Кроме того, эта задача может решаться с помощью Web-броузера; для этого надо запустить Web-броузер на компьютере, на котором расположен сервер, и обратиться с его помощью по URL http://localhost:631
. (Вы можете также запустить броузер и на другом узле, для которого разрешено выполнение задач администрирования, в этом случае вместо localhost
необходимо указать имя компьютера, на котором выполняется сервер CUPS.) Используя любой из описанных здесь способов, вы можете добавлять или удалять принтеры или выполнять другие действия по администрированию сервера. Ниже приведен пример вызова утилиты lpadmin
.
# lpadmin -р
-m ppdfile.ppd
В данном примере
— это имя очереди печати, используемой локально,
— это имя узла, на котором установлен сервер печати, а
— имя очереди на этом сервере. Поскольку в качестве протокола указано имя доступ к очереди печати осуществляется посредством протокола LPD. Для использования другого протокола надо вместо lpd
задать имя ipp
. (Аналогичным способом вы можете задать локальную очередь, но в качестве значения опции -v
необходимо указать parallel:/dev/lp0
или задать идентификатор другого локального устройства.) Опция -m
определяет PPD-файл для принтера, при этом CUPS может передавать приложению информацию о возможностях принтера. В состав большинства пакетов включается набор файлов PPD; они располагаются в каталоге /usr/share/cups/model
. Файлами PPD снабжаются также многие принтеры PostScript. Для получения файла PPD вы можете воспользоваться списком драйверов по адресу http://www.linuxprinting.org/driver_list.cgi
. Щелкните на имени драйвера Ghostscript, затем выберите модель вашего принтера в области CUPS-O-Matic и щелкните на Generate CUPS PPD. Через некоторое время вы получите файл PPD, описывающий возможности вашего принтера. Как сказано в комментариях, этот автоматически сгенерированный файл не свободен от недостатков, более того, не исключено, что он вовсе не будет работать. Поэтому, если это возможно, лучше использовать файлы PPD, поставляемые производителями принтеров.
Если вы сконфигурировали клиент и сервер для просмотра принтеров, вам нет необходимости специально указывать принтеры IPP. Клиент автоматически получит список доступных принтеров. Описанная операция нужна лишь при использовании очередей печати LPD.