Универсальная Система Печати Unix на FreeBSD Chess Griffin
chess@chessgriffin.com
&tm-attrib.freebsd; &tm-attrib.general; $FreeBSD$ $FreeBSD$ Эта статья посвящена конфигурированию Универсальной Системы Печати UNIX (CUPS) на &os;.
Знакомимся с Универсальной Системой Печати UNIX (CUPS) printing CUPS Универсальная Система Печати UNIX (Common Unix Printing System, или сокращенно CUPS), предоставляет переносимую среду печати для &unix; и &unix;-подобных операционных систем. Она была разработана компанией Easy Software Products, чтобы предоставить стандартное решение в печати для всех разработчиков и пользователей &unix;. Универсальная Система Печати UNIX использует протокол межсетевой печати (Internet Printing Protocol, IPP) как основу для управления заданиями на печать и очередями. Также частично поддерживаются следующие протоколы: LPD, SMB и AppSocket (также известный как JetDirect). CUPS дает возможность обзора сетевых принтеров и использования опций, базирующихся на ПостСкрипт Описании Принтеров (PostScript Printer Definition, PPD), чтобы поддерживать в &unix; общепринятые традиции печати. В результате CUPS идеально подходит для совместного использования принтеров в смешанной среде из &os;, &linux;, &macos; X или &windows;. Официальный сайт Универсальной Системы Печати UNIX — . Установка сервера печати CUPS CUPS может быть установлена из портов или уже собранных пакетов. Чтобы установить CUPS из коллекции портов, выполните с привилегиями пользователя root следующую команду: &prompt.root; cd /usr/ports/print/cups && make install clean Для установки CUPS используя пакет, запустите на выполнение такую команду: &prompt.root; pkg_add -r cups Другие необязательные, но рекомендуемые к установке порты или пакеты это print/gutenprint-cups и print/hplip, каждый из которых добавляет драйвера и утилиты для разнообразных принтеров. После установки файлы конфигурации CUPS могут быть найдены в директории /usr/local/etc/cups. Настройка сервера печати CUPS Чтобы настроить сервер CUPS необходимо отредактировать несколько конфигурационных файлов. Для начала создайте или исправьте файл /etc/devfs.rules и добавьте следующую информацию для того, чтобы установить соответствующие права на все потенциальные файлы устройств принтеров и связать принтеры с группой пользователей cups: [system=10] add path 'unlpt*' mode 0660 group cups add path 'ulpt*' mode 0660 group cups add path 'lpt*' mode 0660 group cups add path 'usb/X.Y.Z' mode 0660 group cups Замените X, Y и Z номерами соответствующего принтеру целевого устройства USB, отображаемого в каталоге /dev/usb. Чтобы найти требуемые значения, просмотрите вывод &man.dmesg.8; и найдите связанное с вашим принтером имя специального устройства ugenX.Y, последнее будет символической ссылкой на искомое устройство в каталоге /dev/usb. Затем, добавьте следующие две записи в /etc/rc.conf: cupsd_enable="YES" devfs_system_ruleset="system" Эти две записи будут запускать сервер печати CUPS во время загрузки системы и применять локальное правило devfs, созданное выше. Для того, чтобы печать CUPS стала доступна для некоторых µsoft.windows; клиентов, необходимо раскомментировать следующую запись в /usr/local/etc/cups/mime.types и /usr/local/etc/cups/mime.convs: application/octet-stream По окончанию внесения изменений службы &man.devfs.8; и CUPS необходимо перезапустить, для чего перезагрузите операционную систему или выполните от пользователя root следующие две команды: &prompt.root; /etc/rc.d/devfs restart &prompt.root; /usr/local/etc/rc.d/cupsd restart Настройка принтеров на сервере печати CUPS После того, как система CUPS была установлена и сконфигурирована, системный администратор может начать конфигурирование локальных принтеров, подключенных к серверу печати CUPS. Эта часть процесса очень похожа, если не идентична настройке принтеров CUPS в других &unix;-подобных операционных системах, таких как дистрибутивы &linux;. Основным способом управления и администрирования сервера CUPS является веб-интерфейс, на который можно попасть запустив веб-браузер и набрав в его адресной строке. Если сервер CUPS находится на другой машине в сети, замените localhost на IP адрес сервера. Веб-интерфейс CUPS достаточно очевиден, там есть разделы для управления принтерами и заданиями на печать, авторизацией пользователей и т.п. Кроме того, в правой части страницы администрирования есть несколько флажков (check-box), дающих удобный доступ к часто меняемым установкам, таким как разрешение публичного доступа к подключенным к системе принтерам, предоставление удаленного управления сервером CUPS, изменение уровня доступа пользователей к принтерам и их заданиям на печать. Добавление принтера в общем такое же простое, как нажатие Add Printer на странице администрирования веб-интерфейса сервера CUPS или как нажатие одной из кнопок New Printers Found на той же странице администрирования. Когда перед вами предстанет выпадающий список Device, просто выберите требуемый локально подключенный принтер, а дальше следуйте подсказкам интерфейса. В случае если были установлены порты или пакеты print/gutenprint-cups или print/hplip, как указывалось выше, дополнительные драйвера печати будут доступны на последующих страницах, что может обеспечить большую надежность и расширенные возможности. Конфигурирование клиентов CUPS После того, как сервер CUPS был настроен, принтеры добавлены и сделаны доступными в сети, следующий шаг — это настройка клиентов или машин, которые будут иметь доступ к серверу CUPS. Если у вас единственный настольный компьютер, который работает одновременно и сервером и клиентом, то в большинстве этой информации вы не нуждаетесь. &unix; клиенты На &unix; клиентах также потребуется установить CUPS. После установки системы печати на клиенте, CUPS-принтеры, присутствующие в сети, чаще всего автоматически находятся менеджерами принтеров разных графических оболочек, таких как GNOME или KDE. В качестве альтернативы, вы можете воспользоваться веб-интерфейсом CUPS на клиентской машине по адресу и на странице администрирования выбрать Add Printer. Когда перед вами предстанет выпадающий список Device, просто выберите сетевой CUPS принтер, если он был обнаружен автоматически, или выберите ipp или http и введите IPP или HTTP адрес (URI) сетевого CUPS принтера: ipp://server-name-or-ip/printers/printername http://server-name-or-ip:631/printers/printername Если CUPS клиент не находит в сети принтеры, доступные через сервер CUPS, то иногда помогает создание или изменение файла /usr/local/etc/cups/client.conf с добавлением единственной записи, подобной следующей: ServerName server-ip В этом случае server-ip необходимо заменить на IP адрес сервера CUPS в сети. &windows;-клиенты Версии &windows;, предшествующие XP, не имели встроенной поддержки протокола IPP. Однако &windowsxp; и более поздние версии уже обладают такой возможностью. Следовательно, добавить CUPS принтер в этих версиях &windows; довольно просто. В большинстве случаев, администратору &windows; потребуется запустить мастера установки принтера (Add Printer) выбрать сетевой принтер (Network Printer), а затем ввести URI следующего формата: http://server-name-or-ip:631/printers/printername Если используется версия &windows; без поддержки протокола IPP, то общим случаем подключения к CUPS-принтеру будет совместное использование CUPS и net/samba3. Описание этой возможности выходит за рамки данной статьи. Устранение неполадок с CUPS Проблемы c CUPS часто возникают из-за неверных прав доступа. Сначала дважды проверьте права доступа в &man.devfs.8; (сверьтесь с уже описанными выше). Затем, проверьте реальные права устройств, созданных в файловой системе. Также бывает полезным удостовериться, что ваш пользователь входит в группу cups. Если у вас складывается впечатление, что флажки прав доступа на странице администрирования веб-интерфейса CUPS не работают, то иным решением может быть резервное копирование конфигурационного файла /usr/local/etc/cups/cupsd.conf и редактирование разных опций конфигурации с подбором их комбинаций. Ниже приведено содержимое тестового файла конфигурации /usr/local/etc/cups/cupsd.conf. Пожалуйста, обратите внимание на то, что безопасность в этом примере cupsd.conf была пожертвована в угоду простоте настройки; как только администратор успешно подсоединится к серверу CUPS и сконфигурирует клиентов, рекомендуется пересмотреть данную конфигурацию и добавить разграничение доступа. # Log general information in error_log - change "info" to "debug" for # troubleshooting... LogLevel info # Administrator user group... SystemGroup wheel # Listen for connections on Port 631. Port 631 #Listen localhost:631 Listen /var/run/cups.sock # Show shared printers on the local network. Browsing On BrowseOrder allow,deny #BrowseAllow @LOCAL BrowseAllow 192.168.1.* # change to local LAN settings BrowseAddress 192.168.1.* # change to local LAN settings # Default authentication type, when authentication is required... DefaultAuthType Basic DefaultEncryption Never # comment this line to allow encryption # Allow access to the server from any machine on the LAN <Location /> Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Allow access to the admin pages from any machine on the LAN <Location /admin> #Encryption Required Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Allow access to configuration files from any machine on the LAN <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Set the default printer/job policies... <Policy default> # Job-related operations must be done by the owner or an adminstrator... <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \ Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \ Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \ CUPS-Move-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> # All administration operations require an adminstrator to authenticate... <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \ Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \ Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \ Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \ CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> AuthType Basic Require user @SYSTEM Order deny,allow </Limit> # Only the owner or an administrator can cancel or authenticate a job... <Limit Cancel-Job CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy> Настройка портов использующих CUPS Если CUPS будет служить в качестве основной системы печати, то можно по желанию добавить несколько записей в /etc/make.conf, которые выделят CUPS среди других систем. Вот некоторые из них: WITH_CUPS=YES CUPS_OVERWRITE_BASE=YES WITHOUT_LPR=YES Первая переменная, WITH_CUPS, добавляет поддержку CUPS к портам, в которых предусмотрена такая возможность. Вторая запись, CUPS_OVERWRITE_BASE, исправит некоторые символические ссылки и пути, которые иначе приводили-бы к системе печати &os; по умолчанию — LPR. Также она предотвратит откат этих изменений во время следующего обновления системы посредством buildworld. Третья переменная, WITHOUT_LPR, предотвратит включение поддержки LPR в портах, потенциально ее использующих.