Lpadmin добавить принтер hp

Обновлено: 19.05.2024

Принт-сервер (англ. print server — сервер печати) — это программное обеспечение или устройство, которое позволяет использовать принтер пользователями внутри локальной сети.

В качестве такого устройства могут быть роутеры, оснащенные портами для подключения USB-устройств, отдельные устройства с портами USB и Ethernet, а также продвинутые модели принтеров, обладающие поддержкой беспроводной печати.

Но если вы являетесь обладателем принтера без поддержки беспроводной печати, можно создать Принт-сервер, подключив принтер по средствам USB к одноплатному компьютеру Orange Pi Zero и настроив на нем сервера печати CUPS (Common UNIX Printing System).

CUPS позволяет управлять заданиями печати, обеспечивает сетевую печать с использованием стандарта IPP (интернет протокол печати), поддерживая также PostScript описание принтеров (PPD) и автоопределение сетевых принтеров, а также позволяет осуществлять администрирование через web-интерфейс.

Необходимое оборудование


Для реализации сервера печати нам понадобится:

  • USB-принтер
  • Orange Pi Zero (или другая) + mini SD card (на 2 ГБ или более)
  • Локальная сеть

Предварительно на свой Orange Pi необходимо установить операционную систему Armbian (Debian), предназначенную для однопалатных компьютеров на базе ARM-процессоров. Как установить Armbian в данной статье не будем рассматривать, так как об этом в Интернете имеется много статей.

Установка и настройка принт-сервера CUPS

В стандартных репозиториях Debian (Armbian на базе Debian) имеется пакет CUPS, установить который необходимо через терминал следующей командой:

Дополнительно можно установить Foomatic, который является одновременно базой описаний моделей принтеров, а также интерфейсом настройки:

Для управления принтерами добавим пользователя pi в группу lpadmin. Следует отметить, что если у вас имя пользователя отличается от pi, необходимо указать его.

Теперь требуется отредактировать файл конфигурации:

При использовании настроек CUPS по умолчанию административный веб-интерфейс доступен только локально (из самой апельсинки).

Нам необходимо настроить доступ для любого устройства в локальной сети, поэтому нужно найти и закомментировать строку Listen localhost:631, а вместо нее добавить строку Port 631:

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

Далее необходимо открыть доступ к админ-панели по локальной сети, добавив параметр Allow @Local в следующие участки строк:

Не забываем сохранить файл, а затем перезапустить CUPS для применения проделанных изменений следующей командой:

Установка и настройка принтера

На следующем этапе необходимо установить и настроить принтер.


Переходим на вкладку «Администрирование»:


Необходимо убедиться, что установлена галочка на «Разрешить совместный доступ к принтерам, подключенным к этой системе» (в разделе «Параметры сервера») и нажимаем на кнопку «Добавить принтер»:


В нем выбираем свой принтер из списка обнаруженных системой. В моем случае это принтер HP LaserJet 1010. Нажимаем «Применить» и выбираем подходящий драйвер из списка драйверов для своей модели принтера. Однако если таковой отсутствует — скорее всего подойдет драйвер от соседней модели того же модельного ряда. В моем случае устанавливается драйвер для модели HP LaserJet 1015. Далее кликаем «Добавить принтер».


В разделе «Настроить параметры принтера» жмем кнопку «Сохранить параметры»:


Принтер успешно установлен!

Теперь можно распечатать пробную страницу. Для этого переходим на вкладку «Принтеры», выбираем добавленный принтер и печатаем пробную страницу через меню «Печать пробной страницы»:


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

Подключение и настройка сетевого принтера к Windows ПК

После успешной настройки принтера на принт-сервере CUPS нужно подружить этот принтер с компьютером, работающий под управлением Windows.

Первым делом из адресной строки браузера копируем сетевой путь принтера:


Далее будут описаны операции по установке принтера для ОС Windows 10.

Итак, через «Пуск» открываем «Параметры» -> «Устройства» -> «Принтеры и сканеры».


Кликаем «Добавить принтеры или сканеры» и ждем. После безуспешного поиска нового устройства выбираем «Необходимый принтер отсутствует в списке». В открывшемся окне выбираем «Выбрать общий принтер по имени» и в поле для ввода вставляем скопированный ранее путь и жмем «Далее»:


В мастере установки принтера выбираем необходимый принтер и жмем «ОК»


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

