воскресенье, 22 марта 2015 г.

Правильно шарим CUPS-принтер через Samba

Есть достаточно большая сеть в которой более сотни LTSP-клиентов, к которым подключено сотня же с небольшим принтеров. Тут же и нормальные компы со своими принтерами (все Xubuntu 14.04), есть сетевые принтеры. И в качестве десерта 2 виндовых терминальных сервера (Windows 2008R2 и пожилой Windows 2003), с которых на эти самые принтеры нужно печатать. Суть проблемы такова - часто происходит ошибка при выборе принтера "не по умолчанию" и пользователи выбирают не тот... Наиболее часто это происходит в начале списка, получается что все принтеры на букву "a"  должны иметь ограничительные списки (это самый минимум). Что касается Линукса - проблем никаких, пишем тупо списки доступа через web-интерфейс CUPS, при этом нет разницы между локальными и удаленными пользователями - просто имя и все. Удобно. При печати с виндового сервера непосредственно в CUPS (подключение через http://, ipp://, ipps://) так красиво не получается, в CUPS передается что-то такое, чего я в логах и найти не смог, ну и доступ, конечно же не предоставляется (все зависит тут от версии винды, встречались упоминания о том, что в ряде случаев передается совершенно нормальное имя).  Как вариант попадалось Client 19 (номер подключения по RDP) - информативненько... Для 2008 сервера почти наверняка можно просто указать имя и ничего более не делать (это имя видится в логах), а вот для 2003 берем бубен... Пробуем засунуть Самбу между CUPS-ом и Виндой, чтоб они друг об друга не шоркались... В smb.conf в глобальной секции

### Globals for printing
# Do not (!) load all printers from CUPS

   load printers = no
   printcap = cups
   printing = CUPS

И опишем принтер
########## Printing ##########

[printers]
   comment = Some Printers
   path = /var/spool/samba
   printable = yes

[adm_3]
    path = /var/spool/samba/
    browseable = yes
    printable = yes
    use client driver = yes
    printer name = adm_3

Теперь на виндовом сервере добавляем этот принтер, добавляем который с указанием типа принтера и в названии "_" поменялось на "-" примерно так (легко догадаться что подключаем-то мы как раз CUPS-овый принтер, а не тот, что так заботливо создавали, но без "лишнего" принтера этот трюк почему-то не удается...)

Без проблем ставим "родной" pcl-ный драйвер. Еще важно. Нужно пользователям (для которых это все делается) прибиндить какой--либо ресурс с этого сервера в качестве сетевого диска, и установить атрибут "восстанавливать при входе в систему". И вот тогда мы можем использовать имя пользователя в Самбе для указания разрешенного пользователя в CUPSе. Принцип простой - пользователь зашел на терминальный сервер, при входе подключился диск, и, как следствие, пользователь залогинился в Самбу. При обращении к принтеру у него будет нормальное имя. И еще замечание. И виндовый сервер и Samba работают как stndalone (нет доменной структуры). Лишний принтер (пока) единственный. Просто оказалось достаточным ограничить доступ к единственному "неудачному" принтеру и проблема снялась. За 2008 пока не брался -- народ мышкой более осознано тыкает, проблема не так остра. Очень надеюсь что в будущем удастся добиться существенно большей логической ясности.

Комментариев нет:

Отправить комментарий