Настройка печати и печать в linux redhat/centos

Внутри систем GNU/Linux

Сервер можно настраивать с помощью веб-интерфейса или путем ручного редактирования файла .
Смотрите статью CUPS (Русский) для настройки клиента.

Использование веб-интерфейса

В верхней части находится вкладка Администрирование — кликните по ней, нажмите на кнопку добавления принтера, при этом будут автоматически определены подключенные принтеры. Если этого не произойдет, отключите принтер и подключите его снова.

После создания принтера зайдите в раздел Сервер и установите флажок напротив «Разрешить совместный доступ к принтерам, подключенным к этой системе». После клика по Сохранить, сервер будет перезапущен автоматически.

Для более детальной настройки вы можете отредактировать файл , нажав кнопку «Редактировать конфигурационный файл». Для получения дополнительной информации смотрите .

Ручная настройка

На сервере (тот, который управляет и подсоединён к принтеру) разрешите доступ к серверу, изменив строчки с тэгом Location. Например:

/etc/cups/cupsd.conf
<Location />
    Order allow,deny
    Allow localhost
    Allow 192.168.0.*
</Location>
...

Также убедитесь, что серверу для адресации доступен IP-адрес клиента:

/etc/cups/cupsd.conf
...
Listen <hostname>:631
...

После внесения каких-либо изменений перезапустите службу .

Если CUPS запускается с помощью активации сокета, создайте drop-in сниппет для , чтобы активация сокета работала и с удаленными подключениями:

/etc/systemd/system/org.cups.cupsd.socket.d/override.conf
ListenStream=631

Включение обнаружения

Чтобы включить отображение (обнаружение) общего принтера, необходимо установить Avahi и запустить его на сервере.
Если вам не нужно обнаружения принтера, тогда Avahi не требуется ни на сервере, ни на клиенте.

Чтобы включить отображение, выберите Показывать общие принтеры, подключенные к этой системе в веб-интерфейсе, или вручную включите Browsing и введите BrowseAddress:

/etc/cups/cupsd.conf
...
Browsing On
BrowseAddress 192.168.0.*:631
...

затем перезапустите службу .

Обратите внимание, что «обнаружение» на сервере — другая вещь по сравнению с «обнаружением» на удаленном сетевом хосте. На сервере печати предоставляет поддержку протокола DNS-SD, который транслируется

Служба не нужна на сервере печати за исключением, если будет транслироваться старый протокол CUPS’а, или если сервер печати также будет «обнаруживать» другие сетевые принтеры. На удаленном сетевом хосте служба требуется для «обнаружения» сетевой трансляции служб печати, а также запущенная служба будет автоматически запускать .

Служба запускается автоматически при подключении USB-принтера, но это может быть не так для других типов подключений. Если не запущен, тогда не транслирует службу печати, поэтому в этом
случае service-файл юнита systemd должен быть изменен при запуске во время загрузки, а затем служба снова должна
быть «включена/установлена» с новой зависимостью. Чтобы сделать это, отредактируйте раздел файла службы , добавив зависимость , а затем включите и запустите службу .

Добавление и настройка принтера в CUPS

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

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

Далее можно поменять Название и Описание принтера, не забываем поставить галочку Разрешить совместный доступ к этому принтеру

Самое интересное, указываем драйвер для принтера и если нашей модели нет, то подбираем аналогичный по параметрам. Если не заработает или будут ошибки в печати, то повторяем все пункты по добавлению принтера.

После установок типа бумаги и разрешения печати видим успешное добавление принтера в систему.

Копируем расположение принтера из адресной строки браузера, которое понадобиться указать при добавлении принтера в Windows

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

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

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

Foomatic

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

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

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

Gutenprint

Установите и .

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

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

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

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

Настройка

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

Группы с правами администрирования принтера определены в в . Группы и используется по умолчанию.

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

cups-browsed

This article or section is out of date.

Примечание:

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

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

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

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

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

/etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { 
    if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && 
        subject.isInGroup("wheel")){ 
        return polkit.Result.YES; 
    } 
});

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

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

Чтобы использовать удаленный сервер CUPS, установите переменную окружения в . Например, если вы хотите использовать другой сервер печати для одного экземпляра Firefox (замените на имя/порт своего сервера печати):

$ CUPS_SERVER=printserver.mydomain:port firefox

Ошибка о необнаружении сертификатов

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

Сделать это просто:

  1. Первый шаг — открыть программу КриптоПРО CSP, и перейти во вкладку: Сервис — Просмотр сертификатов в контейнере.
  2. Затем нажать «Обзор» и выбрать нужный контейнер для просмотра.
  3. Нажать последовательно «ОК» и «Далее», а в открывшемся новом окне «Сертификат для просмотра» — «Установить».
  4. Дождаться уведомления о завершении установки и нажать «ОК». Для корректной работы программы лучше перезагрузить ПК и начать сессию заново.

Следуя подсказкам мастера установки и инструкции это легко сделать даже без помощи технической поддержки.

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

В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.

Традиционно есть два решения.

  1. Самоподписанные сертификаты, сгенерированные через openssl или др. Вот самый простой способ сгенерировать приватный ключ и самоподписанный сертификат для localhost:

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

Трюк с регистрацией нового домена типа localhost.example.com, который локально ресолвится в 127.0.0.1 (в /etc/hosts), с получением обычного сертификата для данного домена. Но такая махинация сомнительна с точки зрения безопасности — по крайней мере, для публичных сервисов подобный ресолвинг делать крайне не рекомендуется из-за возможной MiTM-атаки со сменой на враждебный IP-адрес. Если ограничиться только локальной машиной, то может это и подходящий вариант, хотя тоже возникают некоторые сомнения. К тому же, такой сертификат могут отозвать. В любом случае, есть вариант проще и безопаснее (см. ниже).

Речь идёт о mkcert — простой утилите для генерации локально-доверенных сертификатов с собственным центром сертификации. Она работает под всеми ОС и не требует какой-то конфигурации.

Сначала нужно установить certutil .

или собрать из исходников:

Версия для Windows

Под Windows можно скачать собранные бинарники либо воспользоваться одним из пакетных менеджеров: Chocolatey или Scoop.

Наличие локального центра сертификации — самое важное принципиальное отличие mkcert от openssl и самоподписанных сертификатов, потому что при запуске такого CA локально не возникает никаких ошибок доверия. В принципе, запустить и настроить собственный CA можно и другими средствами, но это требует нетривиальных знаний и навыков

Здесь всё делает само собой, без всяких дополнительных ключей и настроек. Просто устанавливаем программу — и она автоматически создаёт локальный центр сертификации и прописывает его в доверенное хранилище системы и доверенное хранилище Firefox

В принципе, запустить и настроить собственный CA можно и другими средствами, но это требует нетривиальных знаний и навыков. Здесь всё делает само собой, без всяких дополнительных ключей и настроек. Просто устанавливаем программу — и она автоматически создаёт локальный центр сертификации и прописывает его в доверенное хранилище системы и доверенное хранилище Firefox.

In CHANGES-1.3.txt I detected now this entry

For example if local queues with any ipp//… DeviceURI
could not be shared, it would be impossible to share
a local queue for a network printer that is accessed
via an ipp//… DeviceURI.



DeviceURI ipp://dummy.example.org/something

Shared Yes



Shared No

Shared Yes

Therefore I think the real issue is to describe precisely
what «remote queue» actually means in CUPS.

Perhaps for queues that exist in /etc/cups/printers.conf

(excerpt):

There is a difference between «local/remote queue»
and «local/remote printer»:

  • «Local queue» means a print queue which is configured
    on the local computer…

  • «Remote queue» means a print queue which exists on whatever
    computer in the network or on whatever network printer.

  • «Local printer» means a printer device which is directly
    connected to the local computer (usually a USB printer).

  • «Remote printer» means a printer device which is not directly
    connected to the local computer (usually a printer with

Now I am confused regarding a network printer that is accessed
via an ipp//… DeviceURI versus a queue on a remote CUPS server.

According to my current understanding in both cases
the recipient is a «remote IPP queue» that exists
in the network printer or on the remote CUPS server
so that both cases should behave the same.

In particular I am confused about a (hypothetical?)
big-and-fat network printer that has CUPS built in
and is accessed only via IPP.

Установка

Установите пакет .

Если вы намерены «распечатать» в документ PDF, тогда вам необходимо установить пакет . По умолчанию файлы PDF хранятся в . Местоположение можно изменить в .

Включите и запустите службу .

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

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

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

Remote administration

Once the server is set up as described in , it can also be configured so that it can be remotely administered. Add the allowed hosts to the block in , using the same syntax as described in . Note that three levels of access can be granted:

<Location />           #access to the server
<Location /admin>	#access to the admin pages
<Location /admin/conf>	#access to configuration files

To give remote hosts access to one of these levels, add an statement to that level’s section. An statement can take one or more of the forms listed below:

Allow from all
Allow from host.domain.com
Allow from *.domain.com
Allow from ip-address
Allow from ip-address/netmask
Allow from @LOCAL

Deny statements can also be used. For example, to give full access to all hosts on your local network interfaces, edit to include this:

# Restrict access to the server...
# By default only localhost connections are possible
<Location />
   Order allow,deny
   Allow from @LOCAL
</Location>

# Restrict access to the admin pages...
<Location /admin>
   Order allow,deny
   Allow from @LOCAL
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
   AuthType Basic
   Require user @SYSTEM
   Order allow,deny
   Allow from @LOCAL
</Location>

You might also need to disable the HTTPS requirement, when using the default self-signed certificate generated by CUPS:

DefaultEncryption IfRequested

This should avoid the error: 426 — Upgrade Required when using the CUPS web interface from a remote machine.

Kerberos

Kerberos can be used to authenticate users accessing a remote CUPS server. This assumes that your machine has a keytab and it will need a ticket for «HTTP». Instead of using you must use — encryption is required for auth (hence https) and the full hostname is needed so that Kerberos/Negotiate can work. In addition, the server must be configured in to use a of .

If you are using Samba’s winbind NSS support, you can add an AD group name to — in the following example might be an AD group:

SystemGroup sys root sysadmin

Система печати через PAM

Пользователь, от которого будут выполняться действия по настройке принтеров, должен быть добавлен в группу lpadmin.Пользователь, от которого будут выполняться действия по маркировке заданий, должен быть добавлен в группу lpmac.Это может быть один и тот же пользователь.Для удаленного использования сервера печати необходимо от имени администратора через механизм sudo выполнить следующие команды:

и вставить следующую строку:

Значение параметра DefaultAuthType должно быть Basic.Далее выполнить вход на сервере печати от имени учетной записи, входящей в группу lpadmin, и настроить принтеры (установить политику parsec и назначить максимальные допустимые уровни заданий). Настройка принтеров может быть выполнена с использованием утилиты fly-admin-printer (см. электронную справку).На клиентских машинах должны быть созданы файлы /etc/cups/client.conf. В файле конфигурации клиента client.conf должен быть задан один параметр ServerName, определяющий имя сервера печати, например:

Printer URI

Listed below are additional steps to manually generate the URI if required. Some printers or drivers may need a special URI as described in CUPS/Printer-specific problems.

USB

CUPS should be able to automatically generate a URI for USB printers, for example .

If it does not, see for troubleshooting steps.

Parallel port

The URI should be of the form . For instance, if the printer is connected on , use .
If you are using a USB to parallel port adapter, use as the printer URI.

Network

If you have set up Avahi as in , CUPS should detect the printer URI. You can also use to find the name of your printer and its address (for instance, ).

The URI for printers on SMB shares is described in the man page.

Note: Any special characters in the printer URIs need to be appropriately quoted, or, if your Windows printer name or user passwords have spaces, CUPS will throw a error.

For example, becomes .

This result string can be obtained by running the following command:

$ python -c 'from urllib.parse import quote; print("smb://" + quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6"))'

Remote CUPS print servers can be accessed through a URI of the form . See for details on setting up the remote print server.

See for additional issues and solutions.

INTRODUCTION

CUPS is a standards-based, open source printing system developed by Apple Inc.
for macOS and other UNIX-like operating systems. CUPS uses the Internet
Printing Protocol («IPP») and provides System V and Berkeley command-line
interfaces, a web interface, and a C API to manage printers and print jobs. It
supports printing to both local (parallel, serial, USB) and networked printers,
and printers can be shared from one computer to another, even over the Internet!

Internally, CUPS uses PostScript Printer Description («PPD») files to describe
printer capabilities and features and a wide variety of generic and device-
specific programs to convert and print many types of files. Sample drivers are
included with CUPS to support many Dymo, EPSON, HP, Intellitech, OKIDATA, and
Zebra printers. Many more drivers are available online and (in some cases) on
the driver CD-ROM that came with your printer.

CUPS is licensed under the Apache License Version 2.0. See the file
«LICENSE» for more information.

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

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

Примечание:

  • Вспомогательные программы CUPS запускаются с использованием пользователя и группы . Это позволяет им получать доступ к файлам принтера и читать файлы конфигурации в , которые принадлежат группе .

USB

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

$ lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse

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

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

$ dmesg | grep -i parport
 parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
 lp0: using parport0 (polling)

Cеть

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

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

LEGAL STUFF

Copyright 2007-2019 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.

CUPS is provided under the terms of the Apache License, Version 2.0 with
exceptions for GPL2/LGPL2 software. A copy of this license can be found in the
file . Additional legal information is provided in the file .

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an «AS IS» BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

Создание класса для нескольких принтеров

‘Класс’ в CUPS имеет значение группы. Когда у вас есть несколько принтеров, подключенных к одному серверу CUPS, вы можете захотеть их сбалансировать (задания на печать автоматически помещаются в очередь для разных принтеров). Это также дает преимущество в том, что пользователи на удаленной машине работают с одним ‘принтером’. Что особенно полезно, когда один принтер вышел из строя, вы просто исключаете его из класса, но для конечных пользователей ничего не изменится — печать заданий, поставленных на другой принтер сервером CUPS, продолжает обрабатываться. Создание и управление классами можно выполнять из веб-интерфейса CUPS.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *