Как отключить маркировку на печать в astra linux

Обновлено: 07.07.2024

Итак, исторически в Linux было 2 системы печати LPRng и BSD LPD. Данные системы постепенно устаревают и на смену им приходит система печати CUPS, которая разработана как замена вышеуказанных систем и возможности которой гораздо шире. При использовании GUI интерфейса GNOME, KDE или другого, управление принтерами с помощью CUPSосуществляется не сложнее, чем в Windows. В статье я же сделаю упор на работу в консольном режиме и GUI инструменты рассматривать практически не буду (клавиши Ctrl+P (печать в GUI) есть на всех клавиатурах и работают одинаково как в Windows, так и в Linux ). Отмечу только, что при использовании графической оболочки, запускаются те же команды, что мы рассмотрим далее.

Как система печати Linux обрабатывает файлы

В Linux только пользователь root имеет возможность прямого доступа к устройствам (в нашем случае - к принтеру), остальным пользователям операционная система не дает возможности обращаться напрямую к физическим устройствам, чтобы избежать появления конфликтных ситуаций. Вместо этого, утилиты обращаются к фоновым системным процессам, которые ставят задания в очередь на печать. Кроме всего прочего, данные процессы выполняют преобразование содержимого исходных файлов, подготавливая его к выводу на определенный принтер. Для этого используются язык принтера и протоколы обмена, на основании которых настраивается разрешение печати, формируются страницы, если необходимо, убираются/добавляются колонтитулы, нумеруются страницы.

Система печати Linux находится под контролем демона cupsd, который обладает всеми необходимыми привилегиями, чтобы обращаться к принтерам от имени пользователя. Данный демон автоматически загружается при запуске Linux и настраивает систему для корректной работы печати. Все необходимые параметры демон берет из каталога /etc/cups.

В Linux, где установлен CUPS, для печати используются два основных метода. В основе первого лежат команды lpr и lp (в более новых версиях CUPS). Которые в качестве аргумента принимают имя печатаемого файла и отправляют его на печать на принтер по умолчанию. Данные команды являются "мостиком" ко второму способу печати. В основевторого способа лежат обращения к системным вызовам CUPS. Приложения, использующие данный метод могут не только посылать cupsd информацию, но и получать от демона информацию, о возможностях принтера. В ответ на такой запрос, CUPS возвращает приложению файл в формате PPD (PostScript Printer Definition - описание принтера PostScript). Данные файлы описывают возможности, которыми обладают принтеры (размер страницы, разрешение, ориентация и т.п.). Файлы PPD являются ключевыми компонентами впакете драйверов для принтеров. Для принтеров, которые не поддерживают язык PostScript, предоставляются PPD-файлы, описывающие возможности через GhostScript.

Совершенно не важно, поддерживает приложение CUPS или нет - после того, как демон cupsd примет задание печати, он поместит его в каталог буфера печати - спулер (обычно -/var/spool/cups) вместе с файлом, описывающим данное задание. Далее cupsd сортирует список заданий и отправляет на принтер одно за другим.

Управление печатью в Linux

Система печати в Linux довольно сложна и настройка обычно происходит либо очень просто (потому что CUPS все сам обнаружит и настроит), либо очень сложно (к примеру попробуйте быстро заставить работать принтер Canon LBP-810 с Linux). Работа печати в Linux основана на нескольких различных пакетах. Основной - это пакет cups, содержащий демон печати. В большинстве дистрибутивов имеется пакет cups в репозитории. Право выбора, каким образом устанавливать ПО в Linux оставляю вам. Я установил так: apt-get install cups. Данный пакет отлично подхватывает все необходимые зависимости.

Давайте немного разберемся, что же такое PostScript, а что такое GhostScript? Как показывает практика, приложения Linux и UNIX в большинстве случаев генерируют на выходе файлы двух форматов:

Простой текст

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

PostScript

Язык Adobe PostScript - это один из многих языков принтеров. Большинство приложений, использующих сложное форматирование на выходе всегда создают файл формата PostScript.

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

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

Стандартная установка CUPS поддерживает довольно узкий спектр принтеров (хотя, это довольно спорный момент ). Обычно, это модели с поддержкой PostScript и принтеры компаний HP и Epson. Если принтер автоматически не определился, то необходимо посетить сайт производителя принтера для получения пакета драйверов и инструкций об установке принтера в системе Linux.

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

Для подключения принтеров существует несколько интерфейсов, таких как: USB, Ethernet, LPT и COM (последний безбожно устарел). Данным интерфейсам соответствуют устройстваLPT - /dev/lp*, COM - /dev/ttyS* (вместо звездочек, естественно - цифра, обозначающая номер порта, к которому подключено устройство), для взаимодействия с USB используется дерево каталогов /proc/bus/usb, для Ethernet, естественно - IP.

Прежде чем настроить службы печати в Linux, необходимо убедиться, что соединение с принтером действительно установлено. Наверное, лучше всего это проверить из операционной системы windows, если она у вас установлена 2ой системой. Если нет такой возможности, то давайте попробуем обнаружить наш принетр средствами Linux. Если принтер подключен к LPT, либо COM, то можно выполнить команду для LPT: cat /etc/fstab > | /dev/lp0 или для com: cat /etc/fstab > | /dev/ttyS0. При этом, на устройстве в лучшем случае должно напечататься содержимое файла, в худшем - мигнуть индикаторы состояния. Если используется порт USB, то можно проверить подключение устройства с помощью командыlsusb, вывод которой должен содержать маркировку принтера. Для Ethetnet соединения, думаю достаточно проверить доступность IP принтера командой ping.

Настройка безопасности CUPS

В отличии от старых систем LPD, управлять системой печати CUPS удобнее через Web. Однако, по умолчанию, настройка доступа к web интерфейсу может быть настроена не корректно. Некоторые дистрибутивы предоставляют свои инструменты управления CUPS. Все настройки CUPS хранятся в файле /etc/cups/cupsd.conf. Данный файл смоделирован по образу файла Веб сервера Apache. Данному веб серверу я обязательно посвящу обзор. Файл конфигурации cupsd.conf начинается с ряда глобальных параметров директив, которые оформлены в виде пар имя - значение. Для примера, чтобы изменить имя сервера, отправляемое другим системам, необходимо ввести директиву:

Данная строка определяет имя сервера как my.printserver.local. Файл конфигурации обладает огромным количеством директив, описание которых выходит далеко за рамки данной статьи. К сожалению, на русском языке я так и не нашел полного описания конфигурационного файла. Могу сказать одно - полный пакет документации можно будет почитать на английском прямо из настроенного веб интерфейса. А так же, документация по конфигурационному файлу доступна тут. Приведу Вам начало своего конфигурационного файла, содержащего глобальные директивы:

Давайте разберем каждый параметр.Как уже упоминалось выше, ServerName указывает имя сервера печати. LogLevel указывает подробность журналирования (по умолчанию при установке параметр равен info, если возникли какие-то проблемы с CUPS, а в протоколе нет ничего информативного, можно поднять уровень до максимального — debug2), Portуказывает на каком порту будет доступен веб-интерфейс, Listen позволяет указать на каком IP адресе будет доступен веб-интерфейс, а так же прослушиваемый сокет.

Параметры, начинающиеся на Browsing требуют отдельного разговора, они задают настройки "просмотра". В данном случае, под термином просмотр необходимо понимать возможность CUPS обнаруживать принтеры в сети. Данная возможность поддерживается на уровне протокола IPP. Обнаружение происходит посредством широковещательных рассылок, что при большом количестве серверов CUPS или при частом отключении/подключении принтеров может порождать дополнительную нагрузку на сеть. Так же, включение просмотра влечет за собой определенное бремя безопасности. Например, систему настроенную на автоматический поиск легко обмануть, предоставив поддельную информацию о принтерах, а при наличии недочетов в коде CUPS это может привести к негативным последствиям. Давайте разберем указанные параметры:

BrowseAllow и BrowseDeny

Указывают CUPS на стороне клиента адреса, от которых может приниматься или отвергаться, соответственно, информация о принтерах. Формат директив соответствует директивам Allow и Deny. В качестве аргумента для данной директивы может быть как отдельный IP, так и подсеть в формате 10.0.0.0/24 или 10.0.0.0/255.255.255.0 или 10.0.0.0-10.0.0.255, так и значение @LOCAL - обозначающее локальную сеть, а так же имена хостов. Возможно использование нескольких данных директив.

Browsing

Указывает CUPS предоставлять свои серверы в общий доступ, либо нет. Значения может принимать On или Off соответственно.

BrowseAddress

Аналогична BrowseAllow. за исключением того, что она задает КОМУ посылать пакеты, а не от кого принимать.

Далее в конфигурационном файле указана директива DefaultAuthTape, которая указывает механизм аутентификации, который будет использоваться для организации доступа по умолчанию. Basic - указывает использовать логины/пароли от локальной системы. None - указывает не использовать аутентификацию. При указании параметра Digest все пароли будут передаваться в зашифрованном виде, но тогда необходимо создать пользователей CUPS с помощью команды lppasswd, пользователи будут добавлены в файл/etc/cups/passwd.md5.

Существует так же директива AuthClass, которая не присутствует в моем конфигурационном файле. Данная директива определяет, какие группы пользователей могут иметь доступ к подсистеме. Может принимать значения: Anonymous, User, System, Group. Параметр Anonymous указывает, что аутентификация производиться не должна. Параметр User говорит, что любой пользователь системы, корректно указавший имя/пароль может иметь доступ. System - говорит, что доступ к подсистеме могут получить только пользователи - члены системной группы cups. Group указывает возможность пользоваться подсистемой только членам группы, которая должна быть указана в последующей директиве AuthGroupName.

Директива Order определяет порядок предоставления доступа к CUPS по умолчанию. Значение Deny,Allow определяет - отвергать попытки доступа, если право на доступ не указано явно. Если директива имеет значение Allow,Deny, то доступ будет предоставлен, если явно не запрещен.

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

Особенности использования Веб интерфейса

Долго о Веб-интерфейсе описывать не буду. Последняя версия CUPS 1.4 практически полностью русифицирована. Управление принтерами через веб-морду не сложнее процесса установки принтера в операционной системе Windows. Единственный нюанс в Linux - это то, что фактически, "принтер" есть очередь печати. То есть фактически мы посылаем документ в определенную очередь печати с определенными настройками. Очередь привязана к конкретному принтеру-устройству. Таким образом, к одному принтеру может быть привязано несколько очередей с разными настройками. Это как в Windows установить несколько "принтеров" с разными версиями драйвера, но привязанными к одному физическому устройству.

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

Параметры принтеров CUPS хранит в файле /etc/cups/printers.conf. В данный файл руками лезть не стоит. Он заполняется при настройке в веб интерфейсе. Пример файла:

Описание каждого установленного принтера (соответствующий PPD-файл) находится в каталоге /etc/cups/ppd/<имя_принтера>.ppd.

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

Хочу еще отметить такой нюанс. CUPS разрабатывался как замена системе печати LPD. В LPD источником информации о имеющихся принтерах очередях печати был файл/etc/printcap. CUPS обратно совместим с данной системой печати и если мы посмотрим на файл printcap, то увидим, что:

файл printcap является символьной ссылкой на /var/run/cups/printcap. Т.о. CUPS сама следит за корректностью данного файла и тем самым обеспечивает обратную совместимость с LPD.

Устранение неполадок в системе печати

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

  • Постарайтесь проверить работоспособность принтера на другой ОС. Естественно, если он не заработает в другой ОС, то проблема скорее всего в аппаратной части.
  • Проверьте все физические соединения. Питание, информационный провод. Проверьте включен ли принтер и имеется ли бумага в лотке, а так же нет ли сигнализации об ошибках на принтере.
  • Если принтер подключается по USB, LPT, COM, то посмотрите выводы команд lsusb, dmesg на наличие записей о принтере. Если принтер с Ethernet-интерфейсом, проверьте связь с ним командой ping.
  • Если все вышеперечисленные проверки завершились успехом - тщательно проверьте настройки CUPS.
  • Проверьте в Веб-интерфейсе, не остановлена ли очередь печати принтера.
  • Если в статусе принтера написано waiting for job copmlete, то что-то мешает CUPS очистить очередь печати принтера (например отсутствие физического соединения с принтером или нехватка прав доступа).
  • Если при печати на бумаге выводится всякий мусор, то скорее всего выбраны неверные параметры/модель принтера.
  • Так же, для поиска неисправности необходимо просмотреть логи принтера в каталоге /var/log/cups/
  • Ну и как всегда, вам в помощь яндэкс и гугл.

Файлы и каталоги CUPS

В статье я уже приводил некоторые каталоги и файлы CUPS. В большинстве случаев, ручное редактирование каких-либо файлов CUPS, кроме /etc/cups/cupsd.conf, требуется довольно редко. Но для общего развития я расскажу о расположении файлов. Итак, как уже говорилось, для хранения настроек CUPS использует каталог /etc/cups/. Основной файл, имеющий для нас интерес - это cupsd.conf, который хранит глобальные настройки, так же существует printers.conf, хранящий настройки принтеров очередей печати. Подкаталог ppdсодержит файлы PPD для локальных принтеров. Файл passwd.md5 хранит зашифрованные пароли пользователей CUPS.

Большой объем данных лежит в /usr/share/cups/, в котором хранятся служебные файлы. Особый интерес представляет каталог /usr/share/cups/model/ (который в последней версии CUPS был перемещен в /usr/share/ppd/), который хранит описания для принтеров. При каждом старте сервер сканирует каталог /usr/share/cups/model на предмет появления новых описаний принтеров (PPD-файлов).

В процессе работы CUPS использует каталог /var/spool/cups/ для хранения описаний заданий печати и самих файлов заданий. Владельцем данного каталога должен быть пользователь root и группа lp. Права доступа определены, как 0710 (rwx--x---).

Так же используется каталог /var/run/cups/ для хранения информации о работе демона, такой как сокет, файл printcap и др.

Сервер печати CUPS входит в стандартный дистрибутив ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) и автоматически устанавливается и запускается при инсталляции ОС.

Проверить статус сервера можно командой

systemctl status cups

Администрирование сервера печати, находящегося на локальном сервере, осуществляется через web-интерфейc (например, с помощью браузера FireFox) по адресу

При входе в web-интерфейс браузер сам запрашивает идентификацию пользователя, и осуществляет аутентификацию.

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

Пользователь, от имени которого будут выполняться действия по настройке принтеров, должен быть добавлен в группу lpadmin .
Пользователь, от имени которого будут выполняться действия по маркировке заданий, должен быть добавлен в группу lpmac (в ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) создаётся по умолчанию, или команда groupadd -g 900 lpmac если не создана).
Это может быть один и тот же пользователь.

Сервер печати, встроенный в ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6), проверяет метку безопасности заданий, отправляемых на печать,
и все задания, имеющие ненулевые метки безопасности, задерживает до проведения их маркировки.

Маркировка задержанных заданий осуществляется специально назначенным пользователем (пользователями).

Для выполнения маркировки задержанных заданий, имеющих ненулевые метки безопасности, в комплект установки ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) входят:

  • Графический инструмент fly-admin-printer (доступен через меню "Пуск" > "Панель управления" > "Оборудование" > "Принтеры");
  • Графический инструмент fly-jobviewer , предаставляющий собой упрощенный аналог инструмента fly-admin-printer , не дающий возможносетй настройки сервера и принтеров.
    Инструмент доступен из меню: "Пуск"→ "Системные"→ "Очередь печати";
  • Инструмент командной строки markjob.

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

При работе с графическим инструментом fly-admin-printer :

  • После запуска инструмента выбрать в левой экранной форме нужный принтер;
  • В правой экранной форме выбрать закладку "Задания";
  • Выбрать нужное задание, правой кнопкой мыши вызвать контекстное меню, и выбрать пункт "Маркировать";
  • В открывшейся экранной форме заполнить необходимые поля, и нажать кнопку "Да";
  • В списке заданий появится несколько дополнительных заданий, причем и исходное и дополнительное задания будут помечены как "приостановленные";
  • Для вывода промаркированного задания на печать печать следует выбрать исходное задание, и нажать кнопку "возобновить".

При работе с инструментом командной строки markjob :

  • После запуска инструмента на экран выводится список заданий печати и запрашивается ввод нужного номера;
  • Ввести номер задания;
  • заполнить необходимые реквизиты;
  • после ввода всех реквизитов маркировка будет выполнена автоматически;
Формат маркеров документов задаётся в файле /etc/cups/marker.template.

После установки обновления БЮЛЛЕТЕНЬ № 20190222SE16 появляются две новые возможности управления печатью:

  • Запись журнала документов
  • Сохранение копий документов

Эти возможности можно включить с помощью графического администратора печати.

Журнал и копии заданий записываются в каталог /var/spool/cups/parsec Для доступа к этому каталогу нужны привилегии суперпользователя (root), или администратор печати должен быть запущен от имени пользователя, входящего в группу lp.

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

Запуска администратора печати через графическое меню:

После запуска Выбрать в меню

Выбрать закладку "МАС" и отметить нужные параметры "Включить журнал маркировки" и/или "Дублировать отпечатанные документы".


Из командной строки параметры можно установить редактируя файл /etc/cups/cupsd.conf.

Пример параметров печати можно найти в файле /usr/share/cups/cupsd.conf.default:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Если ваш принтер не определяется автоматически, эта статья научит вас, как добавить принтер в Linux вручную.

Несмотря на то, что сейчас будущее, и мы все должны использовать электронные гаджеты, принтер все еще может пригодиться. Производители принтеров еще не стандартизировали способы взаимодействия своих периферийных устройств с компьютерами, поэтому существует необходимый набор драйверов принтеров, независимо от того, на какой платформе вы работаете. Рабочая группа по принтерам IEEE-ISTO (PWG) неустанно работают над тем, чтобы сделать печать как можно проще. Сегодня многие принтеры определяются автоматически, без участия пользователя.

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

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

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

Существует три разновидности драйверов принтера:

  1. Драйверы Gutenprint с открытым исходным кодом, поставляемые в комплекте с Linux и в виде устанавливаемого пакета.
  2. Драйверы, предоставляемые производителем принтера
  3. Драйверы, созданные третьей стороной.

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

Установка драйверов с открытым исходным кодом

Возможно, в вашем дистрибутиве Linux они уже установлены, но если нет, вы можете установить их с помощью менеджера пакетов. Например, в Fedora, CentOS, Mageia и подобных:

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

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

В случае, если ваш принтер не поддерживается производителем, существуют сторонние авторы драйверов, которые могут поддерживать ваш принтер. Эти драйверы не имеют открытого исходного кода, но и большинство драйверов производителей тоже. Обидно, когда приходится тратить дополнительные 45 долларов, чтобы получить поддержку принтера, но альтернатива - выбросить принтер в мусор, и теперь вы знаете по крайней мере одну марку, которую следует избегать при покупке следующего принтера!

Общая система печати Unix (CUPS)

Common Unix Printing System (CUPS) была разработана в 1997 году компанией Easy Software Products и приобретена Apple в 2007 году. Это основа с открытым исходным кодом для печати в Linux, но большинство современных дистрибутивов предоставляют для нее специализированный интерфейс. Благодаря CUPS ваш компьютер может найти принтеры, подключенные к нему с помощью USB-кабеля, и даже общий принтер по сети.

После установки необходимых драйверов вы можете добавить принтер вручную. Сначала подключите принтер к компьютеру и включите их оба. Затем откройте приложение "Принтеры" на экране "Деятельность" или в меню приложений.

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

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

Если вы видите свой принтер в списке, значит, все готово, и вы уже можете печатать из Linux!

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

Ваш компьютер ищет подключенные принтеры (также называемые локальными принтерами). Чтобы компьютер искал общий сетевой принтер, введите IP-адрес принтера или его хост.

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

Руководство по настройке системы печати Linux.

Всеобъемлющее руководство по настройке печати в Gentoo Linux. Это руководство охватывает локальную и сетевую печать.

18 February 2003

Печать на локальной машине, с использованием CUPS

Установка CUPS и foomaticInstalling CUPS and foomatic

Настройка печати в Gentoo Linux сравнительно безболезненная задача, Благодаря нескольким замечательным программам, таким как CUPS (Common Unix Printing System) и foomatic. Обе эти программы легко доступны из дерева Портэджей, и очень легки в установке для конечных пользователей.

Знайте, что cups кросс-десктопная система, т.е. следуя этим инструкциям Вы можете настроить печать и в GNOME и в KDE. Существуют и другие настройки, такие как KDE's print setup, но я уверен, что CUPS проще в настройке, и более масштабируемая.

Перед установкой CUPS, будет правильно добавить необходимые флаги для USE в файл /etc/make.conf

Редактирование /etc/make.conf

Добавьте cups и usb (если ваш принтер подключён к USB) к вашему листу переменных USE.

Для получения более полной информации о переменной USE, читайте USE HOWTO.

Установка необходимых пакетов

Установка модулей ядра

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

Для включения поддержки USB принтера, зайдите в USB support и включите Support for USB и USB Printer support. Оба этих модуля будут установлены как usbcore.o и printer.o в директории, где хранятся модули. Я советую использовать модули, т.к. при этом нет необходимости перезагружать компьютер.

Если Вы не уверенны как компилировать ядро, официальный Linux Kernel-HOWTO находится здесь. Убедитесь, что вы разобрались, как компилировать и устанавливать новые модули без пересборки ядра и перезагрузки компьютера. Это действительно экономит время.

После того как ядро построено, и Ваш компьютер перезапущен, время загрузить требуемые модули:

Загрузка USB модулей

После того, как модули нормально загрузились, подключите принтер, и проверьте /var/log/messages. что бы убедиться, что он обнаружен системой.

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

Вы должны увидеть что то вроде этого:

Вывод /var/log/messages

Если Вы используете принтер с параллельным портом, убедитесь что, он подключен перед перезагрузкой. Когда система подымится, запустите dmesg и убедитесь, что ядро обнаружило Ваш принтер.

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

Тест принтера с помощью cat

Для принтеров с параллельным портом:

Специализированные драйвера принтеров

Перед тем как вы будете использовать foomatic для генерации PPD файлов, может возникнуть необходимость в нахождении драйверов для Вашего принтера от третьей стороны. Например, Epson обеспечивает драйверами принтеров для некоторых open source операционных систем. Однако, как в случае с Epson, многие из этих драйверов не open source.

Если Вы используете, притер HP Inkjet, необходимо установить драйвера для принтера hpijs. Этот драйвер управляет всеми необходимыми для работы принтера интерпретациями Postscript. hpijs предназначены только для принтеров HP Inkjet, но доступны из Портэджей для Вашего удобства. Документация от HP для драйверов hpijs расположена в /usr/share/doc/hpijs--<version>. Автор настоятельно рекомендует прочесть её.

Установка hpijs

Если Вы используете HP Laserjet, поддержка уже доступна через GNOME printing system. Если Вы используете не HP Inkjet printer, Вам не надо устанавливать эти специализированные драйвера.

Настройка файлов PPD

Теперь время приступить к настройке принтера и CUPS. Для корректной интерпретации Вашим принтером языка Postscipt, CUPS необходим PPD (Printer Postscript Definition) файл. Самый простой способ для создания PPD, это использовать foomatic.

