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

Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС

Вступление

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

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

В инструкции домен будет именоваться example.com, сам принтсервер — cupsserver (cupsserver.example.com) с IP адресом 10.10.100.50, а клиентские машины linux1, linux2, linux3 и т.д для клиентских машин Linux и windows1, windows2, windows3 и т.д. для клиентских машин Windows соответственно.

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

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

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

root@cupsserver:~# apt update && apt upgrade -y 

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

root@cupsserver:~# which cupsd 

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

/usr/bin/cupsd 

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

root@cupsserver:~# apt install cups -y 

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

root@cupsserver:~# cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
root@cupsserver:~# cp /etc/cups/cups-files.conf /etc/cups/cups-files.conf.original 
root@cupsserver:~# cp /etc/cups/cups-browsed.conf /etc/cups/cups-browsed.conf.original

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

root@cupsserver:~# cupsd -t 

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

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

root@cupsserver:~# service cups restart
или
root@cupsserver:~# systemctl restart cups
или
root@cupsserver:~# /etc/init.d/cups restart

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

root@cupsserver:~# service cups-browsed restart
или
root@cupsserver:~# systemctl restart cups-browsed
или
root@cupsserver:~# /etc/init.d/cups-browsed restart

Выполним команду

root@cupsserver:~# nano /etc/cups/cupsd.conf 

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

LogLevel warn 

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

LogLevel debug2 

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

root@cupsserver:~# netstat -plutn 

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

tcp 0   0   127.0.0.1:631   0.0.0.0:*   LISTEN  737/cupsd 

Дальнейшие действия зависят от степени вашей паранойи. Вы можете добавить в блоке, который условно начинается с комментария #Only listen for connections from the local machine несколько строк с указанием IP адресов или подсетей, откуда CUPS’у будет позволено слушать подключения.

# Only listen for connections from the local machine.
Listen localhost:631
Listen /run/cups/cups.sock
#Слушать подключения с определенного IP адреса
Listen 10.10.100.67:631
#Слушать подключения с подсети бухгалтерии
Listen 172.16.0.0:631

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

# Only listen for connections from the local machine.
Listen /run/cups/cups.sock
Port 631

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

# Show shared printers on the local network.
Browsing Off
BrowseLocalProtocols dnssd

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

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

# Default authentication type, when authentication is required...
DefaultAuthType Basic

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

root@cupsserver:~# usermod -a -G lpadmin user

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

# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup lpadmin

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

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

# Restrict access to the server...
<Location />
  Order allow,deny

</Location>

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

# Restrict access to the server...
<Location />
  Order allow,deny
 Allow from cupsserver                          # разрешение подключатся к самому себе по имени хоста
 Allow from cupsserver.example.com    # разрешение подключатся к самому себе по FQDN
 Allow from localhost                             # разрешение подключатся к самому себе через loopback интерфейс
 Allow from 10.10.100.*                        # Если хотите разрешить
 Allow from linux4.example.com           # доступ на печать с
 Allow from 172.168.5.125                   # определенных подсетей, IP или хостов
</Location>

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

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow from all
</Location>

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

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow from localhost
  Allow from 10.10.100.*
  Allow from admin.example.com
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  Order allow,deny
  Allow from localhost
  Allow from 10.10.100.*
  Allow from admin.example.com
</Location>

# Restrict access to log files...
<Location /admin/log>
  Order allow,deny
  Allow from localhost
  Allow from 10.10.100.*
  Allow from admin.example.com
</Location>

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

root@cupsserver:~# ls /usr/share/cups/locale

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

DefaultLanguage ru

Чтобы к вашему принтсерверу cupsserver.example.com можно было обращатся по его хосту (hostname), необходимо создать в папке /etc/cups/ файл client.conf с таким содержимым:

ServerName имя_хоста

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

root@cupsserver:/etc/cups# echo "ServerName $(cat /etc/hostname)" > /etc/cups/client.conf

Поскольку мы предполагаем, что в сети есть DNS сервер, то будет предпочтительным, чтобы можно было обращатся к принтсерверу по его доменному имени (cupsserver.example.com). Также серверу может быть присвоен CNAME псевдоним на DNS сервере, например print или cups. Чтобы принтсервер принимал подключения по таким обращениям, необходимо добавить такую строчку в файл /etc/cups/cupsd.conf:

ServerAlias cupsserver.example.com print cups

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

ServerAlias *

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

# Which protocols will we use to discover printers on the network?
# Can use DNSSD and/or CUPS and/or LDAP, or 'none' for neither.

BrowseRemoteProtocols dnssd cups

Благодаря этой опции принтсервер ищет расшаренные принтера в сети. Ее мы оставляем включенной, так как в наших интересах, чтобы принтсервер искал принтера в сети. Но нам совершенно не нужно, чтобы принтсервер рассылал вообще все подключенные к нему принтеры, иначе возникнет большая путаница. Для предотвращения такого сценария находим следующую опцию #BrowseLocalProtocols none и раскомментируем ее:

# Which protocols will we use to broadcast shared local printers to the network?
# Can use DNSSD and/or CUPS, or 'none' for neither.
# Only CUPS is actually supported, as DNSSD is done by CUPS itself (we ignore DNSSD in this directive).

BrowseLocalProtocols none

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

В качестве примера настроим печать сквозь принтсервер между двумя клиентскими машинами с Linux (имя хоста linux1) и Windows 8 соотвественно (имя хоста windows1). Начнем с настройки windows1 в качестве приемника печати от принтсервера. У меня к нему подключен и штатно работает принтер Canon i-SENSYS MF4410. Имя принтера — Canon-MF4400. Самый простой способ, на самом деле, обеспечить печать с принтсервера на windows1 — перейти в Панель управления > Программы > Программы и компоненты > Включение или отключение компонентов Windows. Там мы включаем компонент Службы печати и документов > Служба печати LPD. Это позволит подключить данный принтер к принтсерверу с помощью адреса lpd://windows1/Canon-MF4400. Разумеется, назревает вопрос, почему бы не подключить с помощью SMB? Никто не запрещает. Если у вас отлажен данный метод, вы можете расшарить принтер таким образом, и подключить к принтсерверу по протоколу SMB. Инстукции по данному подключению, на мой взгляд, выходят за рамки данной статьи, которая и так выходит довольно объемной. Пока же считаем, что читатель успешно зашел по адресу http://cupsserver:631/admin нажал на кнопку «Добавить новый принтер» и следуя интуиции, логике и прочитатанным ранее мануалам успешно подключил принтер с windows1 по протоколу LPD к принтсерверу cupsserver[example.com] и страница принтера доступна по адресу http://cupsserver:631/printers/Canon-MF4400.

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

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

Есть неприятный момент. Если вы введете linux1 в домен, настроите на нем CUPS по этим инструкциям, то можете заметить абсурдную ситуацию, когда на WEB-интерфейс linux1 можно зайти снаружи, но на самом хосте этого сделать нельзя! И графические приложения для локальной настройки принтеров, вроде приложения system-config-printer в Linux Mint, отказываются работать. При попытке подключения на свой же CUPS по по адресу http://linux1:631/ будет сообщение «Запрещено» или «Bad Request». Это известная и толком не решенная на множестве форумов интернета проблема.

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

127.0.0.1       localhost
127.0.1.1    linux1.example.com linux1
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe02::2 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

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

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

127.0.0.1       localhost
192.168.1.50   linux1.example.com linux1

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

127.0.0.1       localhost
# 127.0.1.1   linux1.example.com linux1

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

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

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

user@linux1:~$ sudo nano /etc/cups/cupsd.conf

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


DefaultLanguage ru         # Если язык присутствует в папке /usr/share/cups/locale

ServerAlias linux1.example.com linux1 [CNAME псевдоним присвоенный на DNS сервере]
или
ServerAlias *              # Если неохота вникать в особенности

Listen /run/cups/cups.sock 
Listen localhost:631           # Слушать localhost
Listen 10.10.100.50:631    # IP адрес нашего принтсервера.
Listen cupsserver:631        # Доменное имя принтсервера. Рекомендую чтобы его IP тоже был, на всякий случай
Listen linux1:631          # 
или
Port 631                   # Будет слушать подключения со всех адресов
Listen /run/cups/cups.sock

Browsing off                          # Выключено. Машина будет посылать информацию только принтсерверу

DefaultAuthType Basic      # Без изменений. Есть вариант с авторизацией Kerberos, но там много подводных камней

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

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


