Пятница, 03-Апреля-2020, 07.43.21
Service Comp
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Меню сайта

Форма входа

Категории раздела
Новости железа [17]
Новости железа
Военные технологии [1]
Военные технологии
Полезное [25]
В этом разделе находится то что нам необходимо знать в повседневной жизни
Демотиваторы [1]
Картинки, коте, демотиваторы,

IP адрес

Главная » Статьи » Полезное

CUPS - сервер печати с использованием samba+AD

CUPS - сервер печати с использованием samba+AD


    Решил в качестве эксперимента настроить файловый сервер на самбе, с аутентификацией пользователей в AD. После танцев с бубном наконец-то получил билет кербереса и все заработало (самбу настраивал по статье urgor'a SAMBA+AD+NT ACL, за что ему огроменное спасибо). Вместе с самбой поставил и CUPS. Вот только сетевой принтер фирмы HP на стандартных CUPS'овых дровах работать не захотел.... И так, начнем превращение нашей самбы еще и в принт-сервер. Предполагается, что самба+купс уже настроены и аутентификация пользователей в AD проходит успешно.
   Заходим на http://192.168.0.201:631 и пробуем добавить принтер. Если есть сетевые принтеры(имеющие свой IP) - купс часть нанюхает сам, но не все. Итак, добавляем принтер.
   При попытке напечатать тестовую страницу у меня появилась ошибка  "Unsupported format 'application/postscript'!". ищем дрова на принтеры HP, не забыв перед этим обновить коллекцию портов :)
[srv:/usr/ports]#make search name=hplip
Port: hplip-1.6.7
Path: /usr/ports/print/hplip
Info: Drivers and utilities for HP Printers and All-in-One devices

   Ставим. Если принтер не HP, то, возможно, подойдет Gimp-print. Официальный сайт –gimp-print.sourceforge.net

   Устанавливаем принтер заново, но уже с драйверами из свежеустановленного пакета. (В моем случае было несколько драйверов для моей модели. Я поставил с PostScript).
   Пробуем напечатать тестовую страницу - у меня получилось. Таже принтер должен появиться рядом с расшаренными папками (смотрим с виндусового компа).
   Можно даже попробовать его подключить, но драйверов сервак не даст,а предложит выбрать из существующих или установить с диска. Я поставил первые попавшиеся (даж не от моего прринтера, даж не HP). Тестовая страница теперь печатается еще и из винды.
   А дальше начинается самое интересное. Как заставить наш принт-сервер отдавать клиентам дрова, шоб не пришлось каждый раз бегать с диском? Вот этим-то мы и займемся. Ради этого,собственно,я и писал эту статью... Отвечает за все это дело пакет cups-samba. Его и ставим.
[srv:/usr/ports]#make search name=cups-samba
Port: cups-samba-5.0.r3
Path: /usr/ports/print/cups-samba
Info: The Common UNIX Printing System: MS Windows client drivers

   После установки видим подробную инструкцию к действиям. Ей и последуем.
   В smb.conf в секцию [global] дописываем (если такие параметры есть-заменяем)
 load printers = yes
 printing = cups
 printcap name = cups

   Добавляем секции для принтеров (приводим их к такому виду)
[printers]
 comment = All Printers
 path = /var/spool/samba
 browseable = no
 public = yes
 guest ok = yes
 writable = no
 printable = yes
 printer admin = root
[print$]
 comment = Printer Drivers
 path = /usr/local/share/cups/drivers
 browseable = yes
 # guest ok = yes works too
 guest ok = no
 read only = yes
 write list = root

и перезапускаем самбу
/usr/local/etc/rc.d/samba restart

   А дальше - проверка Вашей везучести:
cupsaddsmb -U root cups_printer_1 cups_printer_2


где cups_printer_1 - имя вашего принтера
или
cupsaddsmb -U root -H localhost -a -v

для добавления всех принтеров.

   Как выглядит успешное завершение этой программы я не знаю, на если на экране бегут строчки,где в блоках меняется только /var/spool/cups/tmp/470334f09f627, или есть сообщения об ошибке (driver not installed, напр) то, судя по всему, Вам не повезло... Жмем ctrl+C и готовимся к танцам.. С бубном...
   Весь процесс состоит из 3 шагов, но для начала, находим на виндовой машине файлы ps5ui.dll, pscript.hlp, pscript.ntf, pscript5.dll и копируем их в /usr/local/share/cups/drivers. Все имена файлов должны быть в НИЖНЕМ регистре.

  • 1. Создаем необходимые папки и копирует туда файлы (одна длиная строка!)
    smbclient -H //localhost/print$ -Uroot -c 'mkdir W32X86;put /var/spool/cups/tmp/470334eed261d W32X86/hp2420_y3.ppd;put /usr/local/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put /usr/local/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put /usr/local/share/cups/drivers/pscript.ntf W32X86/pscript.ntf;put /usr/local/share/cups/drivers/pscript5.dll W32X86/pscript5.dll'

    суть этой команды такова: заходим smbclient'ом на //localhost/print$ (это тоже шара,просто скрытая)
    и выполняем команды начиная с mkdir W32X86.Основная проблема,которая может возникнуть на этом шаге-запрет записи.Я поставил права доступа 777 на /usr/local/share/cups/drivers и заменил  write list = root на 
    write list = root, guest, nobody в smb.conf
    после успешного выполнения в /usr/local/share/cups/drivers должна появиться папка W32X86.

    и еще - снова одной строкой

    smbclient //localhost/print$ -Uroot -c 'put /usr/local/share/cups/drivers/cups6.ini W32X86/cups6.ini;put /usr/local/share/cups/drivers/cupsps6.dll W32X86/cupsps6.dll;put /usr/local/share/cups/drivers/cupsui6.dll W32X86/cupsui6.dll'

  • 2. В smb.conf меняем
    disable spoolss = Yes
    

    на
    disable spoolss = No
    

    далее запускаем
    cupsaddsmb -U root -H localhost -a -v
    

    и ищем там строчку:
    rpcclient localhost -N -A /var/spool/cups/tmp/47034d38731a2 -c 'adddriver [...]'
    

    и запускаем ее как:
    rpcclient localhost -Uroot -c 'adddriver [...]'
    

  • 3. Теперь надо сказать самбе какой драйвер для какого принтера
    rpcclient localhost -N -U'root%toor' -c 'setdriver printer_name driver_name'
    

       Обычно printer_name и driver_name идентичны. Если получаем:
    result was WERR_ACCESS_DENIED
    

    то пробуем:
    1) в секции [global] дописываем 'use client driver = no' - говорит клиенту стягивать дрова на приттер с нашего cups-сервака
    2)Меняем /etc/pam.d/login на стандартный и smb.conf - на дефолтовый,при этом убираем из него все "лишнее",оставляя минимум.
    После завершения установки дров все ставим на место и рестартим самбу.

    ВСЕ!
    После успешного завершения при подключении сетевого принтера дрова на винду должны ставиться автоматически

    Эта статья не претендует на подробное руководство по настройке CUPS-SAMBA. Скорее, просто мой личный опыт работы.. Наверняка, есть более простой и удобный способ настройки. Статья писалась уже после настройки и запуска сервака, на память. Так что возможны неточности. Если есть идеи или проблемы - пишите. Будем вместе разбираться :)

  • Категория: Полезное | Добавил: mudri (13-Июня-2012)
    Просмотров: 1498 | Теги: сервер печати, cups, samba | Рейтинг: 5.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Наш опрос
    Оцените мой сайт
    1. Отлично
    2. Ужасно
    3. Хорошо
    4. Неплохо
    5. Плохо
    Всего ответов: 110

    Друзья сайта
    Ежедневные курсы валют в Республике Казахстан

    Поиск

    Статистика
    Яндекс.Метрика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Copyright Service Comp © 2020