Печать с использованием Samba

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

Печать на принтеры Linux

Конфигурация печати с использованием Samba очень похожа на совместное использование файловой системы. В действительности, есть два способа, чтобы выполнить это. Самый простой путь состоит в создании специального раздела [printers] в файле smb.conf и использовании его совместно с вашим файлом Linux /etc/printcap. В этой главе уже упоминалось, что раздел [printers] предоставляет значения по умолчанию для всех принтеров, перечисленных в файле /etc/printcap. Если вы добавите к этому разделу директиву "load printers=yes", то Samba загрузит файл /etc/printcap и применит к печатающим устройствам все значения по умолчанию, которые там найдет.

Для корректной печати Samba необходимо знать, какого рода подсистему печати поддерживает ваш Linux. Samba поддерживает несколько различных подсистем печати. Если ваша Версия Linux использует команду Ipr, то вам следует установить "printing=bsd" в разделе [global] файла smb.conf. Аналогично, если ваш Linux использует команду , то вам следует установить printing=sysv". HP-UX и AIX имеют свои собственные установки на печать, "hpux" и "aix" соответственно.

Samba использует подсистему печати, заданную в файле smb.conf, чтобы определить, какие использовать команды по умолчанию для печати и управления печатью. Обычно Samba делает разумные предположения относительно команд по умолчанию. Однако, если вы хотите осуществить полный контроль, то можете настроить команды печати непосредственно в конфигурационном файле Samba. Есть несколько опций, которые позволяют предоставить новые команды для использования пакетом Samba. Три из наиболее распространенных команд настройки представлены в табл.

В дополнение к использованию всех принтеров в файле /etc/printcap с помощью раздела [printers] вашего конфигурационного файла, Samba поддерживает также экспортные индивидуальные принтеры, такие как сетевые принтеры коллективного использования. Это достигается преимущественно таким же способом, как и в случае с экспортирующими индивидуальными файловыми системами коллективного использования. При совместном использовании индивидуальных принтеров вместо системных принтеров по умолчанию вы можете запретить пользователям просматривать принтеры системы, ограничить доступ к определенному набору принтеров или обеспечить более тонкий уровень контроля по каждому из них.

Чтобы создать принтер коллективного использования, просто создайте для его раздел в конфигурационном файле Samba. Рассмотрим пример:

      [graphicprt] 
        comment = Graphics Staff Printer                               
        valid users = @graphics
        path = /val/spool/ graphicprt     
        printer = graphic_prt001
        public = no 
        writable = no                       
        printable = yes  
Настройка обычных команд печати для Samba
Директива Samba
Пример
Использование
команда printlpr-r-P%p%s Samba использует эту команду в качестве реальной команды для печати файла. Макроопределение %р автоматически заменяется именем принтера, а %s - именем файла спулинга, Предназначенного для печати
команда Ipqlpq-P%pЭта команда используется для запроса подсистемы печати и возвращения списка заданий на заданном устройстве печати. Макрос %р заменяется именем принтера
команда Iprmlprm-P%p%j

Samba использует эту команду для удаления задания из буфера печати. Макро %j заменяется номером задания, возвращаемого командой /pq

Мы хотим создать новый принтер коллективного использования для персонала в группе графики. Этот элемент конфигурации создает новый совместно используемый ресурс с именем SMB graphicprt. Используя директиву "valid users=@graphics", мы ограничиваем доступ только членами группы графики. Директива "path" используется для направления заданий на печать в соответствующий директорий спулинга, а директива "printer" дает принтеру имя таким образом, что Samba может найти его в /etc/printcup. Кроме этого, мы установили директиву "public=no", чтобы помешать пользователям-гостям печатать на этом принтере.

Это все, что имеется по данному вопросу. Как вы можете видеть, создать и коллективно использовать описание нового принтера с помощью Samba очень просто. Вы можете, конечно, провести более детальную настройку для индивидуальных принтеров путем добавления соответствующих директив конфигурации. За полным списком директив настройки, поддерживаемых Samba, обращайтесь к странице man для файла smb.conf.

Печать на принтеры PC

Теперь, увидев как несложно создать новую совместно используемую печать через Samba, вы, наверное, готовы к рассмотрению более трудных задач. Вас, вероятно, интересует, можно ли использовать Samba для печати на Принтеры, ориентированные на PC, в дополнение к принтерам коллективного использования на базе Linux. Ответ положительный, однако решение уже не будет столь легким. Прежде чем попытаться использовать ориентированные на PC принтеры, вам следует получить некоторое представление о конфигурировании принтеров, ориентированных на Linux, и о редактировании файла /etc/printcap.

Первым шагом к коллективному использованию ориентированного на PC принтера является создание элемента для принтера в файле /etc/printcap системы Linux. Ниже дан пример элемента printcap для принтера Hewlett-Packard DeskJet 870Cse:

      dj870:\
        :cm= DeskJet 870Cse:\
        :sd=/var/spool/lpd/dj870: \
        :af=/var/spool/lpd/dj870/acct: \                             
        :if=/usr/local/etc/smbprint:\                     
        :mx=0:\                     
        :lp=/dev/nutl:                     

Этот синтаксис выглядит ужасно таинственным, но это просто способ работы файла /etc/printcap. Особый интерес в этом компоненте представляет рока:

      : if=/usr/local/etc/smbprint:\

которая предписывает системе печати использовать в качестве входного фильтра файл /usr/local/etc/smbprint. Этот файл является сценарием командного процессора, который в действительности вызывает соответствующую программу Samba, чтобы печатать на компьютере PC.

Те, кто являются знатоками UNIX, возможно заметили строку учетного файла в элементе /etc/printcap, а именно, ":af=/var/spool/lpd/dj870/act:". Эта строка должна быть представлена, чтобы печать работала. Сценарий smbprinf использует элемент учетного файла для задания пути к специальному файлу конфигурации.

Подробное описание синтаксиса файла printcap выходит за рамки данной главы. Более подробную информацию по внутренней работе файла printcap можно найти на одноименной man странице.

На следующем этапе вам необходимо обеспечить Samba некоторыми данными по конфигурации принтера. Используйте предпочитаемый вами текстовый редактор UNIX для создания файла с именем .conflg в директории /var/spool/lpd/PRINTNAME, где "PRINTNAME" является именем активного принтера (в нашем случае dj870). Этот файл должен содержать три строки, которые дают имя Net BIOS компьютера PC с подсоединенным принтером, л принтера коллективного использования и пароль, требуемый для подсоединения к этому принтеру коллективного использования. Таким образом, возвращаясь к нашему примеру, файл /var/spool/lpd/dj870/.config мог бы содержать следующие строки:

      sеrbver=GRAPHSRV
      service=HPDJ_870CSE
      password=""

Эти элементы сообщают Samba, что именем Net BIOS для сервера PC является "GRAPHSRV" и что он коллективно использует свой принтер с разделяемым именем "HPDJ_870CSE". Никакого пароля для подсоединения к этому сервису печати не требуется.

Таким образом, вы видите, что можете добиться от Samba осуществления печати на совместно используемый принтер, ориентированный на PC, но это чуть сложнее, чем печать при совместном использовании, ориентированном на Linux. Если вы хотите познакомиться с тем, как все это работает, загляните в сценарий командного процессора smbprint, поставляемый вместе с дистрибутивом Samba. Этот сценарий оперирует печатью при совместном использовании, ориентированном на PC, и содержит несколько подробных примеров.






Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости