- Samba print server
- Поддерживаемые сервера печати
- Поддержка бэкэндов CUPS или IPRINT в Samba
- Добавление принтера в серверную часть сервера печати
- CUPS
- LPRng
- Включение службы spoolssd
- Включение поддержки сервера печати в Samba
- Совместное использование принтера
- Автоматический общий доступ ко всем принтерам, настроенным на сервере печати
- Отключение автоматического общего доступа к принтеру
- Совместное использование принтеров вручную
- Сервер печати Samba
- Установка
- Настройка
- Как подключить Windows Printer via SAMBA
- От ekzorchik
Samba print server
При настройке Samba в качестве сервера печати, клиенты вашей сети смогут отправлять задания на печать на хост Samba, используя протокол SMB. В примерах, приведенных в этой документации, используется бэкэнд raw-принтера. Эта конфигурация требует, чтобы задание на печать обрабатывалось драйвером на клиенте и, следовательно, могло обрабатываться принтером без дальнейшей обработки или фильтрации.
Поддерживаемые сервера печати
Samba поддерживает несколько серверов печати, таких как CUPS и LPRng . Полный список см. в параметре printing на man page smb.conf(5).
Для начала необходимо настроить локальную серверную часть на хосте Samba. Samba не может пересылать задания на печать на удаленный хост. Однако вы можете настроить локальный сервер печати для пересылки задания на удаленный сервер печати.
Подробнее о настройке серверной части см. Документацию сервера печати.
Поддержка бэкэндов CUPS или IPRINT в Samba
При использовании серверной части CUPS или IPRINT Samba должна быть собрана с включенной поддержкой CUPS. Для подтверждения введите:
# smbd -b | grep "HAVE_CUPS" HAVE_CUPS
Если вывод не отображается:
- Samba была собрана с использованием параметра —disable-cups.
- Сценарию Samba configure не удалось найти необходимые библиотеки для поддержки CUPS. Для получения дополнительной информации см. Зависимости пакетов, необходимые для сборки Samba.
Добавление принтера в серверную часть сервера печати
CUPS
Чтобы добавить принтер на сервер печати CUPS:
- Откройте веб-интерфейс администратора CUPS в своем браузере: http://localhost:631/admin
- Перейдите на вкладку Администрирование и нажмите Добавить принтер.
- Выберите тип подключения и введите соответствующий URL-адрес в очередь принтера или в очередь на удаленный сервер печати. Например:
- Принтеры на основе LPD: lpd://printer_name/queue
- Принтеры на основе IPP (Internet Printing Protocol): ipp://printer_name/ipp/port
- Принтеры на основе SMB (Server Message Block): smb://username:password@domain/windows_print_server_host_name/printer_name
Обратите внимание, что для пересылки задания на сервер печати под управлением Windows Vista или более поздней версии или Windows Server 2008 или более поздней версии требуется проверка подлинности.
- Введите имя для принтера. Это имя используется /etc/samba/smb.conf при совместном использовании принтера с помощью Samba.
- Выберите Raw поставщика и модель принтера.
- Сохраните настройки.
LPRng
Чтобы добавить принтер на сервер печати LPRng:
printer_name:sd=/var/spool/lpd/printer_name/:sh:mx=0:mc=0:rm=Printer_DNS_name_or_IP_address
Имя принтера используется в файле /etc/samba/smb.conf при совместном использовании принтера с помощью Samba.
Для получения дополнительной информации об используемых параметрах см. printcap(5) man page.
Чтобы создать каталог spool, введите:
Перезапустите службу LPRng.
Включение службы spoolssd
Samba spoolssd — это служба, которая интегрирована в службу smbd. Если вы настроили Samba в качестве сервера печати, вы можете дополнительно включить spoolssd для повышения производительности на серверах печати с большим количеством заданий или принтеров.
Без spoolssd Samba разветвляет smbd процесс или каждое задание на печать и инициализирует кэш printcap. В случае большого количества принтеров служба smbd может перестать отвечать на запросы в течение нескольких секунд при инициализации кэша. Служба spoolssd позволяет запускать предварительно раздвоенные процессы smbd, обрабатывая задания на печать без каких-либо задержек. Основной spoolssd smbd-процесс использует мало памяти, разветвляется и завершает дочерние процессы.
Чтобы включить службу spoolssd:
- Отредактируйте раздел [global] в файле /etc/samba/smb.conf:
- Добавьте следующие параметры:
rpc_server: spoolss = external rpc_daemon: spoolssd = fork
При желании вы можете установить следующие параметры:
Параметр Значение
по-умолчаниюОписание spoolssd: prefork_min_children 5 Минимальное количество дочерних процессов spoolssd: prefork_max_children 25 Максимальное количество дочерних процессов spoolssd: prefork_spawn_rate 5 Samba разветвляет это число новых дочерних процессов до значения, установленного в spoolssd:prefork_max_children, если установлено новое соединение spoolssd: prefork_max_allowed_clients 100 Количество клиентов, обслуживаемых дочерним процессом spoolssd: prefork_child_min_life 60 Минимальное время жизни дочернего процесса в секундах. 60 секунд это минимум. После перезапуска Samba автоматически запускает smbd-подпроцессы:
# ps axf . 30903 smbd 30912 \_ smbd 30913 \_ smbd 30914 \_ smbd 30915 \_ smbd .
Включение поддержки сервера печати в Samba
Чтобы включить поддержку сервера печати:
- Установите бэкэнд печати в параметре printing раздела [global] в файле /etc/samba/smb.conf.(CONFIGFILE) Например:
[printers] path = /var/spool/samba/ printable = yes
# mkdir -p /var/spool/samba/ # chmod 1777 /var/spool/samba/
# smbcontrol all reload-config
Совместное использование принтера
Автоматический общий доступ ко всем принтерам, настроенным на сервере печати
При использовании настроек по-умолчанию все принтеры, настроенные на сервере печати, автоматически открываются для общего доступа.
Отключение автоматического общего доступа к принтеру
Чтобы отключить автоматический общий доступ к принтеру:
# smbcontrol all reload-config
Совместное использование принтеров вручную
Чтобы вручную поделиться принтером:
- Убедитесь, что автоматический общий доступ к принтеру отключен. См. пункт выше.
- Добавьте общий ресурс для принтера в файл /etc/samba/smb.conf(CONFIGFILE):
[Samba_printer_name] path = /var/spool/samba/ printable = yes printer name = printer_name_in_the_back_end
Задайте на параметр printer name имя принтера, используемого в бэкэнде локального сервера печати.
# smbcontrol all reload-config
Сервер печати Samba
Другое распространенное использование Samba — настройка разделения доступа к установленным принтерам, как локальным, так и сетевым, на Ubuntu сервере. Также как и в разделе Файловый сервер Samba здесь будет рассмотрена настройка Samba, позволяющая любому клиенту в локальной сети получить доступ к установленным принтерам без запроса имени пользователя и пароля.
Для более безопасной конфигурации смотрите раздел Защита серверов Samba.
Установка
Перед установкой и настройкой Samba лучше всего иметь уже работающую установку CUPS. Смотрите раздел Сервер печати CUPS для уточнения деталей.
Для установки пакета samba введите из терминала:
sudo apt-get install samba
Настройка
После установки samba отредактируйте /etc/samba/smb.conf. Измените атрибут workgroup на соответствующий вашей сети и замените security на user:
workgroup = EXAMPLE . security = user
В секции [printers] измените опцию guest ok на yes:
browsable = yes guest ok = yes
После изменений в smb.conf перезагрузите Samba:
sudo restart smbd sudo restart nmbd
Конфигурация Samba по умолчанию автоматически разделяет любые установленные принтеры. Просто установите принтер локально на ваших клиентах Windows.
Как подключить Windows Printer via SAMBA
Есть USB принтер HP LaserJet P2055d который подключен через USB шнур к компьютеру с осью Windows 7 Pro x64 Russian и он расшарен. Так вот нужно из рабочей станции Ubuntu Trusty подключить данный принтер дабы не перетыкать USB от компьютера с Windows к Ubuntu.
У меня рабочее окружение: Gnome Classic on Ubuntu Trusty
Запускаю: Приложения — Системные утилиты — Параметры системы — (Оборудование) Принтеры — Добавить — разворачиваю «Сетевой принтер» и в выводе почему-то отсутствует строка мастера: Windows Printer via SAMBA которая должна идти после «Узел LPD/LPR или принтер».
Чтобы это дело поправить нужно:
aollo@system:~$ sudo apt-get install python-smbc smbclient -y
aollo@system:~$ sudo service cups restart
и снова запустив мастер по управлению принтера вижу, что строка/меню теперь доступно для настройки:
Нажимаю на «Принтер Windows через SAMBA» и вписываю значения на подключение к расшаренному принтеру Windows
- Принтер SMB: smb://10.7.8.178/ITUSB
- Аутентификация: Запросить у пользователя, если требуется проверка подлинности
После нажимаю «Проверить» и ввожу данные для авторизации на доменной станции где был расшарен принтер HP LaserJet P2055, поля авторизации следующие:
и нажимаю OK, сразу же последовал ответ: «Общий принтер проверен. Этот общий принтер доступен.»
Нажимаю Ok — Вперед, после идет поиска драйверов, на выбор дается три варианта:
- Выберите принтер из базы данных
- Предоставить PPD-файл
- Поиск драйвера принтера для загрузки
Выберите драйвер: LaserJet p2055d
и нажимаю Вперед, Вперед, затем именую принтер:
и нажимаю «Применить» — «Печать пробной страницы», но печать почему-то не пошла, открыв снова мастер настройки принтеров в системе: «Принтеры» и на добавленном принтере щелкнув левой кнопкой мыши для перехода в меню «Просмотр очереди печати» обнаружил, что «Состояние» со значением «Отложено до аутентификации»
Щелкаю по данному состоянию посредством правой кнопки мыши и нахожу пункт «Авторизовать» и нажимаю на него, передо мной предстает окно аутентификации уже в текущей системе Ubuntu Trusty, указываю:
- Имя пользователя: aollo
- Пароль:
- Запомнить пароль: отмечаю галочкой
и нажимаю OK
Не помогло, все равно пишет «Отложено до аутентификации».
aollo@system:~$ sudo nano /etc/cups/printers.conf
aollo@system:~$ sudo service cups restart
И это тоже не сработало, в итоге заново настроил принтер, но
- П ринтер SMB: smb://.local/10.7.8.178/itusb
- Марка и модель: HP LaserJet p2055
после авторизовался и отправляю на печать печать идет, а содержимое файла /etc/cups/printers.conf вернулось к исходному состоянию без правок выше.
Но вот, что да тестовая страница отправляется, но когда мне потребовалось отправить на печать документ у меня снова окно «Проверки доступа», ввел идентификационные данные от моей системы Ubuntu Trusty и документ успешно был распечатан.Также спустя пару часов, печать пошла и без какого либо запроса ввода логина и пароля для проверки подлинности.
Делаю вывод, что разобрал шаги по добавлению расшаренного принтера с Windows системы которая к тому же имеет место быть в домене. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.
От ekzorchik
Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.