Универсальная Система Печати 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 в портах, потенциально ее
использующих.