Стоит отметить, что теперь Orange PI можно спрятать под корпус принтера, чтобы не занимать дополнительное место на полке. В моем случае также удалось и запитать устройство от 5V выдаваемых блоком питания принтера.

а как это сделать из командной строки? для автоматизации этого процесса, например.


66k 154 154 золотых знака 66 66 серебряных знаков 203 203 бронзовых знака

«штатное» средство, идущее в комплекте с набором программ, именуемым для краткости cups, называется lpadmindebian-основных дистрибутивах входит в пакет cups-client).

для создания/модификации очереди печати служит такая форма запуска этой программы:

(есть ещё две формы: удаления очереди — lpadmin -x имя_очереди , и назначение очереди по умолчанию — lpadmin -d имя_очереди ).

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

запускаться программа должна либо от имени пользователя, входящего в группу, которой разрешено администрирование cups-а (обычно — lpadmin ), тогда, вероятно, надо будет указать полный путь к ней — /usr/sbin/lpadmin , либо от имени пользователя root (т.е., например, с использованием sudo : sudo lpadmin . ).

«минимальный джентльменский набор» разных опций , пожалуй, можно свести к такому списку:

  • -E — сразу сделать очередь доступной (эта опция, если её употребить до опций -p / -d / -x означает совсем другое — «использовать шифрование при подлючении к cups-серверу». ну, такие вот выдумщики эти разработчики)
  • -v uri-принтера — uri, по которому доступен принтер. для «сетевых», поддерживающих спецификацию «hp jetdirect», это что-нибудь вроде socket://сетевое.имя:9100 (подробнее про «сетевые» uri)
  • -o media=A4 — iso-формат бумаги («европейский»). лучше указать явно, чтобы не нарваться на «североамериканский» (см. про letter и a4)
  • -m uri-фильтра или -P /путь/к/файлу/с/фильтром — см. примечание

примечание про фильтры

cups позволяет, для адаптации задания печати под конкретную модель принтера, пропустить задание через фильтр — так называемый postscript printer description, сокращённо ppd (отсюда и знакомые многим суффиксы .ppd у файлов с такими фильтрами).

теоретически, если принтер достаточно «интеллектуален», в качестве uri-фильтра можно указать raw : -m raw . в документации по этому поводу написано так:

The model "raw" clears any existing PPD file and the model "everywhere" queries the printer referred to by the specified IPP device-uri.

но обычно фильтр (ppd) указывают явно, выбирая производителя, а затем модель принтера. это если очередь создаётся из веб-интерфейса или с помощью gui-конфигуратора. а в случае командной строки всё это разнообразие можно посмотреть командой:

программа lpinfo тоже может располагаться в /usr/sbin , тогда придётся указать к ней полный путь.

пример вывода для псевдо-модели HP LaserJet 6P :

из него можно взять, например, пятую строку и использовать в качестве uri-фильтра при вызове lpadmin: -m drv:///hpcups.drv/hp-laserjet_6p.ppd

также нередко случается, что нужно использовать уже «готовый» фильтр, хранящийся в файле с суффиксом .ppd . тогда и надо применять опцию -P /путь/к/файлу.ppd (вместо -m uri-фильтра ).

вышеописанное, в принципе, должно подойти не только к операционной системе gnu/linux, но и, например, к apple/macosx.

вероятно, стоит ещё упомянуть про то, как посмотреть список доступных очередей печати:

CUPS - это стандартная система печати с открытым исходным кодом, разработанная Apple Inc. для MacOS® и других UNIX®-подобных операционных систем.

Contents

Установка

Если вы намерены "распечатать" в документ PDF, тогда вам необходимо установить пакет cups-pdf . По умолчанию файлы PDF хранятся в /var/spool/cups-pdf/имя_пользователя . Местоположение можно изменить в /etc/cups/cups-pdf.conf .

Сокет-активация

cups предоставляет юнит cups.socket . Если сокет cups.socket включен (а служба cups.service отключена), systemd не будет запускать CUPS сразу, а просто будет слушать соответствующие сокеты. Затем всякий раз, когда программа пытается обратиться к одному из этих сокетов, systemd будет запускать службу cups.service и прозрачно передавать управление этими портами процессу CUPS.

Таким образом, CUPS запускается только тогда, когда программа хочет его использовать.

Интерфейсы подключения

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

  • Вспомогательные программы CUPS запускаются с использованием пользователя и группы cups . Это позволяет им получать доступ к файлам принтера и читать файлы конфигурации в /etc/cups/ , которые принадлежат группе cups .
  • До cups версии 2.2.6-2, вместо группы cups использовалась группа lp . После обновления файлы в /etc/cups должны принадлежать группе cups , а в файле /etc/cups/cups-files.conf должно быть прописано User 209 и Group 209 .

Чтобы узнать, обнаружен ли ваш USB-принтер:

Параллельный порт

Чтобы использовать принтер с параллельным портом, требуются модули ядра lp , parport и parport_pc .

Чтобы обнаружить или предоставить общий доступ к принтерам с помощью DNS-SD/mDNS, настройте разрешение имени узла .local через Avahi и перезапустите службу cups.service .

Примечание: DNS-SD поддерживается только при использовании Avahi. CUPS не поддерживает использование systemd-resolved для DNS-SD. Для получения дополнительной информации смотрите CUPS issue 5452.

Для предоставления общего доступа к принтерам с помощью Samba, например, если система должна быть сервером печати для клиентов Windows, необходим пакет samba .

Драйверы принтеров

Драйверы для принтеров можно получить из любого из источников, приведенных ниже. Смотрите CUPS/Принтероспецифичные проблемы для неполного списка драйверов, которые работают.

Для управления принтером CUPS требуется файл PPD, а для большинства принтеров - некоторые фильтры. Подробнее о том, как CUPS использует PPD и фильтры, смотрите на [1].

Список принтеров OpenPrinting содержит рекомендации для драйверов для многих принтеров. Он также поставляет файлы PPD для каждого принтера, но большинство из них доступны через foomatic или рекомендованный пакет драйверов.

Когда файлы PPD предоставляются CUPS, тогда сервер CUPS будет регенерировать файлы PPD и сохранять их в /etc/cups/ppd/ .

CUPS обеспечивает поддержку принтеров AirPrint и IPP Everywhere.

Фильтры OpenPrinting CUPS

Рабочая группа OpenPrinting в Linux Foundation предоставляет cups-filters. Это бэкэнды, фильтры и другие двоичные файлы, которые когда-то были частью CUPS, но больше не поддерживаются Apple. Они доступны в пакете cups-filters , который является зависимостью для cups .

Для принтеров Non-PostScript требуется установить ghostscript . Для ghostscript также может потребоваться gsfonts .

Foomatic

Рабочая группа foomatic в OpenPrinting в Linux Foundation предоставляет PPD для многих драйверов принтеров, как свободных, так и проприетарных. Для получения дополнительной информации о том, что делает foomatic, смотрите Обзор foomatic от разработчиков.

Чтобы использовать foomatic, установите foomatic-db-engine и по крайней мере один из пакетов:

  • foomatic-db - коллекция файлов XML, используемая foomatic-db-engine для генерации файлов PPD.
  • foomatic-db-ppds - прекомпилированные файлы PPD.
  • foomatic-db-nonfree - коллекция файлов XML под несвободными лицензиями от производителей принтеров, используемая foomatic-db-engine для генерации файлов PPD.
  • foomatic-db-nonfree-ppds - прекомпилированные файлы PPD под несвободными лицензиями.

Для PPD foomatic могут потребоваться дополнительные фильтры, такие как min12xxw AUR .

Gutenprint

Проект Gutenprint предоставляет драйвера для Canon, Epson, Lexmark, Sony, Olympus, и принтеров PCL для использования с CUPS и GIMP.

Примечание: Когда пакет Gutenprint обновился, принтеры, использующие драйвера Gutenprint, будут остановлены, пока вы не выполните от суперпользователя команду cups-genppdupdate и не перезапустите CUPS. Команда cups-genppdupdate обновит файлы PPD для всех настроенных принтеров. Для получения дополнительной информации смотрите cups-genppdupdate(8) .

Специфические для производителя драйвера

Многие производители принтеров поставляют свои собственные драйверы Linux. Они часто доступны в официальных хранилищах Arch или в AUR.

Некоторые из этих драйверов описаны более подробно в CUPS/Принтероспецифичные проблемы.

URI принтера

Ниже перечислены дополнительные шаги для ручного создания URI, если это необходимо. Для некоторых принтеров или драйверов нужны особые URI, описанные в CUPS/Принтероспецифичные проблемы.

CUPS должен иметь возможность автоматически генерировать URI для USB-принтеров, например usb://HP/DESKJET%20940C?serial=CN16E6C364BH .

Параллельный порт

URI должен иметь вид parallel:device . Например, если принтер подключен к /dev/lp0 , используйте parallel:/dev/lp0 . Если вы используете адаптер USB для параллельного порта, используйте parallel:/dev/usb/lp0 в качестве URI принтера.

URI также можно создать вручную, не используя Avahi. Список доступных схем URI для сетевых принтеров доступен в документации CUPS. Поскольку точные данные URI отличаются между принтерами, проверьте руководство принтера или CUPS/Принтероспецифичные проблемы.

URI для сетевых принтеров SMB описаны на справочной странице smbspool(8) .

Использование

  • Имя принтера - короткое, но описательное имя, используемое в системе для идентификации принтера. Это имя не должно содержать пробелов или специальных символов. Например, принтер, соответствующий HP LaserJet 5P, может быть назван "hpljet5p". С каждым физическим принтером можно связать более одной очереди.
  • Расположение - это описание физического расположения принтера (например, "спальня", или "кухня"). Это помогает поддерживать несколько принтеров.
  • Описание - полное описание принтера. Обычно используется полное имя принтера (например, "HP LaserJet 5P").

Инструменты CLI

Смотрите локальную документацию CUPS для получения дополнительных сведений об инструментах командной строки.

Примечание: Нельзя сгруппировать переключатели командной строки

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Нестандартное использование списков определений, комментариев в командной строке. (Discuss in Talk:CUPS (Русский)) Список устройств Список моделей Добавление нового принтера

Имя принтера зависит от тебя. Например:

Примечание: При указании PPD используйте только имя файла, а не полный путь (например, pxlmono.ppd вместо /usr/share/ppd/cupsfilters/pxlmono.ppd ) Установите принтер по умолчанию Изменение параметров

Проверка cостояния принтера Отключение принтера Включение принтера Настройка принтера для приема заданий Удаление принтера

Сначала настройте принтер для отклонения всех входящих записей:

Затем отключите его.

Наконец, удалите его.

Печать файла Проверка очереди Очистка очереди

Веб интерфейс

Перейдите на вкладку Администрирование.

Изменение существующих принтеров

Перейдите на вкладку Принтеры и выберите принтер для изменения.

Перейдите на вкладку Принтеры и выберите принтер.

Приложения с GUI

Настройка

Настройки сервера CUPS находятся в /etc/cups/cupsd.conf и /etc/cups/cups-files.conf (смотрите cupsd.conf(5) и cups-files.conf(5) ). После редактирования любого из этих файлов, перезапустите cups.service , чтобы применить произведенные изменения. Настройки по умолчанию подходят для большинства пользователей.

Группы с правами администрирования принтера определены в SystemGroup в /etc/cups/cups-files.conf . Группы sys и root используется по умолчанию.

Пакет cups собран с поддержкой libpaper и значением по умолчанию для формата бумаги Письмо для файла libpaper. Чтобы избежать необходимости изменять размер бумаги для каждого принтера, отредактируйте /etc/papersize и задайте размер бумаги по умолчанию для вашей системы. Для получения дополнительной информации смотрите papersize(5) .

По умолчанию все журналы отправляются в файлы в /var/log/cups/ . Изменив значения директив AccessLog , ErrorLog и PageLog в /etc/cups/cups-files.conf на syslog , то CUPS сможет отправлять логи в журнал systemd. Смотрите вики-страницу fedora для получения информации об исходном предлагаемом изменении.

cups-browsed

This article or section is out of date.

Reason: cups-browsed.service не требуется для обнаружения принтеров, объявленных через DNS-SD, что делается сейчас через cups.service . Служба требуется только для обнаружения принтеров на сервере LDAP и тех, которые используют устаревший протокол CUPS (серверы CUPS ≤ 1.5). (Discuss in Talk:CUPS (Русский))

CUPS может использовать Avahi для обнаружения неизвестных общих принтеров в вашей сети. Это может быть полезно в крупных сетях, где сервер неизвестен. Чтобы использовать эту функцию, настройте разрешение .local hostname и запустите службы avahi-daemon.service и cups-browsed.service . Задания отправляются непосредственно на принтер без какой-либо обработки, поэтому созданные очереди могут не работать, однако для принтеров, не требущих драйверов, такие как те, которые поддерживают IPP Everywhere или AirPrint все должно работать из коробки.

  • Поиск сетевых принтеров может значительно увеличить время, необходимое для загрузки вашего компьютера.
  • Служба cups-browsed.service необходима только для динамического добавления и удаления принтеров, когда они появляются и исчезают из сети. Она не требуется, если вы просто хотите добавить сетевой принтер с поддержкой DNS-SD/mDNS в CUPS.

Серверы печати и удаленное администрирование

Разрешение аутентификации администратора через PolicyKit

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

Примечание: Возможно, вам понадобится установить cups-pk-helper для работы с этими правилами.

Вот пример, который позволяет членам группы wheel управлять принтерами без пароля:

Без локального сервера CUPS

CUPS можно настроить для прямого подключения к удаленным серверам принтеров вместо запуска локального сервера печати. Для этого потребуется установить пакет libcups . Некоторым приложениям по-прежнему потребуется пакет cups для печати.

Итак. Предположительно, сервис печати CUPS — это мощное решение, позволяющее организовать централизованное управление принтерами в компании. Так оно и есть, но в процессе настройки потребуется провести некоторое время в поисках решения в Google множества мелких неочевидных проблем, особенно, если ваша необходимость выходит за рамки стандартных мануалов по настройке.

В статье будет описана установка принтсервера CUPS на Ubuntu Server в сети с работающим доменом Active Directory, хотя его наличие совершенно не обязательно и инструкции по настройке взаимодействию с ним можно будет смело пропустить, его настройка, а также настройка клиентских машин Linux и Windows для взаимодействия с данным принт-сервером.

Настройка принтсервера

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

Заходим на принтсервер любым удобным способом и обновим на нем пакеты:

Далее проверим, установлен ли CUPS на сервере:

Если вывод выглядит как то так:

то CUPS установлен, если вывода нет — устанавливаем CUPS:

Теперь настроим административный доступ к веб-интерфейсу CUPS. Все файлы конфигурации находятся по пути /etc/cups/. Для начала, на всякий случай сделаем резервные копии основных файлов конфигурации CUPS:

Впрочем, если вы этого не сделали — не беда, образцы данных файлов по умолчанию лежат по пути /usr/share/cups. Также нужно упомянуть, что вы можете проверить любые добавленные опции в файлы конфигурации CUPS с помощью команды:

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

Но приступим наконец к настройке. После любых изменений файлов в папке /etc/cups/ для получения эффекта необходимо перезапускать сервис CUPS:

А если вы отредактировали файл /etc/cups/cups-browsed.conf, то за него отвечает отдельный сервис cups-browsed, который тоже нужно перезапустить:

Первой незакомментированной опцией является

Она определяет минимальную информативность логов CUPS. Лог-файлы CUPS находятся по пути /var/log/cups/. На время установки, настройки и отладки принтсервера будет разумным перевести логгирование в debug-режим. Для этого изменим warn на debug2:

По умолчанию CUPS слушает входящие подключения только от localhost, то бишь на loopback интерфейсе. Чтобы убедится в этом, можете выполнить команду

Одна из строк будет выглядеть приблизительно так:

Либо же вы можете разрешить CUPS'у слушать подключения со всех адресов

Следующий момент настройки — это обнаружение сетевых и расшаренных принтеров.

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

Далее идут настройки аутентификации:

Определяет права доступа к веб-интерфейсу CUPS, а также к его административной части. Чтобы пользователь user имел право на администрирование CUPS, его нужно добавить в системную группу lpadmin:

Вообще, группы, которым позволен административный доступ к CUPS, определяются в файле конфигурации cups-files.conf в блоке

Если вы хотите добавить некой группе пользователей Linux права на администрирование принтсервера, например printadmins, то просто добавьте их через пробел к lpadmin. Если группа доменная, то это немного сложнее и будет описано позже.

Теперь перейдем к блоку <Location />:

Order allow,deny означает, что запрещены подключения отовсюду, если специально не указано разрешение. То есть нужно добавлять IP-адреса, подсети, хосты или хосты по маске (.example.com) в виде "Allow from [разрешенный адрес]*":

Для полной уверености и отладки, можно оставить, пока не настроите все остальное, такую констукцию, которая позволит печать отовсюду:

Приступим к настройке административного доступа к CUPS на принтсервере. Определитесь, с какого/каких IP и/или подсетей вы собираетесь подключаться к CUPS, и добавить их по аналогии с блоком <Location />:

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

Если нужная вам локализация, например ru, есть, то добавьте строчку в /etc/cups/cupsd.conf:

Самым простым способом это можно сделать так:

Если вы хотите, чтобы принтсервер примимал любые обращения, или не хотите заморачиваться, то можно добавить это:

Еще нужно взглянуть внутрь файла /etc/cups/cups-browsed.conf. Этот файл управляет тем, как принтсервер будет искать принтеры в сети и проводить широковещательную рассылку своих принтеров. Я предлагаю совершенно отключить опцию рассылки. Принтсервер будет искать принтера в сети, но с него принтеры на клиентские машины будут подключатся вручную. Ниже будет описано, почему. Пока же мы находим строку BrowseRemoteProtocols dnssd cups:

На этом настройку принтсервера приостанавливаем и переходим к настройке клиентких машин Windows и Linux. Требования к ним такие — позволять посылать на себя задания печати принтсерверу, и посылать задания на печать именно (и только) на принтсервер в случае необходимости печати на сетевой принтер.

Теперь выполним аналогичную операцию на клиентской машине Linux c именем хоста linux1. Вообще, данная часть будет куда объемнее, так как у клиентской машины есть свой сервис CUPS и его тоже нужно настроить во многом так же, как и принтсервер, за исключением его подчиненной роли в организации печати.

Исправление ошибки обращения к CUPS через loopback по имени хоста

В большинстве инструкций по введению Linux в домен одним из пунктов является приведение файла /etc/hosts приблизительно к такому виду:

Почему то CUPS не в силах ассоциировать обращение через 127.0.1.1, то есть через Loopback интерфейс, с именем хоста.

Исправляется эта ошибка двумя способами. Если в вашей сети IP адреса статичные, то в файле /etc/hosts исправьте 127.0.1.1 на IP адрес внешнего сетевого интерфейса клиентской машины, например:

Либо же, раз уж вы вводите Linux в домен, то это предполагает, что в вашей сети работает DHCP и DNS сервер Active Directory. В таком случае просто закомментируйте данную строчку:

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

Настройка адресов прослушивания подключений к CUPS у клиентских машин Linux

Заходим на linux1 любым удобным способом. Редактируем файл /etc/cups/cupsd.conf:

Находим, добавляем или изменяем в нем строки:

Настройка адресов прослушивания подключений к CUPS

В предыдущем блоке мы настроили возможность подключения к CUPS. Теперь перейдем к настройке разрешений на доступ к печати, а также к административным страницам сервиса CUPS на хосте linux1. Вновь открываем, если закрыли, файл /etc/cups/cupsd.conf и переходим к редактированию блоков <Location />, <Location /admin>, <Location /admin/conf>, <Location /admin/log>:

Настройка раздачи и получения широковещательной рассылки сетевых принтеров

Еще у клиетской машины Linux, в данном случае linux1, необходимо отредактировать файл /etc/cups/cups-browsed.conf:

Настройка административного доступа

Еще пару слов по поводу административного доступа, как на WEB-интерфейс CUPS на принтсервере, так и на любой клиентской машине Linux. Даже при условии наличия 30-50 компьютеров нужно унифицировать авторизацию на CUPS, а не держать в голове или еще где пароли каждой машины. И это важно на всех Linux машинах, ведь чтобы добавить принтер на сервер, его сперва нужно установить локально. Я вижу несколько путей.

Первый — на каждой системе Linux создать пользователя printeradmin (например) и добавить в группу lpadmin:

Второй вариант практически идентичен и предлагает создать группу в системе, например, printersadmins, добавить туда требуемого администратора CUPS (printeradmin, user):

Затем нужно найти в файле /etc/cups/cups-files.conf строку

и добавить через пробел одну или несколько групп пользователей с правом администрировать CUPS.

И наконец, третий вариант. Сделать администраторами принтсервера и CUPS'ов клиентских машин доменную группу пользователей. Для этого принтсервер и клиентские машины Linux должны быть присоединены к домену AD. Есть несколько методов подключения Linux к домену Windows, но, насколько я знаю, основные это подключение с помощью winbind и с помощью SSSD(realmd). Описание данных методов не входит в статью, поэтому остановлюсь только на моментах которые касаются конкретно CUPS'а.

Настройка использования доменных групп пользователей для администрирования CUPS

Каждый метод присоединения к системе централизованной авторизации в Linux создает специальный файл-"трубу" (pipe), сквозь который приложения могут посмотреть список пользователей домена. Чтобы так мог сделать CUPS, нужно разрешить ему использовать pipe в AppArmor'е для аутентификации пользователей. AppArmor — модуль безопасности Linux по управлению доступом. Ограничивает определенные программы набором перечисленных в его политиках файлов. Чтобы добавить CUPS'у право использовать пользователей и группы домена через winbindd, нужно добавить в файл /etc/apparmod.d/local/usr.sbin.cupsd такую строку:

Если Linux введен в домен через SSSD, то необходимо указать расположение его pipe в /etc/apparmod.d/local/usr.sbin.cupsd, добавив туда строку:

К тому же, в случае с SSSD это позволяет пройти аутентификацию (узнать кто заходит), но чтобы пройти авторизацию (узнать есть ли право у пользователя управлять CUPS) необходимо также добавить в файл конфигурации SSSD /etc/sssd/sssd.conf строку:

Это, условно выражаюсь, дает CUPS'у право "заглядывать" в SSSD.

К тому же, в силу того, что CUPS теперь зависит от сервиса SSSD, нужно указать CUPS'у что он должен запускаться после SSSD, иначе он будет отваливаться при включении и его будет необходимо каждый раз включать вручную.

Добавим CUPS'у указание грузиться после SSSD. Отредактируем файл сервиса cups.service по пути /lib/systemd/system/, добавив инструкцию After в секцию [Unit]:

Таким образом CUPS настроен на Basic авторизацию через домен, то есть авторизацию с помощью ввода логина и пароля доменного пользователя с правом администрирования CUPS.

Авторизация может быть настроена и иначе, но принцип (pipe-файл) в целом универсален и есть шанс настроить и для LDAP, FreeIPA и прочих служб каталогов по аналогии.

Установка принтера в Linux

Теперь, когда сервер и клиенские машины Linux настроены, к некоторым из них присоединены принтеры, а также есть машины на Windows, которым и с которых нужно печатать, и вся эта система должна быть стабильной и в случае, если на одном из ПК необходимо заменить принтер, то это не должно повлечь за собой перенастройку доброй половины всех ПК, если не всех. К тому же нужно как можно меньше проблем с драйверами. И это вполне возможно.

Группы принтеров (Classes)

Выше мы описывали подключение Canon-MF4400 c хоста windows1 через протокол LPD. Принтер все еще подключен и его статус можно посмотреть на странице http://cupsserver:631/printers/Canon-MF4400 . А теперь обратим пристальное внимание на главную страницу администрирования cupsserver http://cupsserver:631/admin . На этой странице есть кнопка "Добавить группу" [Add Class]. Нажмем на нее. В ней вы увидите поля "Название", "Описание", "Расположение", аналогичные таким же при настройке обычного принтера. В нижнем же блоке вы увидите список всех подключенных к принтсерверу принтеров. Выберите Canon-MF4400 или любой который хотите, затем в поле "Название" впишите, например printer-windows1, "Описание" и "Расположение" на ваше усмотрение, и нажмите "Добавить группу".

Главная прелесть данного метода в том, что если на любом из ПК заменяется принтер, заменяется сам компьютер, или то и другое сразу, то это никак не влияет на тех, кто был к ним подключен через группу на принтсервере. Единственная настройка производится на принтсервере — к принтсерверу подключается новый принтер, затем из группы, в которой состоял старый принтер, он удаляется, и добавляется новый принтер на замену старому. И никаких дополнительных настроек на любом количестве ПК, только на принтсервере и собственно ПК на котором меняли принтер. Драйвера "IPP Everywhere" и "MS Publisher Imagesetter" содержат большое количество настроек бумаги, печати и т.д., так что нет проблем настроить нужный вид печати через них.

Заключение

Тема слишком обширна, чтобы изложить сколько-нибудь подробно, и даже так статья вышла крайне объемной. Любые уточнения, указания на ошибки, нераскрытые вопросы и советы, данные в комментариях к данной статье, будут приняты во внимание и в случае необходимости включены в статью.

Читайте также: