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

Обновлено: 05.07.2024

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

Заключение

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

В данной статье будет выполнена настройка CUPS из командной строки операционной системы CentOS/RedHat. Однако, аналогичным способом, подсистема печати может быть настроена практически на любой Unix-подобной системе.

Установка CUPS

CUPS может быть установлен из репозитария операционной системы CentOS/RedHat стандартными средствами:

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

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

Подключение принтера в CUPS

Для подключения и настройки принтера в CUPS проще всего воспользоваться WEB-интерфейсом, который доступен после установки.

Home page of CUPS

Для доступа к настройкам необходимо указать учетные данные локального пользователя, входящего в группу root или sys (настройки по умолчанию). Список групп, для которых разрешен доступ к настройкам, описан в конфигурационном файле: /etc/cups/cups-files.conf.

Чтобы добавить новый принтер в CUPS, необходимо зайти на WEB-интерфейс и перейти по пути: Administration -> Add Printer и далее следовать инструкциям мастера установки принтера:

Add a new printer in CUPS

Удаленный доступ к WEB-интерфейсу CUPS

Настройка доступа к интерфейсу CUPS осуществляется в конфигурационном файле: /etc/cups/cupsd.conf.

Но проще всего выполнить настройку параметров удаленного доступа к WEB-интерфейсу CUPS с помощью следующей команды:

Эта команда автоматически обновит конфигурационный файл /etc/cups/cupsd.conf, а оригинальный файл будет переименован в cupsd.conf.O.

Access to the remote WEB-interface of CUPS

Проверка печати в Linux

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

через WEB интерфейс:

из командной строки:

Печать PDF файла из командной строки в Linux

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

Samba — это бесплатная программная реализация сетевого протокола SMB/CIFS, которая предоставляет файловые и печатные службы для клиентов Windows и Linux. Она может интегрироваться с доменом Windows Server.

В этой инструкции описан метод как настроить принт сервер samba на CentOS Linux.

Требования для настройки сервера печати Samba на CentOS

  • Компьютер с установленной на нем системой CentOS.
  • Подключение к Интернету.
  • Компьютер с любой установленной на нем версией Windows.

Установка Samba на CentOS

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

$ sudo yum install samba
$sudo service smb start
$sudo chkconfig smb on

Далее проверьте запущена ли служба cups (CUPS в настоящее время является наиболее широко используемой системой в средах Unix/Linux). Сделать это можно легко, выполните код который показан ниже.

Терминал должен ответить следующее

Настройка сервера принтеров с помощью samba

Smb.conf — это конфигурационный файл для программы samba. Теперь откройте любой текстовый редактор ‘/etc/samba/smb.conf‘ и измените раздел принтеров на соответствующий ниже:

[Printers]
comment=
Printer Drivers path = /var/lib/samba/drivers
browseable = yes
guest ok = yes
read only = no

Две основные конфигурации, которые следует изменить в файле smb.conf, — это «guest ok» требуется прописать yes, и «browseable«, так же требуется ввести yes.

Теперь перезапустите службу samba

В файле /var/lib/samba/printers хранятся все драйверы принтера. Вы должны скопировать все файлы драйверов в каталог ‘/var/lib/samba/printers‘.

Доступ к принтеру с компьютера Windows

В Windows нажмите сочетание клавиш Win+R. Откроется окно «выполнить«, введите адрес сервера или имя сервера для получения доступа к серверу печати.

Настройка сервера печати Samba в CentOS Linux

Настройка сервера печати Samba в CentOS Linux

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

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

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

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

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