Как расшарить принтер на линукс

Обновлено: 04.07.2024

Эта статья содержит инструкции по совместному использованию принтеров между системами, будь то между двумя системами GNU/Linux или между системой GNU/Linux и Microsoft Windows.

Contents

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

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

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

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

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

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

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

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

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

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

Есть другие возможности для настройки, включая автоматические способы, которые детально описаны в Использование сетевых принтеров и cupsd.conf(5) .

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

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

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

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

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

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

Обратите внимание, что "обнаружение" на сервере - другая вещь по сравнению с "обнаружением" на удаленном сетевом хосте. На сервере печати cupsd предоставляет поддержку протокола DNS-SD, который транслируется avahi-daemon . Служба cups-browsed не нужна на сервере печати за исключением, если будет транслироваться старый протокол CUPS'а, или если сервер печати также будет "обнаруживать" другие сетевые принтеры. На удаленном сетевом хосте служба cups-browsed требуется для "обнаружения" сетевой трансляции служб печати, а также запущенная служба cups-browsed будет автоматически запускать cupsd .

Служба org.cups.cupsd.service запускается автоматически при подключении USB-принтера, но это может быть не так для других типов подключений. Если cupsd не запущен, тогда avahi-daemon не транслирует службу печати, поэтому в этом случае service-файл юнита systemd должен быть изменен при запуске во время загрузки, а затем служба снова должна быть "включена/установлена" с новой зависимостью. Чтобы сделать это, отредактируйте раздел файла службы [Install] , добавив зависимость WantedBy=default.target , а затем включите и запустите службу org.cups.cupsd.service .

Между GNU/Linux и Windows

Сервер Linux - клиент Windows

После настройки сервера установите драйвера для принтера на компьютере под управлением Windows. Если принтер сервера CUPS настроен на использование собственных драйверов вместо raw (raw - когда cups просто передает на принтер полученное задание для печати без какой-либо обработки), вы можете просто выбрать общий драйвер postscript для клиента Windows (например, 'HP Color LaserJet 8500 PS' либо 'Xerox DocuTech 135 PS2', либо 'Microsoft PS Class driver').

Общий доступ с помощью Bonjour

Службы печати Bonjour позволяет клиентам Windows легко подключаться к серверам печати Unix с включенным обнаружением.

Общий доступ с помощью IPP

Internet Printing Protocol является широко поддерживаемым стандартом среди операционных систем, который также прост в настройке. Он имеет функцию переадресации портов, туннелирования и т.д.

Примечание: Возможно, вам придется добавить Internet Printing Client в Windows (Панель управления > Программы > Включение или отключение компонентов Windows > Службы печати и документов)

На компьютере с Windows, перейдите в Панель управления > Просмотр устройств и принтеров и выберите в контекстном меню 'Добавить принтер'. Если у вас Windows 10, нажмите кнопку "Принтер, который я хочу, не указан". Далее, выберите 'Выбрать общий принтер по имени' и тип расположения принтера:

(Где hostname - это имя хоста или IP-адрес сервера GNU/Linux, а printer_name - это имя подключенного принтера. Вы также можете использовать полное доменное имя сервера, если оно есть, но вам может потребоваться установить ServerAlias my_fully_qualified_domain_name в /etc/cups/cupsd.conf , чтобы это заработало).

Общий доступ с помощью Samba

Samba - реализация протокола обмена файлами Windows и принтерами, даже самых старых.

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

Для настройки Samba на сервере Linux, отредактируйте файл /etc/samba/smb.conf , это даст возможность предоставить общий доступ к принтерам. Файл smb.conf может содержать примерно следующее:

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

Учтите, что при таких настройках, должна существовать учетная запись с правами доступа к принтеру. Для публичного принтера установите guest ok в yes, и удалите строку valid users. Для добавления учетных записей, создайте действующую учетную запись GNU/Linux, а затем установите на Samba-сервере пароль. Например:


Затем перезапустите демон Samba:

Естественно, имеется множество дополнительных настроек сервера печати Samba, поэтому, для получения дополнительной информации, следует обратиться к справочной документации Samba и CUPS. Образцы и примеры можно посмотреть в файле smb.conf.example .

Сервер Windows - клиент Linux

Важно: Любые особые символы в URI принтера должны быть соответствующим образом процитированы, или, если в имени вашего принтера Windows или в пароле есть пробелы, тогда CUPS выдаст ошибку "lpadmin: Bad device-uri".

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

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

Общий доступ с помощью LPD

В Windows 7, 8 и 10 имеется интегрированный LPD-сервер, то, возможно, будет намного проще использовать именно его, поскольку не придется для клиента устанавливать Samba, а на сервере - можно будет обойтись без сложных настроек. Это можно включить в разделе Службы печати и документов, находящего в Панель управления -> Программы -> Включение или отключение компонентов Windows. В свойствах принтера должен быть включен общий доступ. Используйте общее имя без особых символов, таких как пробел, запятые и др.

Затем, принтер можно будет добавить в CUPS просто выбрав протокол LPD. Адресс принтера будет выглядеть следующим образом:

Перед добавлением вам, скорее всего, понадобиться установить для своей модели принтера соответствующий драйвер. Драйвера Generic PostScript или RAW тоже должны работать.

Общий доступ с помощью IPP

Как и в предыдущем случае, для организации общего доступа к принтерам протокол IPP является предпочтительным, но он работает только с версиями Windows Server. Версия Windows Server (например Server 2016) включаюет поддержку IPP (функции "Службы печати и документов", служба "Интернет-печати"). Клиентские версии (например, Windows 10) включают поддержку только клиента IPP и не поддерживают совместный доступ через IPP.

Общий доступ с помощью Samba

Гораздо проще использовать стандартные возможности Windows по предоставлению общего доступа к принтерам с помощью Samba. Ручная настройка практически не требуется и все можно выполнить через бэкенд CUPS. Однако, как было замечено выше, в Windows могут возникнуть проблемы с аутентификацией и ограничением доступа.

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

В следующем разделе будут описаны настройки клиента с обоими (cupsd и smbd) запущенными демонами.

Настройка через веб-интерфейс

Samba CUPS бэк-енд должен быть включен по умолчанию, но если этого не происходит - введите следующую команду и перезапустите CUPS.

Затем, просто зайдите в веб-интерфейс CUPS и добавьте новый принтер. В качестве устройства выберите "Windows Printer via SAMBA".

Для местоположения устройства, выберите:

Или, если пароля нет:

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

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

При ручной настройке: остановите демон CUPS и добавьте свой принтер в /etc/cups/printers.conf , который, к примеру, может выглядеть так:

Перезапустите демон CUPS и распечатайте тестовую страницу.

Поиск URI для серверов печати Windows

Иногда имя хоста Windows (усеченно) меньше предстоящего точного URI устройства (расположение устройства) (Sometimes Windows is a little less than forthcoming about exact device URIs (device locations)). Если возникли проблемы с указанием правильного расположения устройства в CUPS, выполните следующую команду, чтобы вывести список всех общих ресурсов, доступных для определенного имени пользователя windows:

В этом списке будет отображаться только общие URI для определенного имени пользователя Windows в локальной подсети локальной сети, если Samba настроен и работает правильно. Команда должна вернуть что-то вроде этого:

Здесь требуется первая часть последней строки - ресурс, соответствующий описанию принтера. Поэтому для печати на принтер EPSON Stylus введите:

Удаленное управление

Чтобы дать удаленным хостам доступ к одному из этих уровней, добавьте оператор Allow в этот уровень. Оператор Allow может принимать одну или несколько форм, перечисленных ниже:

Отрицательный оператор также может быть использован. Например, чтобы предоставить полный доступ ко всем хостам на локальных сетевых интерфейсах, отредактируйте /etc/cups/cupsd.conf :

The factual accuracy of this article or section is disputed.

Reason: CUPS автоматически создает сертификат, поэтому это не должно быть проблемой. (Discuss in Talk:CUPS (Русский)/Printer sharing (Русский))

Вам также может потребоваться добавить:

Это должно помочь избежать ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.

Kerberos

Если вы используете поддержку NSS в Samba winbind, вы можете добавить имя группы AD в /etc/cups/cups-files.conf - в следующем примере sysadmin может быть группой AD:

Решение проблем

Общие советы по устранению неполадок смотрите в CUPS/Решение проблем.

Ошибки разрешений в Windows

Некоторые пользователи исправили ошибки 'NT_STATUS_ACCESS_DENIED' (Windows клиенты), используя несколько иной синтаксис:

propk.ru

Главная › Linux › Как расшарить принтер в Linux или открыть общий доступ к нему.

Как расшарить принтер в Linux или открыть общий доступ к нему.

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

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

Когда на компьютере, к которому подключен принтер, установлена операционная система Windows то сделать это не составит труда.

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

Рассмотрим вариант когда принтер подключен к машине с операционной системой Linux.

Вот тут не все так просто, для не подготовленного человека.

Хотя принцип такой же как и в windows. Делаем принтер общедоступным и потом настраиваем его на нужном нам компьютере из этой локальной сети.

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

В Linux печатью управляет CUPS.

Чтоб сделать принтер общедоступным нам необходимо зайти в настройки этой службы.

Для этого вам необходимо в браузере зайти по адресу:

принтер в linux - служба управления печатью

После этого ваш принтер доступен для остальных компьютеров в локальной сети.

Подключаем общедоступный принтер к другому компьютеру.

Для того, чтоб подключить общедоступный принтер в linux, в локальной сети нам необходимо знать ip адрес компьютера к которому он подключен.

Вам может в этом помочь статья про команды в линукс.

Как посмотреть свой MAС и IP описано в этой статье.

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

Не зависимо от того какая операционная система на нем стоит, для всех систем это работает одинаково.

Пишем путь к системе управления принтером, указав вместо localhost, IP адрес компьютера к которому принтер подключен.

Например, если пк с принтером имеет адрес 192.168.1.41

Перед вами откроется страница сервиса печати компьютера с общедоступным принтером.

Вам необходимо зайти на вкладку принтеры и выбрать нужный вам принтер.

В результате в адресной строке браузера вы увидите полный путь к нашему общедоступному принтеру.

сетевой путь до общедоступного принтера в linux

Теперь открываем мастер установки принтеров, на компьютере в котором нужно его настроить.

Для этого открываем панель управления, выбираем принтеры и устройства , установка сетевого принтера.

настраиваем общедоступный принтер

Нажимаем далее, если спросит какой принтер указываем его из списка и далее.

Если у вас windows 10

Открываете параметры, устройства, принтеры и сканеры.

установка расшаренного из linux принтера в windows 10

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

Если есть кому, что дополнить или поделиться опытом пишите в комментариях.

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

Примечание. Samba это linux-сервер который воссоздает сетевую среду Windows, позволяя разделять сетевые ресурсы с компьютерами под управлением Windows. При этом компьютеры Windows "видят" компьютеры Linux так будто это тоже компьютеры Windows. Samba позволяет разделять по сети файлы и принтеры.

В общем Samba работает вполне нормально. Выполняя функции разделения сетевых ресурсов не только между компьютерами Linux - Windows, но и Linux - Linux. Однако бывают ситуации, когда нужно использовать другие варианты. Например расшарить принтер через Интернет или если у вас так называемый "Windows-принтер" который не удается расшарить через Samba.

Примечание. Любой принтер работает под управлением своей микропрограммы - прошивки. В нормальных принтерах прошивка записана в самом принтере. Но есть такие принтеры, их довольно много, в который прошивка динамически загружается в принтер драйвером этого принтера. Обычно такие принтеры нормально работают только под Windows. А под другими операционными системами с ними возникают те или иные проблемы. Например HP LaserJet M1132 или HP LaserJet P1102 в Linux локально подключаются и работают, но по сети через Samba их заставить работать очень сложно.

В этой статье будет описано как настроить сетевой принтер в Ubuntu 12.04. Есть несколько протоколов сетевой печати, один из них IPP (Internet Printing Protocol). Этот протокол дает возможность печати через сетевые протоколы TCP/IP. Хотя он называется "Печатный протокол Интернет", доступ к принтеру через него возможен и через локальную сеть, поскольку в ней используется те же протоколы TCP/IP. С технической точки зрения нет разницы между Интернет и локальной сетью.

Общий доступ к принтеру в Ubuntu Linux (через IPP)

Шаг первый

Естественно, первое что нужно сделать это установить и настроить локальный принтер на том компьютере к которому он подключен. Обычно, в Ubuntu, это делается автоматически, через некоторое время после того, как вы воткнули принтер в USB разъем и включили его. После подключения локального принтера нужно проверить его работу. И уже после этого расшаривать принтер по сети.

Шаг второй

В Linux печатью управляет служба CUPS. В Ubuntu, доступ к настройкам службы CUPS возможен через любой браузер - нужно открыть адрес "localhost:631" и в панели, на вкладке "Администрирование" включить опции "Разрешить совместный доступ ..", "Разрешить печать из Интернета":


Это нужно сделать на том компьютере к которому принтер подключен локально! Это будет компьютер-сервер.

Шаг третий

Нужно узнать IP адрес компьютера-сервера. Сделать это можно например через консоль, командой "ifconfig -a".

Шаг четвертый

Подключение принтера по сети, на компьютере-клиенте. Выполняется через стандартный GUI интерфейс, для GNOME это апплет "Печать" (Printing). Нажимаете кнопку добавить принтер, затем в диалоговом окне выбираете "Найти сетевой принтер", вводите IP адрес компьютера-сервера и нажимаете кнопку "Найти":



После установки сетевого принтера нужно проверить его работу.

IPP через локальную сеть

Общий (сетевой) доступ к принтеру через IPP имеет плюсы в сравнении с доступом через Samba:

  • Печать через IPP выполняется быстрее чем через Samba.
  • Некоторые "Windows-принтеры" очень сложно или даже невозможно заставить работать через Samba.

При использовании IPP через локальную сеть нужно обеспечить чтобы компьютер-сервер имел постоянный IP адрес. Если сетевые настройки раздаются через DHCP сервер (очень распространенный вариант роутер с DHCP сервером), тогда в настройках DHCP сервера нужно указать постоянный IP адрес для компьютера-сервера (через MAC адрес).

Если доступа к DHCP серверу нет, тогда можно указать ручные настройки для сетевой карты на компьютере-сервере.

Как расшарить принтер через Интернет

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

Если адреса одинаковые, значит адрес "прямой". Если адреса разные значит вы подключены через шлюз (роутер). Если вы подключены к Интернет через собственный роутер, тогда IP адрес нужно смотреть не на компьютере, а на этом роутере. Если вы подключены к Интернет через роутер и ваш роутер имеет "прямой" IP адрес, тогда в настройках роутера нужно сделать "проброс порта" (port forwarding) для TCP порта 631.

Если IP адрес вашего компьютера или роутера не "прямой", тогда печатать через Интернет не получится.

Иван Сухов, 2013 г.

Итак. Предположительно, сервис печати 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" содержат большое количество настроек бумаги, печати и т.д., так что нет проблем настроить нужный вид печати через них.

Заключение

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

Шаг второй


Это необходимо сделать на компьютере, к которому принтер подключен локально! Это будет серверный компьютер.

Шаг третий

Шаг четвертый



После установки сетевого принтера нужно протестировать его работу.

Метод 2 (CUPS):

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

IPP через локальную сеть

Общий (сетевой) доступ к принтеру через IPP имеет преимущества перед доступом через Samba:

  • Печать IPP быстрее, чем Samba.
  • Некоторые «Windows-принтеры» очень сложно или даже невозможно использовать с Samba.

При использовании IPP в локальной сети убедитесь, что серверный компьютер имеет постоянный IP-адрес. Если сетевые настройки распространяются через DHCP-сервер (очень распространенная версия маршрутизатора с DHCP-сервером), постоянный IP-адрес для серверного компьютера должен быть указан в настройках DHCP-сервера (через MAC-адрес).

Если вы не можете получить доступ к DHCP-серверу, вы можете вручную указать настройки сетевой карты на серверном компьютере.

Установка драйвера

Если ваш компьютер не распознает ваш принтер автоматически, вам нужно поискать драйвер. В частности, вам нужен файл описания принтера PostScript (PPD). Это описание возможностей принтера, необходимых для его работы.

Использование базы данных Foomatic

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

Чтобы найти драйвер Foomatic в Ubuntu, например, перейдите в Системные настройки> Принтеры. Оттуда нажмите кнопку + или добавить. Выберите свой последовательный порт и нажмите Далее. Затем вы должны увидеть экран с просьбой выбрать марку и модель вашего принтера.

LinuxPrintUSBNetwork-Ubuntu-New-printer

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

Установка поставляемого производителем PPD

Если в базе данных Foomatic нет того, что вам нужно, вы можете проверить веб-сайт производителя принтера. Там вы можете найти файл PPD для CUPS.

LinuxPrintUSBNetwork-Ubuntu-Provide-PPD

Производители могут предоставить другие инструкции по установке или инструменты, которые помогут вам в этом процессе. Brother предоставляет драйверы и команды для запуска ваших принтеров в Linux. HP предоставляет программное обеспечение для печати и обработки изображений Linux (HPLIP).

Добавление сетевого принтера

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

LinuxPrintUSBNetwork-GNOME-Printers-Добавить

поэтому он должен появиться при поиске доступных принтеров.

Если нет, то пора запачкать руки. Веб-интерфейс CUPS выглядит одинаково независимо от того, какую среду рабочего стола Linux вы предпочитаете (также работает на Raspbian), так что пойдем туда.

LinuxPrintUSBСеть-администрирование-CUPS

В веб-интерфейсе CUPS нажмите «Добавить принтеры и классы» или вкладку «Администрирование» вверху.

Затем щелкните Добавить принтер. CUPS предложит вам root-доступ.

ipp: // IP-адрес / принтер / имя_принтера

… Изменяя ip_address и printer_name на правильные значения.

LinuxPrintUSBNetwork-CUPS-IPP

Большинство сетевых принтеров позволяют установить IP-адрес с помощью встроенной панели управления, но эта опция может быть недоступна или вы можете не захотеть назначать адрес удаленно. В любом случае это можно сделать с помощью DHCP. Это звучит сложно, но вам просто нужно добавить строку ниже в конец файла /etc/dhcpd.conf, указав свои имена или номера для hostname, mac_address и ip_address.

host имя хоста mac_address аппаратный Ethernet-адрес;
fixed_ip адрес;
>

CUPS поддерживает другие методы, если вы не хотите использовать DCHP.

Этот процесс работает, только если принтер уже подключен к сети. Если у вас есть старое проводное устройство, вы можете превратить его в беспроводное устройство с помощью Raspberry Pi

Как все должно работать

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

LinuxPrintUSBNetwork-GNOME-Printers

Чтобы убедиться, что принтер был добавлен автоматически, перейдите в «Настройки»> «Принтеры». Вы должны увидеть название вашего принтера слева.

Надежный резервный план

У принтеров не самая лучшая репутация. Они постоянно ломаются, у них заканчиваются чернила, и, как показывает объяснение выше, установка не всегда проста. Но в наши дни есть способы избежать настройки принтера для работы с каждым из ваших устройств.

Принтеры, совместимые с HP ePrint, предоставляют адрес электронной почты и распечатывают документы или фотографии, отправленные на этот адрес. Он работает независимо от того, используете ли вы настольный компьютер или мобильный телефон. Да, ваша работа зависит от службы HP, вы должны быть уверены, что они ничего не делают с вашей электронной почтой, а задания на печать могут занять некоторое время. Помимо прочего, он работает независимо от того, используете ли вы Linux, Windows, FreeBSD, Android, iOS, Ubuntu Touch или более старую версию Maemo, путешествуя по Nokia N900, от которого вы не могли избавиться.

Вы можете получить аналогичный опыт, если у вас уже есть компьютер, настроенный для работы с Apple AirPrint, Google Cloud Print и другими аналогичными службами.

Когда ничего не помогает, вы всегда можете попросить кого-нибудь распечатать ваш документ для вас

А если нет времени, можно хотя бы распечатать в PDF и сохранить документ на потом.

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