# Restrict access to the server...
<Location />
  Order allow,deny        # Определяет политику доступа "Что не разрешено, то запрещено"
  Allow from localhost    # Позволяет печатать самой linux1
  Allow from linux1       # Печать на свое имя хоста. Проблемы этого действия описаны выше
  Allow from cupsserver   # Если CUPS нормально взаимодействует с DNS, то сработает. Увы, не всегда это так
  Allow from cupsserver.example.com   # FQDN принтсервера
  Allow from 10.10.100.50 # Разрешение на печать с IP принтсервера **cupsserver**
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny        # Аналогично предыдущему
  Allow from localhost    # Необходимо для возможности добавлять принтеры
  Allow from linux1       # Аналогично предыдущему
  Allow from 10.10.101.71 # Предположим, это IP админа
  Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
  AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
  Require user @SYSTEM    # Определение группы доступа к CUPS
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
#Блок идентичен предыдущему
  Order allow,deny        # Аналогично предыдущему
  Allow from localhost    # Необходимо для возможности добавлять принтеры
  Allow from linux1       # Аналогично предыдущему
  Allow from 10.10.101.71 # Предположим, это IP админа
  Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
  AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
  Require user @SYSTEM    # Определение группы доступа к CUPS
</Location>

# Restrict access to log files...
<Location /admin/log>
#Блок идентичен предыдущему
  Order allow,deny        # Аналогично предыдущему
  Allow from localhost    # Необходимо для возможности добавлять принтеры
  Allow from linux1       # Аналогично предыдущему
  Allow from 10.10.101.71 # Предположим, это IP админа
  Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
  AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
  Require user @SYSTEM    # Определение группы доступа к CUPS
</Location>

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

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

user@linux1:~$ sudo nano /etc/cups/cups-browsed.conf 

  BrowseRemoteProtocols none # Пишем none чтобы не получить кучу принтеров автоматически. 

  BrowseLocalProtocols cups  # Показывать подключеные принтеры в сеть. DNSSD указывать не надо, его директива в cupsd.conf

  BrowseOrder Allow,Deny             # Аналогично директиве Order в cupsd.conf - необходимо явно указать, куда МОЖНО посылать информацию о подключенных принтерах
  BrowseAllow 10.10.100.50           # IP принтсервера
  BrowseAllow cupsserver             # Имя хоста принтсервера
  BrowseAllow cupsserver.example.com # Полное доменное имя принтсервера

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

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

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

user@linux1:~$ sudo usermod -a -G lpamin printeradmin 

и авторизовываться на http://имя_хоста:631/admin c помощью его учетных данных.

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

user@linux1:~$ sudo groupadd printersadmins
user@linux1:~$ sudo usermod -a -G printersadmins printeradmin
user@linux1:~$ sudo usermod -a -G printersadmins user

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

# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup lpadmin

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

# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup lpadmin printersadmins somegroup

И наконец, третий вариант. Сделать администраторами принтсервера и 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 такую строку:

/var/lib/samba/winbindd_privileged/pipe rw

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

/var/lib/sss/pipes/private/pam rw

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

ad_gpo_map_interactive = +cups

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

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

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

[Unit]
Description=CUPS Scheduler
Documentation=man:cupsd(8)
After=sssd.service

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

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

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

Установить принтер на Linux это часто специфическая задача, разная для разных марок и даже моделей. Поэтому не вижу смысла описывать установку принтера и примем за факт, что на хосте linux1 установлен принтер Kyocera-1024FP с именем Kyocera-1024FP, и страница принтера доступна по ссылке http://linux1:631/printers/Kyocera-1024FP.

Теперь, когда сервер и клиенские машины 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, «Описание» и «Расположение» на ваше усмотрение, и нажмите «Добавить группу».

Теперь у нас есть группа printer-windows1 с принтером Canon-MF4400 в ней. Страница этой группы доступна так же как и страница принтера Canon-MF4400 с оговоркой на немного другой путь — http://cupsserver:631/classes/printer-windows1.

Еще у нас все еще есть подключенный к linux1 принтер Kyocera-1024FP. Подключим его к принтсерверу по HTTP. Выбираем метод подключения «Протокол интернет печати (http)» [Internet Printing Protocol (http)], из списка драйверов выбираем марку «Generic», модель «IPP Everywhere». Называем его как угодно, мы назовем так же как на хосте linux1Kyocera-1024FP. Теперь принтер доступен на принтсервере по ссылке http://cupsserver:631/printers/Kyocera-1024FP. Аналогично настройке группы printer-windows1 создаем группу printer-linux1 c принтером Kyocera-1024FP в ней. Ее ссылка соответственно http://cupsserver:631/classes/printer-linux1.

Теперь подключим принтер Kyocera-1024FP с хоста linux1 через принтсервер cupsserver к хосту windows1 с системой Windows 8 на борту без какой либо дополнительной(!) установки драйверов. Для этого мы при подключении принтера выбираем «Выбрать общий принтер по имени». В общем случае мы пишем http://имя_принтcервера:631/classes/название_группы. В нашем конкретном случае — http://cupsserver:631/classes/printer-linux1. При запросе на выбор драйвера указываем марку «Generic», модель — «MS Publisher Imagesetter». Все подтверждаем далее, и имеем подключенный принтер с название вроде printer-linux1 на http://cupsserver:631. Если до сих пор никаких ошибок и подводных камней при настойке не возникло, то попытка пробной печати приведет к успешной печати на Kyocera-1024FP.

Теперь подключим принтер Canon-MF4400 с хоста windows1 через принтсервер cupsserver к хосту linux1 с системой Linux на борту без какой либо дополнительной(!) установки драйверов. Для этого мы при подключении принтера действуем аналогично тому, как подключали Kyocera-1024FP к принтсерверу cupsserver. То есть при добавлении принтера на linux1 выбираем метод подключения «Протокол интернет печати (http)», в качестве расположения принтера (Canon-MF4400) ссылку на его группу на принтсервере — http://cupsserver:631/classes/printer-windows1. При запросе на выбор драйвера указываем марку «Generic», модель — «IPP Everywhere». Называем его как угодно, можно назвать так же как группу — printer-windows1. Теперь принтер доступен на linux1 по ссылке http://linux1:631/printers/printer-windows1, и мы уже можем отправлять на печать документы.

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

Заключение

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

Состояние перевода: На этой странице представлен перевод статьи CUPS/Printer sharing. Дата последней синхронизации: 13 июля 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

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

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

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

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

Для доступа к странице администрирования CUPS, откройте в браузере адрес: http://localhost:631.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

затем перезапустите службу 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 может быть достигнут, используя #Общий доступ с помощью Bonjour, #Общий доступ с помощью IPP или #Общий доступ с помощью Samba.

После настройки сервера установите драйвера для принтера на компьютере под управлением 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 > Службы печати и документов)

Сначала, настройте сервер как описано в разделе #Внутри систем GNU/Linux.

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

http://hostname:631/printers/printer_name

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

Примечание:

  • Диалоговое окно ‘Добавить принтер’ в Windows предлагает формат http://computername/printers/printername/.printer, который Windows не примет. Вместо этого используйте синтаксис, предложенный выше.
  • Если вы используете прокси, тщательно проверяйте все использованные прокси исключения. Неправильная настройка здесь может привести к невозможности добавления принтера до следующей перезагрузки, даже если вы отключите прокси-сервер после этого (по крайней мере, в Windows 7).

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

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

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

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

/etc/samba/smb.conf
[global]
workgroup=Heroes
server string=Arch Linux Print Server
security=user

[printers]
    comment=All Printers
    path=/var/spool/samba
    browseable=yes
    # разрешите это, чтобы пользователь 'гостевой учетной записи' мог пользоваться печатью.
    guest ok=no
    writable=no
    printable=yes
    create mode=0700
    write list=@adm root ваше_имя_пользователя

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

/etc/samba/smb.conf
[ML1250]
    comment=Samsung ML-1250 Laser Printer
    printer=ml1250
    path=/var/spool/samba
    printing=cups
    printable=yes
    printer admin=@admin root ваше_имя_пользователя
    user client driver=yes
    # разрешите это, чтобы пользователь 'гостевой учетной записи' мог пользоваться печатью.
    guest ok=no
    writable=no
    write list=@adm root ваше_имя_пользователя
    valid users=@adm root ваше_имя_пользователя

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

# useradd ваше_имя_пользователя
# smbpasswd -a ваше_имя_пользователя

Затем перезапустите демон 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

станет:

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

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

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

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

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

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

# lpd://windowspc/имя_общего_принтера

Перед добавлением вам, скорее всего, понадобиться установить для своей модели принтера соответствующий драйвер. Драйвера 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.

# ln -s $(which smbspool) /usr/lib/cups/backend/smb

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

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

smb://имя_пользователя:пароль@имя_хоста/имя_принтера

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

smb://имя_пользователя@имя_хоста/имя_принтера

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

smb://имя_пользователя:пароль@домен/имя_хоста/имя_принтера
Ручная настройка

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

/etc/cups/printers.conf
<DefaultPrinter MyPrinter>
AuthInfoRequired username,password
Info My printer via SAMBA
Location In my Office
MakeModel Samsung ML-1250 - CUPS+Gutenprint v5.2.7        # <= для получения списка доступных моделей запустить 'lpinfo -m'
DeviceURI smb://username:password@hostname/printer_name   # <= URI сервера, выбирать согласно описания в предыдущем разделе
State Idle
Type 4
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
AllowUser yourusername                                    # <= не забудьте изменить это
OpPolicy default
ErrorPolicy stop-printer
</Printer>

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

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

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

$ smbtree -U имя_пользователя_windows

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

 WORKGROUP
	\\REGULATOR-PC   		
		\\REGULATOR-PC\Z              	
		\\REGULATOR-PC\Public         	
		\\REGULATOR-PC\print$         	Printer Drivers
		\\REGULATOR-PC\G              	
		\\REGULATOR-PC\EPSON Stylus CX8400 Series	EPSON Stylus CX8400 Series

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

smb://имя_пользователя:пароль@REGULATOR-PC/EPSON%20Stylus%20CX8400%20Series

как URI в CUPS.

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

Однажды сервер настроенный, как описано в #Внутри систем GNU/Linux, может также быть настроенным так, чтобы им можно было управлять удаленно. Добавьте разрешенные хосты в блок <Location /admin> в /etc/cups/cupsd.conf, используя тот же синтаксис, что и в #Ручная настройка. Обратите внимание, что доступны три уровня доступа:

<Location />           #доступ к серверу
<Location /admin>	#доступ к страницам администратора
<Location /admin/conf>	#доступ к файлам конфигурации

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

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

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

# Ограничить доступ к серверу...
# По умолчанию возможны только локальные подключения
<Location />
   Order allow,deny
   Allow from @LOCAL
</Location>

# Ограничить доступ к страницам администратора...
<Location /admin>
   Order allow,deny
   Allow from @LOCAL
</Location>

# Ограничить доступ к файлам конфигурации...
<Location /admin/conf>
   AuthType Basic
   Require user @SYSTEM
   Order allow,deny
   Allow from @LOCAL
</Location>

The factual accuracy of this article or section is disputed.

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

DefaultEncryption Never

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

Kerberos

Kerberos может использоваться для аутентификации пользователей, обращающихся к удаленному серверу CUPS. Это предполагает, что на вашем компьютере есть keytab, и ему понадобится билет для «HTTP». Вместо этого http://localhost:631 вы должны использовать https://host.example.co.uk:631 т.к. требуется шифрование для auth (следовательно, https), и требуется полное имя хоста, чтобы Kerberos/Negotiate могли работать. Кроме того, сервер должен быть настроен в /etc/cups/cupsd.conf, чтобы использовать DefaultAuthType Negotiate.

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

SystemGroup sys root sysadmin

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

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

Не удается отправить на печать из приложений GTK

Если ты получил сообщение getting printer information failed (ошибка получения информации о принтере), когда пытался отправить на печать из приложения GTK, тогда добавь эту строку в свой /etc/hosts:

 # serverip 	some.name.org 	ServersHostname

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

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

smb://рабочая_группа/имя_пользователя:пароль@имя_хоста/имя_принтера

Другие операционные системы

Более подробную информацию о взаимодействии CUPS с другими системами печати можно найти в руководстве CUPS, например, на http://localhost:631/help/network.html

Система печати CUPS (Common UNIX Printing System) является одной из основных технологий, используемых для управления и подключения принтеров в UNIX-подобных операционных системах. Однако, существует возможность установить CUPS на Windows, чтобы использовать его преимущества и для подключения и управления принтерами на платформах Windows.

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

В этой статье будет представлена пошаговая инструкция, которая поможет вам установить CUPS на Windows и настроить его для работы с принтерами.

Содержание

  1. Подготовка к установке CUPS на Windows
  2. Загрузка и установка CUPS
  3. Настройка CUPS после установки
  4. Создание принтера в CUPS
  5. Подключение принтера к CUPS

Подготовка к установке CUPS на Windows

Перед установкой CUPS на Windows вам необходимо выполнить несколько предварительных шагов :

1. Убедитесь, что у вас установлены права администратора

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

2. Установите необходимые драйверы принтера

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

3. Убедитесь, что ваш компьютер подключен к сети

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

4. Загрузите CUPS для Windows

Перейдите на официальный сайт CUPS и загрузите последнюю версию CUPS для Windows. Обычно это будет файл с расширением .exe. Сохраните файл на ваш компьютер для последующей установки.

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

Загрузка и установка CUPS

Шаг 1: Перейдите на официальный сайт проекта CUPS по адресу https://www.cups.org/.

Шаг 2: На главной странице сайта найдите раздел «Downloads» и выберите вкладку «Windows Software».

Шаг 3: В списке программ найдите «CUPS Windows Binaries» и нажмите на ссылку для скачивания.

Шаг 4: После скачивания файла установщика CUPS, запустите его, следуя инструкциям на экране.

Шаг 5: В процессе установки могут потребоваться дополнительные компоненты, такие как Cygwin. Установите все необходимые компоненты, следуя указаниям установщика.

Шаг 6: По завершении установки CUPS, можно запустить его, открыв окно командной строки и введя команду «cupsd» без кавычек.

Шаг 7: Теперь CUPS должен быть доступен по адресу http://localhost:631 в любом веб-браузере. Вы можете настроить и управлять принтерами и печатными заданиями через веб-интерфейс CUPS.

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

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

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

  1. Откройте веб-браузер и введите в адресной строке «localhost:631».
  2. Нажмите на кнопку «Администрирование» для перехода к панели управления CUPS.
  3. Введите имя пользователя и пароль администратора системы и нажмите кнопку «Войти».
  4. После успешной авторизации вы будете перенаправлены на главную страницу администратора CUPS.
  5. Изучите различные настройки CUPS, доступные на главной странице, и определите, какие параметры необходимо изменить для вашего принтера.
  6. Для добавления нового принтера нажмите на ссылку «Добавить принтер» и выполните инструкции на экране.
  7. Настройте параметры печати, такие как тип принтера, подключение и настройки драйвера.
  8. После настройки принтера вы сможете просматривать и управлять заданиями печати на вкладке «Задания» в интерфейсе CUPS.

После завершения настройки CUPS вы сможете использовать принтеры, подключенные к вашей системе Windows, через системные приложения и печатные диалоги.

Создание принтера в CUPS

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

Шаг Действие
1 Откройте веб-браузер и введите в адресной строке «http://localhost:631». Нажмите Enter, чтобы открыть панель управления CUPS.
2 В панели управления CUPS найдите раздел «Administration» и выберите «Add Printer».
3 В появившемся окне «Add Printer» выберите принтер, который вы хотите добавить. Если принтер не отображается в списке, убедитесь, что он подключен к вашему компьютеру и включен.
4 Выберите тип подключения к принтеру. Обычно можно выбрать «AppSocket/HP JetDirect» или «Internet Printing Protocol (ipp)».
5 Выберите модель и производителя принтера из предложенного списка. Если вашей модели нет в списке, вы можете выбрать «Generic» и указать дополнительные настройки в следующем шаге.
6 Введите имя принтера и описание (необязательно), а затем нажмите «Continue».
7 Настройте дополнительные параметры принтера, если это необходимо. Нажмите «Continue», чтобы перейти к следующему шагу.
8 Установите права доступа к принтеру для пользователей системы. Нажмите «Set Allowed Users» и выберите нужных пользователей или группы.
9 Проверьте настройки принтера в окне «Add Printer» и нажмите «Set Printer Options», чтобы сохранить изменения.
10 После сохранения изменений вы увидите страницу с подтверждением, что принтер успешно добавлен. Теперь вы можете печатать через CUPS!

Следуя этим простым шагам, вы сможете создать принтер в системе CUPS и настроить его в соответствии с вашими потребностями.

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

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

  1. Убедитесь, что ваш принтер поддерживается CUPS. Вы можете найти список поддерживаемых принтеров на официальном веб-сайте CUPS. Если ваш принтер не поддерживается CUPS, вам, возможно, придется установить драйвер или программное обеспечение от производителя для его работы.
  2. Подключите принтер к вашей Windows-системе и убедитесь, что он работает корректно. Убедитесь, что принтер включен и правильно подключен к компьютеру.
  3. Откройте интерфейс управления CUPS, запустив веб-браузер и вводя в адресной строке «http://localhost:631». Это откроет веб-интерфейс CUPS.
  4. Войдите в интерфейс управления CUPS, используя имя пользователя и пароль вашей Windows-системы.
  5. Выберите раздел «Administration» (Администрирование) в интерфейсе управления CUPS.
  6. Нажмите на ссылку «Add Printer» (Добавить принтер) в разделе «Administration» (Администрирование).
  7. Выберите ваш принтер из списка поддерживаемых устройств или введите его IP-адрес в поле «Device URI» (URI устройства).
  8. Следуйте инструкциям на экране для завершения процесса установки принтера.
  9. После завершения установки принтера он будет добавлен в список доступных принтеров в интерфейсе управления CUPS.
  10. Опционально, вы можете настроить дополнительные параметры и настройки принтера с помощью интерфейса управления CUPS.

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

Чтобы иметь возможность сетевой печати на компьютере с виндой на принтер, подключенный к linux-машинке с CUPS-ом (Common Unix Printing System), нужно проделать следующее:

  1. Проверить, что в CUPS-е разрешён общий доступ к принтеру. Для этого идём по ссылке http://10.1.1.49:631/printers/scx4200 (IP-адрес и имя принтера заменить в соответствии с Вашим случаем). Должна быть надпись «разрешен совместный доступ».
  2. В windows запускаем «Мастер установки принтеров» — через панель управления или командой
    rundll32 SHELL32, SHHelpShortcuts_RunDLL AddPrinter

    жмём «Далее…», выбираем опцию «Сетевой принтер или принтер подключенный к другому компьютеру», далее выбираем опцию «Подключиться к принтеру в Интернете, домашней сети или в интрасети»

  3. В поле URL вводим адрес принтера, например: http://10.1.1.49:631/printers/scx4200
    настройка принтера для печати через CUPS
    Если спросит про драйвер, выбрать изготовителя «Generic» и модель «MS Publisher Imagesetter». Жмём «Далее…» и принтер готов к использованию.

Если что-то не работает, в проверить следующее:

  1. что в firewall-е на linux-машинке открыт TCP-порт 631 для windows-клиента.
  2. что в винде в Internet Explorer-е ОТКЛЮЧЕН прокси-сервер (пол-часа голову ломал в своё время, пока не допёр посмотреть туда)

Вам необходимо печать буклетов дешево спб? Срочная печать в СПб звоните нам: +7 (812) 380 03 99!

Бесплатный антивирус 360 Total Security скачать для защиты компьютера в реальном времени.

Posted in *nix, Howto, Windows.

Tagged with CUPS, linux, Windows, принтер.

17.06.2011

Наткнулся на простую инструкцию: настройка печати из-под Windows в CUPS.

Там даже много написано. Чтобы настроить печать в Windows на принтер, подключённый к CUPS, надо:

  1. Включить доступ к принтерам CUPS снаружи
  2. Добавить в Windows сетевой принтер, адрес которого совпадает с URL, с помощью которого вы настраиваете принтер в CUPS
  3. Выбрать драйвер принтера «MS Publisher Imagesetter»

Всё!

Теперь подробнее. Принтер Cups-PDF на машине grail (имя домена опускаю).

  • Заходим на машине с принтером на http://localhost:631/admin (или удалённо на http://grail:631/admin, если разрешено), включаем галочку «Разрешить совместный доступ к принтерам, подключенным к этой системе». Сохраняем.
  • Заходим в раздел «Принтеры», тыкаем в нужный принтер. Получаем примерно такой URL: http://grail:631/printers/Cups-PDF . Запоминаем его
  • В Windows вызвать «Мастер установки принтеров» («Принтеры и факсы» → «Установка принтера»). «Далее» → «Сетевой принтер…» → «подключиться к принтеру в Интернете…». Сюда вбиваем URL (в примере http://grail:631/printers/Cups-PDF); стоит обратить внимание на то, что адрес принтера — не localhost :). «Далее» → изготовитель «Generic» → принтер «MS Publisher Imagesetter» → «Ok» → «Готово».

Проверить можно, ткнув правой кнопкой в образовавшийся принтер → «Свойства» → «Пробная печать». Кстати, в нашем случае результат (файл .pdf) попадает довольно глубоко: в каталог /var/spool/cups-pdf/ANONYMOUS.

Автор заметки подсказывает на всякий случай проверить ещё 631 порт в брандмауэре на обеих машинах и настройки прокси Windows.

Примечание: Аналогичная настройка на Линуксе описана тут

  • Установка iis для 1с windows server 2019
  • Установка ddt2000 на windows 7
  • Установка ddt2000 на windows 7
  • Установка exchange server 2010 на windows server 2012
  • Установка home assistant на windows 7 x64

  • Установка cups принтера на windows

    Состояние перевода: На этой странице представлен перевод статьи CUPS/Printer sharing. Дата последней синхронизации: 13 июля 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

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

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

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

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

    Для доступа к странице администрирования CUPS, откройте в браузере адрес: http://localhost:631.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    затем перезапустите службу 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 может быть достигнут, используя #Общий доступ с помощью Bonjour, #Общий доступ с помощью IPP или #Общий доступ с помощью Samba.

    После настройки сервера установите драйвера для принтера на компьютере под управлением 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 > Службы печати и документов)

    Сначала, настройте сервер как описано в разделе #Внутри систем GNU/Linux.

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

    http://hostname:631/printers/printer_name
    

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

    Примечание:

    • Диалоговое окно ‘Добавить принтер’ в Windows предлагает формат http://computername/printers/printername/.printer, который Windows не примет. Вместо этого используйте синтаксис, предложенный выше.
    • Если вы используете прокси, тщательно проверяйте все использованные прокси исключения. Неправильная настройка здесь может привести к невозможности добавления принтера до следующей перезагрузки, даже если вы отключите прокси-сервер после этого (по крайней мере, в Windows 7).

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

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

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

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

    /etc/samba/smb.conf
    [global]
    workgroup=Heroes
    server string=Arch Linux Print Server
    security=user
    
    [printers]
        comment=All Printers
        path=/var/spool/samba
        browseable=yes
        # разрешите это, чтобы пользователь 'гостевой учетной записи' мог пользоваться печатью.
        guest ok=no
        writable=no
        printable=yes
        create mode=0700
        write list=@adm root ваше_имя_пользователя

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

    /etc/samba/smb.conf
    [ML1250]
        comment=Samsung ML-1250 Laser Printer
        printer=ml1250
        path=/var/spool/samba
        printing=cups
        printable=yes
        printer admin=@admin root ваше_имя_пользователя
        user client driver=yes
        # разрешите это, чтобы пользователь 'гостевой учетной записи' мог пользоваться печатью.
        guest ok=no
        writable=no
        write list=@adm root ваше_имя_пользователя
        valid users=@adm root ваше_имя_пользователя

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

    # useradd ваше_имя_пользователя
    # smbpasswd -a ваше_имя_пользователя
    

    Затем перезапустите демон 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

    станет:

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

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

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

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

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

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

    # lpd://windowspc/имя_общего_принтера
    

    Перед добавлением вам, скорее всего, понадобиться установить для своей модели принтера соответствующий драйвер. Драйвера 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.

    # ln -s $(which smbspool) /usr/lib/cups/backend/smb
    

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

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

    smb://имя_пользователя:пароль@имя_хоста/имя_принтера
    

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

    smb://имя_пользователя@имя_хоста/имя_принтера
    

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

    smb://имя_пользователя:пароль@домен/имя_хоста/имя_принтера
    
    Ручная настройка

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

    /etc/cups/printers.conf
    <DefaultPrinter MyPrinter>
    AuthInfoRequired username,password
    Info My printer via SAMBA
    Location In my Office
    MakeModel Samsung ML-1250 - CUPS+Gutenprint v5.2.7        # <= для получения списка доступных моделей запустить 'lpinfo -m'
    DeviceURI smb://username:password@hostname/printer_name   # <= URI сервера, выбирать согласно описания в предыдущем разделе
    State Idle
    Type 4
    Accepting Yes
    Shared No
    JobSheets none none
    QuotaPeriod 0
    PageLimit 0
    KLimit 0
    AllowUser yourusername                                    # <= не забудьте изменить это
    OpPolicy default
    ErrorPolicy stop-printer
    </Printer>

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

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

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

    $ smbtree -U имя_пользователя_windows
    

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

     WORKGROUP
    	\\REGULATOR-PC   		
    		\\REGULATOR-PC\Z              	
    		\\REGULATOR-PC\Public         	
    		\\REGULATOR-PC\print$         	Printer Drivers
    		\\REGULATOR-PC\G              	
    		\\REGULATOR-PC\EPSON Stylus CX8400 Series	EPSON Stylus CX8400 Series
    

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

    smb://имя_пользователя:пароль@REGULATOR-PC/EPSON%20Stylus%20CX8400%20Series
    

    как URI в CUPS.

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

    Однажды сервер настроенный, как описано в #Внутри систем GNU/Linux, может также быть настроенным так, чтобы им можно было управлять удаленно. Добавьте разрешенные хосты в блок <Location /admin> в /etc/cups/cupsd.conf, используя тот же синтаксис, что и в #Ручная настройка. Обратите внимание, что доступны три уровня доступа:

    <Location />           #доступ к серверу
    <Location /admin>	#доступ к страницам администратора
    <Location /admin/conf>	#доступ к файлам конфигурации
    

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

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

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

    # Ограничить доступ к серверу...
    # По умолчанию возможны только локальные подключения
    <Location />
       Order allow,deny
       Allow from @LOCAL
    </Location>
    
    # Ограничить доступ к страницам администратора...
    <Location /admin>
       Order allow,deny
       Allow from @LOCAL
    </Location>
    
    # Ограничить доступ к файлам конфигурации...
    <Location /admin/conf>
       AuthType Basic
       Require user @SYSTEM
       Order allow,deny
       Allow from @LOCAL
    </Location>
    

    The factual accuracy of this article or section is disputed.

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

    DefaultEncryption Never
    

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

    Kerberos

    Kerberos может использоваться для аутентификации пользователей, обращающихся к удаленному серверу CUPS. Это предполагает, что на вашем компьютере есть keytab, и ему понадобится билет для «HTTP». Вместо этого http://localhost:631 вы должны использовать https://host.example.co.uk:631 т.к. требуется шифрование для auth (следовательно, https), и требуется полное имя хоста, чтобы Kerberos/Negotiate могли работать. Кроме того, сервер должен быть настроен в /etc/cups/cupsd.conf, чтобы использовать DefaultAuthType Negotiate.

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

    SystemGroup sys root sysadmin
    

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

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

    Не удается отправить на печать из приложений GTK

    Если ты получил сообщение getting printer information failed (ошибка получения информации о принтере), когда пытался отправить на печать из приложения GTK, тогда добавь эту строку в свой /etc/hosts:

     # serverip 	some.name.org 	ServersHostname
    

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

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

    smb://рабочая_группа/имя_пользователя:пароль@имя_хоста/имя_принтера
    

    Другие операционные системы

    Более подробную информацию о взаимодействии CUPS с другими системами печати можно найти в руководстве CUPS, например, на http://localhost:631/help/network.html

    Have you ever wondered if you could print from your Windows 10 machine to a CUPS printer on your local network? It might be actually quite easy. See this documentation about how I did it with my black & white Samsung SCX-3205 printer.

    Checking CUPS configuration and access

    Lets say you have somehow configured CUPS. In order for it to serve external computers, at least these settings should be present in /etc/cups/cupsd.conf:

    Listen 0.0.0.0:631
    
    
    # A bit more down...
    
    
    # Old setting, comment out:
    #<Location />
    #  Order allow,deny
    #</Location>
    
    # New setting:
    <Location />
      Allow all
    </Location>

    So here we made the CUPS root accessible externally. Restart cups for settings to take effect. Next, on your Windows 10 machine navigate to your cups host, for example http://172.16.8.164:631/printers . Click on the printer you have installed earlier:

    Next you get the printer page, for for example like this:

    NOW ENSURE THAT THE URL IS HTTP! NOT HTTPS! And save the URL. My URL was http://172.16.8.164:631/printers/Samsung_SCX-3200_Series .

    Adding the CUPS printer in Windows 10 with generic(ish) drivers

    Next open the Printers setting:

    Click to add new printer…

    …and select that printer is not listed:

    Allow UAC prompt:

    Now select the “Select a shared printer by name” option and write the URL you had earlier. For me it was http://172.16.8.164:631/printers/Samsung_SCX-3200_Series . Then select Next:

    Now Windows asks about what driver to use. For my black & white printer the driver named “HP LaserJet 9000 PS Class Driver” seems to work with CUPS:

    (For color printers, maybe something else is needed? Maybe “HP Color Laserjet 5500 PS Class Driver” ? But I have not tested this.)

    Next you can print test page:

    Observe how it comes out. Looks good!

    Next you can close the wizard:

    Observe also the printer listed with other printers:

    Finally close the settings and you are done. Not so difficult, eh?

    Настройка с нуля принтсервера CUPS с доменной авторизацией и без нее в сети с разными ОС

    Вступление

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

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

    В инструкции домен будет именоваться example.com, сам принтсервер — cupsserver (cupsserver.example.com) с IP адресом 10.10.100.50, а клиентские машины linux1, linux2, linux3 и т.д для клиентских машин Linux и windows1, windows2, windows3 и т.д. для клиентских машин Windows соответственно.

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

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

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

    root@cupsserver:~# apt update && apt upgrade -y 

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

    root@cupsserver:~# which cupsd 

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

    /usr/bin/cupsd 

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

    root@cupsserver:~# apt install cups -y 

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

    root@cupsserver:~# cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
    root@cupsserver:~# cp /etc/cups/cups-files.conf /etc/cups/cups-files.conf.original 
    root@cupsserver:~# cp /etc/cups/cups-browsed.conf /etc/cups/cups-browsed.conf.original

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

    root@cupsserver:~# cupsd -t 

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

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

    root@cupsserver:~# service cups restart
    или
    root@cupsserver:~# systemctl restart cups
    или
    root@cupsserver:~# /etc/init.d/cups restart

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

    root@cupsserver:~# service cups-browsed restart
    или
    root@cupsserver:~# systemctl restart cups-browsed
    или
    root@cupsserver:~# /etc/init.d/cups-browsed restart

    Выполним команду

    root@cupsserver:~# nano /etc/cups/cupsd.conf 

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

    LogLevel warn 

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

    LogLevel debug2 

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

    root@cupsserver:~# netstat -plutn 

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

    tcp 0   0   127.0.0.1:631   0.0.0.0:*   LISTEN  737/cupsd 

    Дальнейшие действия зависят от степени вашей паранойи. Вы можете добавить в блоке, который условно начинается с комментария #Only listen for connections from the local machine несколько строк с указанием IP адресов или подсетей, откуда CUPS’у будет позволено слушать подключения.

    # Only listen for connections from the local machine.
    Listen localhost:631
    Listen /run/cups/cups.sock
    #Слушать подключения с определенного IP адреса
    Listen 10.10.100.67:631
    #Слушать подключения с подсети бухгалтерии
    Listen 172.16.0.0:631

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

    # Only listen for connections from the local machine.
    Listen /run/cups/cups.sock
    Port 631

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

    # Show shared printers on the local network.
    Browsing Off
    BrowseLocalProtocols dnssd

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

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

    # Default authentication type, when authentication is required...
    DefaultAuthType Basic

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

    root@cupsserver:~# usermod -a -G lpadmin user

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

    # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
    # This cannot contain the Group value for security reasons...
    SystemGroup lpadmin

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

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

    # Restrict access to the server...
    <Location />
      Order allow,deny
    
    </Location>

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

    # Restrict access to the server...
    <Location />
      Order allow,deny
     Allow from cupsserver                          # разрешение подключатся к самому себе по имени хоста
     Allow from cupsserver.example.com    # разрешение подключатся к самому себе по FQDN
     Allow from localhost                             # разрешение подключатся к самому себе через loopback интерфейс
     Allow from 10.10.100.*                        # Если хотите разрешить
     Allow from linux4.example.com           # доступ на печать с
     Allow from 172.168.5.125                   # определенных подсетей, IP или хостов
    </Location>

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

    # Restrict access to the server...
    <Location />
      Order allow,deny
      Allow from all
    </Location>

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

    # Restrict access to the admin pages...
    <Location /admin>
      Order allow,deny
      Allow from localhost
      Allow from 10.10.100.*
      Allow from admin.example.com
    </Location>
    
    # Restrict access to configuration files...
    <Location /admin/conf>
      Order allow,deny
      Allow from localhost
      Allow from 10.10.100.*
      Allow from admin.example.com
    </Location>
    
    # Restrict access to log files...
    <Location /admin/log>
      Order allow,deny
      Allow from localhost
      Allow from 10.10.100.*
      Allow from admin.example.com
    </Location>

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

    root@cupsserver:~# ls /usr/share/cups/locale

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

    DefaultLanguage ru

    Чтобы к вашему принтсерверу cupsserver.example.com можно было обращатся по его хосту (hostname), необходимо создать в папке /etc/cups/ файл client.conf с таким содержимым:

    ServerName имя_хоста

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

    root@cupsserver:/etc/cups# echo "ServerName $(cat /etc/hostname)" > /etc/cups/client.conf

    Поскольку мы предполагаем, что в сети есть DNS сервер, то будет предпочтительным, чтобы можно было обращатся к принтсерверу по его доменному имени (cupsserver.example.com). Также серверу может быть присвоен CNAME псевдоним на DNS сервере, например print или cups. Чтобы принтсервер принимал подключения по таким обращениям, необходимо добавить такую строчку в файл /etc/cups/cupsd.conf:

    ServerAlias cupsserver.example.com print cups

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

    ServerAlias *

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

    # Which protocols will we use to discover printers on the network?
    # Can use DNSSD and/or CUPS and/or LDAP, or 'none' for neither.
    
    BrowseRemoteProtocols dnssd cups

    Благодаря этой опции принтсервер ищет расшаренные принтера в сети. Ее мы оставляем включенной, так как в наших интересах, чтобы принтсервер искал принтера в сети. Но нам совершенно не нужно, чтобы принтсервер рассылал вообще все подключенные к нему принтеры, иначе возникнет большая путаница. Для предотвращения такого сценария находим следующую опцию #BrowseLocalProtocols none и раскомментируем ее:

    # Which protocols will we use to broadcast shared local printers to the network?
    # Can use DNSSD and/or CUPS, or 'none' for neither.
    # Only CUPS is actually supported, as DNSSD is done by CUPS itself (we ignore DNSSD in this directive).
    
    BrowseLocalProtocols none

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

    В качестве примера настроим печать сквозь принтсервер между двумя клиентскими машинами с Linux (имя хоста linux1) и Windows 8 соотвественно (имя хоста windows1). Начнем с настройки windows1 в качестве приемника печати от принтсервера. У меня к нему подключен и штатно работает принтер Canon i-SENSYS MF4410. Имя принтера — Canon-MF4400. Самый простой способ, на самом деле, обеспечить печать с принтсервера на windows1 — перейти в Панель управления > Программы > Программы и компоненты > Включение или отключение компонентов Windows. Там мы включаем компонент Службы печати и документов > Служба печати LPD. Это позволит подключить данный принтер к принтсерверу с помощью адреса lpd://windows1/Canon-MF4400. Разумеется, назревает вопрос, почему бы не подключить с помощью SMB? Никто не запрещает. Если у вас отлажен данный метод, вы можете расшарить принтер таким образом, и подключить к принтсерверу по протоколу SMB. Инстукции по данному подключению, на мой взгляд, выходят за рамки данной статьи, которая и так выходит довольно объемной. Пока же считаем, что читатель успешно зашел по адресу http://cupsserver:631/admin нажал на кнопку «Добавить новый принтер» и следуя интуиции, логике и прочитатанным ранее мануалам успешно подключил принтер с windows1 по протоколу LPD к принтсерверу cupsserver[example.com] и страница принтера доступна по адресу http://cupsserver:631/printers/Canon-MF4400.

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

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

    Есть неприятный момент. Если вы введете linux1 в домен, настроите на нем CUPS по этим инструкциям, то можете заметить абсурдную ситуацию, когда на WEB-интерфейс linux1 можно зайти снаружи, но на самом хосте этого сделать нельзя! И графические приложения для локальной настройки принтеров, вроде приложения system-config-printer в Linux Mint, отказываются работать. При попытке подключения на свой же CUPS по по адресу http://linux1:631/ будет сообщение «Запрещено» или «Bad Request». Это известная и толком не решенная на множестве форумов интернета проблема.

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

    127.0.0.1       localhost
    127.0.1.1    linux1.example.com linux1
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe02::2 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

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

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

    127.0.0.1       localhost
    192.168.1.50   linux1.example.com linux1

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

    127.0.0.1       localhost
    # 127.0.1.1   linux1.example.com linux1

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

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

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

    user@linux1:~$ sudo nano /etc/cups/cupsd.conf

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

    
    DefaultLanguage ru         # Если язык присутствует в папке /usr/share/cups/locale
    
    ServerAlias linux1.example.com linux1 [CNAME псевдоним присвоенный на DNS сервере]
    или
    ServerAlias *              # Если неохота вникать в особенности
    
    Listen /run/cups/cups.sock 
    Listen localhost:631           # Слушать localhost
    Listen 10.10.100.50:631    # IP адрес нашего принтсервера.
    Listen cupsserver:631        # Доменное имя принтсервера. Рекомендую чтобы его IP тоже был, на всякий случай
    Listen linux1:631          # 
    или
    Port 631                   # Будет слушать подключения со всех адресов
    Listen /run/cups/cups.sock
    
    Browsing off                          # Выключено. Машина будет посылать информацию только принтсерверу
    
    DefaultAuthType Basic      # Без изменений. Есть вариант с авторизацией Kerberos, но там много подводных камней

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

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

    
    # Restrict access to the server...
    <Location />
      Order allow,deny        # Определяет политику доступа "Что не разрешено, то запрещено"
      Allow from localhost    # Позволяет печатать самой linux1
      Allow from linux1       # Печать на свое имя хоста. Проблемы этого действия описаны выше
      Allow from cupsserver   # Если CUPS нормально взаимодействует с DNS, то сработает. Увы, не всегда это так
      Allow from cupsserver.example.com   # FQDN принтсервера
      Allow from 10.10.100.50 # Разрешение на печать с IP принтсервера **cupsserver**
    </Location>
    
    # Restrict access to the admin pages...
    <Location /admin>
      Order allow,deny        # Аналогично предыдущему
      Allow from localhost    # Необходимо для возможности добавлять принтеры
      Allow from linux1       # Аналогично предыдущему
      Allow from 10.10.101.71 # Предположим, это IP админа
      Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
      AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
      Require user @SYSTEM    # Определение группы доступа к CUPS
    </Location>
    
    # Restrict access to configuration files...
    <Location /admin/conf>
    #Блок идентичен предыдущему
      Order allow,deny        # Аналогично предыдущему
      Allow from localhost    # Необходимо для возможности добавлять принтеры
      Allow from linux1       # Аналогично предыдущему
      Allow from 10.10.101.71 # Предположим, это IP админа
      Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
      AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
      Require user @SYSTEM    # Определение группы доступа к CUPS
    </Location>
    
    # Restrict access to log files...
    <Location /admin/log>
    #Блок идентичен предыдущему
      Order allow,deny        # Аналогично предыдущему
      Allow from localhost    # Необходимо для возможности добавлять принтеры
      Allow from linux1       # Аналогично предыдущему
      Allow from 10.10.101.71 # Предположим, это IP админа
      Allow from 10.20.50.*   # Предположим, это подсеть вашего IT отдела
      AuthType Default        # То есть CUPS спросит логин и пароль. Подробнее ниже
      Require user @SYSTEM    # Определение группы доступа к CUPS
    </Location>

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

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

    user@linux1:~$ sudo nano /etc/cups/cups-browsed.conf 
    
      BrowseRemoteProtocols none # Пишем none чтобы не получить кучу принтеров автоматически. 
    
      BrowseLocalProtocols cups  # Показывать подключеные принтеры в сеть. DNSSD указывать не надо, его директива в cupsd.conf
    
      BrowseOrder Allow,Deny             # Аналогично директиве Order в cupsd.conf - необходимо явно указать, куда МОЖНО посылать информацию о подключенных принтерах
      BrowseAllow 10.10.100.50           # IP принтсервера
      BrowseAllow cupsserver             # Имя хоста принтсервера
      BrowseAllow cupsserver.example.com # Полное доменное имя принтсервера

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

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

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

    user@linux1:~$ sudo usermod -a -G lpamin printeradmin 

    и авторизовываться на http://имя_хоста:631/admin c помощью его учетных данных.

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

    user@linux1:~$ sudo groupadd printersadmins
    user@linux1:~$ sudo usermod -a -G printersadmins printeradmin
    user@linux1:~$ sudo usermod -a -G printersadmins user

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

    # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
    # This cannot contain the Group value for security reasons...
    SystemGroup lpadmin

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

    # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
    # This cannot contain the Group value for security reasons...
    SystemGroup lpadmin printersadmins somegroup

    И наконец, третий вариант. Сделать администраторами принтсервера и 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 такую строку:

    /var/lib/samba/winbindd_privileged/pipe rw

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

    /var/lib/sss/pipes/private/pam rw

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

    ad_gpo_map_interactive = +cups

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

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

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

    [Unit]
    Description=CUPS Scheduler
    Documentation=man:cupsd(8)
    After=sssd.service

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

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

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

    Установить принтер на Linux это часто специфическая задача, разная для разных марок и даже моделей. Поэтому не вижу смысла описывать установку принтера и примем за факт, что на хосте linux1 установлен принтер Kyocera-1024FP с именем Kyocera-1024FP, и страница принтера доступна по ссылке http://linux1:631/printers/Kyocera-1024FP.

    Теперь, когда сервер и клиенские машины 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, «Описание» и «Расположение» на ваше усмотрение, и нажмите «Добавить группу».

    Теперь у нас есть группа printer-windows1 с принтером Canon-MF4400 в ней. Страница этой группы доступна так же как и страница принтера Canon-MF4400 с оговоркой на немного другой путь — http://cupsserver:631/classes/printer-windows1.

    Еще у нас все еще есть подключенный к linux1 принтер Kyocera-1024FP. Подключим его к принтсерверу по HTTP. Выбираем метод подключения «Протокол интернет печати (http)» [Internet Printing Protocol (http)], из списка драйверов выбираем марку «Generic», модель «IPP Everywhere». Называем его как угодно, мы назовем так же как на хосте linux1Kyocera-1024FP. Теперь принтер доступен на принтсервере по ссылке http://cupsserver:631/printers/Kyocera-1024FP. Аналогично настройке группы printer-windows1 создаем группу printer-linux1 c принтером Kyocera-1024FP в ней. Ее ссылка соответственно http://cupsserver:631/classes/printer-linux1.

    Теперь подключим принтер Kyocera-1024FP с хоста linux1 через принтсервер cupsserver к хосту windows1 с системой Windows 8 на борту без какой либо дополнительной(!) установки драйверов. Для этого мы при подключении принтера выбираем «Выбрать общий принтер по имени». В общем случае мы пишем http://имя_принтcервера:631/classes/название_группы. В нашем конкретном случае — http://cupsserver:631/classes/printer-linux1. При запросе на выбор драйвера указываем марку «Generic», модель — «MS Publisher Imagesetter». Все подтверждаем далее, и имеем подключенный принтер с название вроде printer-linux1 на http://cupsserver:631. Если до сих пор никаких ошибок и подводных камней при настойке не возникло, то попытка пробной печати приведет к успешной печати на Kyocera-1024FP.

    Теперь подключим принтер Canon-MF4400 с хоста windows1 через принтсервер cupsserver к хосту linux1 с системой Linux на борту без какой либо дополнительной(!) установки драйверов. Для этого мы при подключении принтера действуем аналогично тому, как подключали Kyocera-1024FP к принтсерверу cupsserver. То есть при добавлении принтера на linux1 выбираем метод подключения «Протокол интернет печати (http)», в качестве расположения принтера (Canon-MF4400) ссылку на его группу на принтсервере — http://cupsserver:631/classes/printer-windows1. При запросе на выбор драйвера указываем марку «Generic», модель — «IPP Everywhere». Называем его как угодно, можно назвать так же как группу — printer-windows1. Теперь принтер доступен на linux1 по ссылке http://linux1:631/printers/printer-windows1, и мы уже можем отправлять на печать документы.

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

    Заключение

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

    Подключение принтера в операционной системе Windows может стать сложной задачей, особенно если устройство не поддерживается автоматически. В таком случае, CUPS (Common Unix Printing System) может стать незаменимым инструментом. CUPS предоставляет универсальный интерфейс для печати в Unix-подобных системах, но также может быть использован для подключения принтеров в Windows.

    В этом пошаговом руководстве мы рассмотрим, как подключить принтер, используя CUPS в Windows. Сначала убедитесь, что у вас есть драйверы принтера для Windows. Если драйверы не установлены, загрузите их с официального сайта производителя.

    После установки драйверов принтера перейдите к установке CUPS. Загрузите последнюю версию CUPS с официального сайта и следуйте инструкциям по установке. После завершения установки откройте CUPS в веб-браузере, введя «localhost:631» в адресной строке.

    Теперь вам нужно добавить принтер в CUPS. Нажмите на кнопку «Администрирование сервера» и введите имя пользователя и пароль администратора. Затем выберите «Add Printer» и следуйте инструкциям мастера для добавления принтера. После завершения настройки вы должны видеть новый принтер в списке доступных устройств печати.

    Содержание

    1. Почему стоит использовать CUPS для подключения принтера?
    2. Узнайте преимущества этого инструмента
    3. Шаг 1: Установка CUPS на ваш компьютер
    4. Получите детальную инструкцию по установке
    5. Шаг 2: Подключение принтера к компьютеру
    6. Узнайте, как правильно подключить принтер через CUPS
    7. Шаг 3: Настройка принтера в CUPS

    Почему стоит использовать CUPS для подключения принтера?

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

    1. Универсальность и совместимость

    CUPS является общепризнанным стандартом в мире печати и поддерживается большинством моделей принтеров. Он предоставляет возможность подключать различные принтеры, включая сетевые и USB-принтеры, а также работать с разными протоколами печати, такими как IPP (Internet Printing Protocol) и LPD (Line Printer Daemon).

    2. Простота и удобство использования

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

    3. Удобство удаленного доступа и управления

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

    4. Расширенные возможности печати

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

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

    Узнайте преимущества этого инструмента

    1. Кросс-платформенность: CUPS может быть установлен на различные операционные системы, включая Windows, macOS и Linux. Это означает, что вы можете использовать CUPS для управления принтерами на разных компьютерах, работающих под разными системами.

    2. Гибкость: CUPS предлагает различные способы подключения принтеров, включая прямое подключение через USB, сетевое подключение и беспроводное подключение. Вы можете выбрать наиболее подходящий способ подключения в зависимости от ваших потребностей.

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

    4. Открытый исходный код: CUPS является проектом с открытым исходным кодом, что означает, что он бесплатен для использования и может быть модифицирован в соответствии с вашими потребностями. Благодаря этому, CUPS является надежным, стабильным и инновационным решением для управления принтерами.

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

    Шаг 1: Установка CUPS на ваш компьютер

    Прежде чем начать настройку принтера через CUPS, вам необходимо установить саму программу на ваш компьютер. Вот как это сделать:

    1. Зайдите на официальный сайт CUPS по адресу www.cups.org.

    2. Найдите раздел загрузок (Downloads) на главной странице сайта.

    3. Выберите версию CUPS, соответствующую вашей операционной системе Windows. Обычно это последняя доступная версия.

    4. Нажмите на ссылку скачивания и дождитесь окончания загрузки инсталляционного файла (обычно это файл с расширением .exe).

    5. Запустите скачанный файл и следуйте инструкциям установщика. Убедитесь, что вы выбрали все необходимые компоненты и параметры.

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

    Установка CUPS на ваш компьютер является первым шагом к полноценной работе с принтером через интерфейс CUPS. После установки вы сможете настраивать и управлять своим принтером через Web-интерфейс CUPS. Продолжайте чтение, чтобы узнать, как подключить ваш принтер пошагово.

    Получите детальную инструкцию по установке

    Чтобы подключить принтер с использованием CUPS в Windows, следуйте этим шагам:

    1. Перейдите на официальный сайт CUPS по ссылке: https://www.cups.org.
    2. Найдите раздел загрузок и выберите версию CUPS, совместимую с вашей операционной системой Windows.
    3. Скачайте установочный файл на свой компьютер и запустите его.
    4. Следуйте инструкциям мастера установки CUPS на вашей операционной системе Windows. Обычно, вам нужно будет согласиться с лицензионным соглашением и выбрать папку для установки.
    5. После завершения установки, откройте веб-браузер и введите в адресной строке «localhost:631».
    6. Вы увидите веб-интерфейс CUPS. Он позволит вам настроить и управлять принтерами.
    7. Перейдите в раздел «Администрирование» и выберите «Добавить принтер».
    8. Выберите ваш принтер из списка устройств, подключенных к вашему компьютеру.
    9. Установите нужные параметры для вашего принтера, такие как формат бумаги и разрешение печати.
    10. Нажмите кнопку «Добавить принтер» и дождитесь успешного подключения.
    11. Поздравляю! Вы успешно подключили принтер с использованием CUPS в Windows. Теперь вы можете печатать документы на своем принтере.

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

    Шаг 2: Подключение принтера к компьютеру

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

    1. Убедитесь, что принтер подключен к компьютеру с помощью USB-кабеля или находится в одной локальной сети.
    2. Откройте веб-браузер и введите адрес «localhost:631» в строке адреса.
    3. Нажмите Enter, чтобы открыть веб-интерфейс CUPS.
    4. В меню слева выберите вкладку «Принтеры».
    5. Нажмите кнопку «Добавить принтер».
    6. Выберите принтер из списка доступных принтеров. Если у вас несколько принтеров, выберите нужный принтер.
    7. Нажмите кнопку «Продолжить» и следуйте инструкциям на экране для настройки принтера.
    8. После завершения настройки принтера, нажмите кнопку «Готово». Теперь ваш принтер успешно подключен к компьютеру.

    Поздравляем! Вы успешно подключили принтер к компьютеру с помощью CUPS. Теперь вы можете начать печатать документы с вашего компьютера.

    Узнайте, как правильно подключить принтер через CUPS

    Вот пошаговая инструкция по подключению принтера через CUPS:

    1. Выберите «Пуск» и откройте «Панель управления».
    2. Откройте раздел «Устройства и принтеры».
    3. Нажмите правой кнопкой мыши на пустое место в окне «Устройства и принтеры» и выберите «Добавить принтер».
    4. Выберите «Добавление сетевого, беспроводного или Bluetooth-принтера».
    5. Дождитесь, пока компьютер найдет доступные принтеры в сети.
    6. Выберите принтер, который хотите подключить, и нажмите «Далее».
    7. Выберите «Да, делить этот принтер», если вы хотите, чтобы другие устройства в сети также могли использовать принтер.
    8. Выберите драйвер принтера из списка или установите его вручную, если вы скачали драйвер с веб-сайта производителя.
    9. Нажмите «Далее» и дождитесь завершения установки драйвера.
    10. Выберите имя принтера и введите описание (необязательно).
    11. Нажмите «Готово» и дождитесь, пока принтер будет добавлен в список устройств.

    Теперь ваш принтер должен быть успешно подключен через CUPS и готов к использованию. Вы можете проверить его, напечатав тестовую страницу или выбрав принтер при печати документа.

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

    Теперь вы знаете, как правильно подключить принтер через CUPS. Наслаждайтесь безопасной и эффективной печатью с вашим новым принтером!

    Шаг 3: Настройка принтера в CUPS

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

    1. В веб-интерфейсе CUPS найдите и выберите вкладку «Принтеры».

    2. Нажмите на кнопку «Добавить принтер».

    3. Введите имя для вашего принтера. Например, «Мой принтер».

    4. Выберите протокол подключения к принтеру. CUPS поддерживает различные протоколы, такие как IPP, LPD, DHCP, USB и другие. Убедитесь, что вы выбираете соответствующий протокол для вашего принтера.

    5. Введите адрес принтера. Это может быть IP-адрес, доменное имя или URL-адрес принтера.

    6. Если ваш принтер требует аутентификации пользователя, выберите соответствующую опцию и введите имя пользователя и пароль.

    7. Нажмите на кнопку «Продолжить». CUPS будет пытаться подключиться к принтеру и настроить его.

    8. Если настройка прошла успешно, вы увидите уведомление о том, что принтер добавлен.

    9. Теперь вы можете перейти на страницу «Управление принтерами» и проверить, что ваш принтер отображается в списке принтеров CUPS.

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

    Важно: Убедитесь, что у вас установлены необходимые драйверы для вашего принтера. Если драйверы не установлены, CUPS может не смочь правильно работать с принтером.

    Система печати CUPS (Common UNIX Printing System) является одной из основных технологий, используемых для управления и подключения принтеров в UNIX-подобных операционных системах. Однако, существует возможность установить CUPS на Windows, чтобы использовать его преимущества и для подключения и управления принтерами на платформах Windows.

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

    В этой статье будет представлена пошаговая инструкция, которая поможет вам установить CUPS на Windows и настроить его для работы с принтерами.

    Содержание

    1. Подготовка к установке CUPS на Windows
    2. Загрузка и установка CUPS
    3. Настройка CUPS после установки
    4. Создание принтера в CUPS
    5. Подключение принтера к CUPS

    Подготовка к установке CUPS на Windows

    Перед установкой CUPS на Windows вам необходимо выполнить несколько предварительных шагов :

    1. Убедитесь, что у вас установлены права администратора

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

    2. Установите необходимые драйверы принтера

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

    3. Убедитесь, что ваш компьютер подключен к сети

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

    4. Загрузите CUPS для Windows

    Перейдите на официальный сайт CUPS и загрузите последнюю версию CUPS для Windows. Обычно это будет файл с расширением .exe. Сохраните файл на ваш компьютер для последующей установки.

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

    Загрузка и установка CUPS

    Шаг 1: Перейдите на официальный сайт проекта CUPS по адресу https://www.cups.org/.

    Шаг 2: На главной странице сайта найдите раздел «Downloads» и выберите вкладку «Windows Software».

    Шаг 3: В списке программ найдите «CUPS Windows Binaries» и нажмите на ссылку для скачивания.

    Шаг 4: После скачивания файла установщика CUPS, запустите его, следуя инструкциям на экране.

    Шаг 5: В процессе установки могут потребоваться дополнительные компоненты, такие как Cygwin. Установите все необходимые компоненты, следуя указаниям установщика.

    Шаг 6: По завершении установки CUPS, можно запустить его, открыв окно командной строки и введя команду «cupsd» без кавычек.

    Шаг 7: Теперь CUPS должен быть доступен по адресу http://localhost:631 в любом веб-браузере. Вы можете настроить и управлять принтерами и печатными заданиями через веб-интерфейс CUPS.

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

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

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

    1. Откройте веб-браузер и введите в адресной строке «localhost:631».
    2. Нажмите на кнопку «Администрирование» для перехода к панели управления CUPS.
    3. Введите имя пользователя и пароль администратора системы и нажмите кнопку «Войти».
    4. После успешной авторизации вы будете перенаправлены на главную страницу администратора CUPS.
    5. Изучите различные настройки CUPS, доступные на главной странице, и определите, какие параметры необходимо изменить для вашего принтера.
    6. Для добавления нового принтера нажмите на ссылку «Добавить принтер» и выполните инструкции на экране.
    7. Настройте параметры печати, такие как тип принтера, подключение и настройки драйвера.
    8. После настройки принтера вы сможете просматривать и управлять заданиями печати на вкладке «Задания» в интерфейсе CUPS.

    После завершения настройки CUPS вы сможете использовать принтеры, подключенные к вашей системе Windows, через системные приложения и печатные диалоги.

    Создание принтера в CUPS

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

    Шаг Действие
    1 Откройте веб-браузер и введите в адресной строке «http://localhost:631». Нажмите Enter, чтобы открыть панель управления CUPS.
    2 В панели управления CUPS найдите раздел «Administration» и выберите «Add Printer».
    3 В появившемся окне «Add Printer» выберите принтер, который вы хотите добавить. Если принтер не отображается в списке, убедитесь, что он подключен к вашему компьютеру и включен.
    4 Выберите тип подключения к принтеру. Обычно можно выбрать «AppSocket/HP JetDirect» или «Internet Printing Protocol (ipp)».
    5 Выберите модель и производителя принтера из предложенного списка. Если вашей модели нет в списке, вы можете выбрать «Generic» и указать дополнительные настройки в следующем шаге.
    6 Введите имя принтера и описание (необязательно), а затем нажмите «Continue».
    7 Настройте дополнительные параметры принтера, если это необходимо. Нажмите «Continue», чтобы перейти к следующему шагу.
    8 Установите права доступа к принтеру для пользователей системы. Нажмите «Set Allowed Users» и выберите нужных пользователей или группы.
    9 Проверьте настройки принтера в окне «Add Printer» и нажмите «Set Printer Options», чтобы сохранить изменения.
    10 После сохранения изменений вы увидите страницу с подтверждением, что принтер успешно добавлен. Теперь вы можете печатать через CUPS!

    Следуя этим простым шагам, вы сможете создать принтер в системе CUPS и настроить его в соответствии с вашими потребностями.

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

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

    1. Убедитесь, что ваш принтер поддерживается CUPS. Вы можете найти список поддерживаемых принтеров на официальном веб-сайте CUPS. Если ваш принтер не поддерживается CUPS, вам, возможно, придется установить драйвер или программное обеспечение от производителя для его работы.
    2. Подключите принтер к вашей Windows-системе и убедитесь, что он работает корректно. Убедитесь, что принтер включен и правильно подключен к компьютеру.
    3. Откройте интерфейс управления CUPS, запустив веб-браузер и вводя в адресной строке «http://localhost:631». Это откроет веб-интерфейс CUPS.
    4. Войдите в интерфейс управления CUPS, используя имя пользователя и пароль вашей Windows-системы.
    5. Выберите раздел «Administration» (Администрирование) в интерфейсе управления CUPS.
    6. Нажмите на ссылку «Add Printer» (Добавить принтер) в разделе «Administration» (Администрирование).
    7. Выберите ваш принтер из списка поддерживаемых устройств или введите его IP-адрес в поле «Device URI» (URI устройства).
    8. Следуйте инструкциям на экране для завершения процесса установки принтера.
    9. После завершения установки принтера он будет добавлен в список доступных принтеров в интерфейсе управления CUPS.
    10. Опционально, вы можете настроить дополнительные параметры и настройки принтера с помощью интерфейса управления CUPS.

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

  • Установка iis для 1с windows server 2019
  • Установка ddt2000 на windows 7
  • Установка ddt2000 на windows 7
  • Установка exchange server 2010 на windows server 2012
  • Установка home assistant на windows 7 x64