FreeBSD это зарегистрированная торговая марка FreeBSD Foundation.
Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак <<TM>> или <<(R)>>.
Эта статья посвящена конфигурированию Универсальной Системы Печати UNIX (CUPS) на FreeBSD.
Универсальная Система Печати UNIX (Common Unix Printing System, или сокращенно CUPS), предоставляет переносимую среду печати для UNIX(R) и UNIX(R)-подобных операционных систем. Она была разработана компанией Easy Software Products, чтобы предоставить стандартное решение в печати для всех разработчиков и пользователей UNIX(R).
Универсальная Система Печати UNIX использует протокол межсетевой печати (Internet Printing Protocol, IPP) как основу для управления заданиями на печать и очередями. Также частично поддерживаются следующие протоколы: LPD, SMB и AppSocket (также известный как JetDirect). CUPS дает возможность обзора сетевых принтеров и использования опций, базирующихся на ПостСкрипт Описании Принтеров (PostScript Printer Definition, PPD), чтобы поддерживать в UNIX(R) общепринятые традиции печати. В результате CUPS идеально подходит для совместного использования принтеров в смешанной среде из FreeBSD, Linux(R), Mac OS(R) X или Windows(R).
Официальный сайт Универсальной Системы Печати UNIX -
http://www.cups.org/
.
Для установки CUPS используя пакет, запустите на выполнение такую команду:
#
pkg install cups
Другие необязательные, но рекомендуемые к установке
пакеты это print/gutenprint-cups
и print/hplip, каждый из которых
добавляет драйвера и утилиты для разнообразных принтеров. После
установки файлы конфигурации CUPS могут быть
найдены в директории /usr/local/etc/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
. Чтобы
найти требуемые значения, просмотрите вывод dmesg(8) и найдите
связанное с вашим принтером имя специального устройства
ugen
,
последнее будет символической ссылкой на искомое устройство в каталоге
X
.Y
/dev/usb
.
Затем, добавьте следующие две записи в
/etc/rc.conf
:
cupsd_enable="YES" devfs_system_ruleset="system"
Эти две записи будут запускать сервер печати CUPS во время загрузки системы и применять локальное правило devfs, созданное выше.
Для того, чтобы печать CUPS стала
доступна для некоторых Microsoft(R) Windows(R) клиентов, необходимо
раскомментировать следующую запись в
/usr/local/etc/cups/mime.types
и
/usr/local/etc/cups/mime.convs
:
application/octet-stream
По окончанию внесения изменений службы devfs(8) и
CUPS необходимо перезапустить, для чего
перезагрузите операционную систему или выполните от пользователя
root
следующие две команды:
#
/etc/rc.d/devfs restart
#
/usr/local/etc/rc.d/cupsd restart
После того, как система CUPS была установлена и сконфигурирована, системный администратор может начать конфигурирование локальных принтеров, подключенных к серверу печати CUPS. Эта часть процесса очень похожа, если не идентична настройке принтеров CUPS в других UNIX(R)-подобных операционных системах, таких как дистрибутивы Linux(R).
Основным способом управления и администрирования сервера
CUPS является веб-интерфейс,
на который можно попасть запустив веб-браузер и набрав
http://localhost:631
в его адресной строке.
Если сервер CUPS находится на другой
машине в сети, замените localhost
на
IP адрес сервера. Веб-интерфейс
CUPS достаточно очевиден, там есть разделы
для управления принтерами и заданиями на печать, авторизацией
пользователей и т.п. Кроме того, в правой части страницы
администрирования есть несколько флажков (check-box), дающих
удобный доступ к часто меняемым установкам, таким как разрешение
публичного доступа к подключенным к системе принтерам, предоставление
удаленного управления сервером CUPS,
изменение уровня доступа пользователей к принтерам и их заданиям
на печать.
Добавление принтера в общем такое же простое, как нажатие <<Add Printer>> на странице администрирования веб-интерфейса сервера CUPS или как нажатие одной из кнопок <<New Printers Found>> на той же странице администрирования. Когда перед вами предстанет выпадающий список <<Device>>, просто выберите требуемый локально подключенный принтер, а дальше следуйте подсказкам интерфейса. В случае если были установлены порты или пакеты print/gutenprint-cups или print/hplip, как указывалось выше, дополнительные драйвера печати будут доступны на последующих страницах, что может обеспечить большую надежность и расширенные возможности.
После того, как сервер CUPS был настроен, принтеры добавлены и сделаны доступными в сети, следующий шаг - это настройка клиентов или машин, которые будут иметь доступ к серверу CUPS. Если у вас единственный настольный компьютер, который работает одновременно и сервером и клиентом, то в большинстве этой информации вы не нуждаетесь.
На UNIX(R) клиентах также потребуется установить
CUPS. После установки системы
печати на клиенте, CUPS-принтеры,
присутствующие в сети, чаще всего автоматически находятся
менеджерами принтеров разных графических оболочек, таких как
GNOME или KDE.
В качестве альтернативы, вы можете воспользоваться веб-интерфейсом
CUPS на клиентской машине по адресу
http://localhost:631
и на странице
администрирования выбрать <<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(R), предшествующие XP, не имели встроенной
поддержки протокола IPP. Однако Windows(R) XP
и более поздние версии уже обладают такой возможностью. Следовательно,
добавить CUPS принтер в этих версиях
Windows(R) довольно просто. В большинстве случаев, администратору
Windows(R) потребуется запустить мастера установки принтера
(Add Printer
) выбрать сетевой принтер
(Network Printer
), а затем ввести
URI следующего формата:
http://server-name-or-ip
:631/printers/printername
Если используется версия Windows(R) без поддержки протокола IPP, то общим случаем подключения к CUPS-принтеру будет совместное использование CUPS и net/samba3. Описание этой возможности выходит за рамки данной статьи.
Проблемы c CUPS часто возникают
из-за неверных прав доступа. Сначала дважды проверьте права доступа
в 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>