Три составляющие информации нужны для корректной работы нижеследующей команды; Вам нужен Ваш printer ID, тип порта к которому подключен принтер, и драйвер для Вашего принтера (это был бы hpijs если бы Вам была необходима установка специальных драйверов как описано выше). printer ID и драйвера могут быть grep'нуты из базы данных foomatic (тип порта например /dev/lp0 или /dev/usb/lp0).

Перед использованием foomatic-configure, не забудьте запустить cupsdc .

Запуск cupsd

Общее использование foomatic

Теперь, более конкретный пример. Следующий код предполагает у Вас наличия принтера Epson Stylus Color 980. Конечно, Вы должны заменить его на свой для вашей модели принтера.

Использование foomatic с Stylus Color 980

Запомните, Вы должны использовать /dev/usb/lp0. если у Вас USB принтер.

Настройка CUPS

После того как принтер настроен, CUPS должен установить управление очередью печати. CUPS доступен через web броузер на порту 631 принт сервера.

CUPS имеет встроенный файл конфигурации для демона, который может, но не обязательно, быть модифицирован. Возможно вы захотите взглянуть на него, он называется /etc/cups/cupsd.conf.

Добавление CUPS в default runlevel, и запуск CUPS

CUPS daemon запущен, откройте Ваш броузер и зайдите сюда.

Надеюсь, что Вы увидите приветствие главной странице настройки. Нажмите на administration вверху страницы, и введите Ваш пароль root, или любого пользователя принадлежащего к группе lp . После аутентификации, нажмите на Add Printer в разделе printers . Введите требуемое имя, описание и расположение Вашего принтера. Вы должны выбрать имя принтера точно такое же как имя очереди которое Вы указали для foomatic. Теперь Вы должны выбрать устройство, к которому подключен Ваш принтер. Выберете тип принтера. На следующей странице выберите Ваш принтер из списка.

Конфигурация закончена! Нажмите на имя своего принтера, и попробуйте напечатать тестовую страницу. Вуаля, настройка Вашего принтера завершена!

Если принтер не работает по каким либо причинам, зайдите в директорию где хранятся логи CUPS, и посмотрите в файл error_log .

Перед началом, необходимо установить расширения для печати CUPS в Gimp's CUPS.

Установка gimp-print-cups

Теперь, откройте GIMP, и откройте картинку, или просто пустой лист, это не имеет значения, т.к. нам необходим только пункт меню File . Кликнете правой клавишей на изображении и выберете File/Print . Должен появиться диалог для printing, когда он появится, кликнете на new printer. Если Вашего принтера нет в списке, введите имя своего принтера, после чего выберете тип своего принтера. Ok, теперь, Вы установили печать из GIMP. Поиграйтесь с настройками и получите удовольствие.

Abiword

Abiword вызывает "segfaults" и "crashes" с CUPS-1.1.15-r2. Рекомендуется вернуться к версии .14 как к возможному решению проблемы.

TODO: добавить поддержку Abiword.

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

Сетевая печать с использованием CUPS и SAMBA

Печать на Windows принтере, с Linux машины

Первое, SAMBA должна быть установлена, для работы следующих двух опций сетевой печати.

Установка SAMBA

Для получения большей информации о SAMBA, читайте официальный SAMBA HOWTO, находящийся здесь.

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

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

Теперь, направьте свой броузера сюда и вызовете конфигурационный GUI CUPS. Проделайте шаги по добавлению принтера, но на этот раз, на вопрос о порте принтера, введите smb://user:password@server/share . Это укажет CUPS путь к принтеру на Windows машине.

Использование Linux как Windows совместимый сервер печати

На Linux можно построить замечательный сервер печати, вообще то, на нём можно отлично построить любой сервер. Первый шаг, это редактирование файла /etc/samba/smb.conf для подгона ваших установок. Файл smb.conf содержит все установки, для того, что бы Ваша Linux машина выглядела как Windows NT server для любых Windows машин. Я включил очень полезный пример smb.conf ниже. Отредактируйте, если надо, для подгонки под ваше сетевое окружение.

Пример smb.conf

Теперь SAMBA настроена, перезапустите samba, идите к Windows машине и установите сетевой принтер. Проще простого, а?

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