wiki:articles:print_server - Wiki на Slackware.su
Print Server (Сервер печати)


Наш сервер печати - 192.168.10.44
NetBios имя - prn-server

Подразумевается, что:

  1. samba (собранная с поддержкой ADS) и apache установлены.
  2. компьютер(сервер) введен в домен MYDOMAIN (net ads join).

Для организации сервера печати на SlackWare c возможностью печатать и администрировать с Windows машин (при помощи галочек), отредактируем файл /etc/cups/cupsd.conf

 LogLevel warn
 SystemGroup sys root
 # Allow remote access
 Port 631
 Listen /var/run/cups/cups.sock
 Browsing On
 BrowseOrder allow,deny
 BrowseAllow all
 BrowseRemoteProtocols cups ldap
 BrowseAddress @LOCAL
 BrowseLocalProtocols cups ldap
 DefaultAuthType Basic
 <Location />
   # Allow remote administration...
   Order allow,deny
   Allow all
 </Location>
 <Location /admin>
   # Allow remote administration...
   Order allow,deny
   Allow all
 </Location>
 <Location /admin/conf>
   AuthType Default
   Require user @SYSTEM
   # Allow remote access to the configuration files...
   Order allow,deny
   Allow all
 </Location>
 <Policy default>
   <Limit Create-Job Print-Job Print-URI Validate-Job>
     Order deny,allow
   </Limit>
   <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 CUPS-Get-Document>
     Require user @OWNER @SYSTEM
     Order deny,allow
   </Limit> 
   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
     AuthType Default
     Require user @SYSTEM
     Order deny,allow
   </Limit>
   <Limit Pause-Printer Resume-Printer 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 Sch edule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
     AuthType Default 
     Require user @SYSTEM
     Order deny,allow
   </Limit>
   <Limit CUPS-Authenticate-Job>
     Require user @OWNER @SYSTEM
     Order deny,allow
   </Limit>
   <Limit All>
     Order deny,allow
   </Limit>
 </Policy>
 <Policy authenticated>
   <Limit Create-Job Print-Job Print-URI Validate-Job>
     AuthType Default
     Order deny,allow
   </Limit>
   <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 CUPS-Get-Document>
     AuthType Default                                                                                                                                                                                                                         
     Require user @OWNER @SYSTEM
     Order deny,allow
   </Limit>
   <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
     AuthType Default
     Require user @SYSTEM
     Order deny,allow
   </Limit>
   <Limit Pause-Printer Resume-Printer 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-Accept-Jobs CUPS-Reject-Jobs> 
     AuthType Default
     Require user @SYSTEM 
     Order deny,allow
   </Limit>
   <Limit Cancel-Job CUPS-Authenticate-Job>
     AuthType Default
     Require user @OWNER @SYSTEM 
     Order deny,allow
   </Limit>
   <Limit All>
     Order deny,allow 
   </Limit>
 </Policy>
 BrowseWebIF Yes

Запускаем CUPS не забыв дать права на запуск файлу /etc/rc.d/rc.cupsd

# /etc/rc.d/rc.cupsd start

На любой машине с браузером заходим на http://192.168.10.44:631 или https://192.168.10.44:631/admin, потому-что, наверняка, вас сюда перешлют, в дальнейшем :)
и начинаем добавлять принтеры (необходимо знать root'овый пароль):
Переходим на вкладку «Администрирование»и жмем на кнопку «Найти новый принтер».
slackware.su_forum_files_cups_cups_1.jpg

Иногда, не находит (у меня не нашел, почему-то), тогда жмем на «Добавить принтер» и выбираем нужный нам принтер из списка. slackware.su_forum_files_cups_cups_2.jpg

Для примера я выбрал HP 2015, куда и что вбивать, думаю и так понятно. Нажимаем «Продолжить» slackware.su_forum_files_cups_cups_3.jpg

Выбираем Модель принтера и драйвер из списка, если есть драйвер в формате PPD, можно указать его.Если принтера нет в списке, выбираем близкий к нему по смыслу.
Чревато тем, что линукс клиенты, возможно печатать не смогут (надо искать драйвера в интернете «PPD»), но если есть драйвера под Windows, то при дальнейшей настройке, Windows клиенты печатать будут.
Нажимаем «Добавить принтер»
slackware.su_forum_files_cups_cups_4.jpg

Тут можно оставить как есть.
Жмем «Сохранить параметры по умолчанию».
slackware.su_forum_files_cups_cups_5.jpg

в итоге, получаем картинку с описанием принтера и возможностью его администрировать: slackware.su_forum_files_cups_cups_6.jpg

Таким способом нужно установить ВСЕ ПРИНТЕРЫ которым планируется давать доступ используя наш сервер печати.
Для примера я поставил три принтера
slackware.su_forum_files_cups_cups_7.jpg

Обратите внимание, у принтера Brother MFC-7840W Printer установлены не родные драйвера!
Вот его и попробуем установить на Windows XP.

Но сначала настроим /etc/samba/smb.conf и приведем его к следующему виду (каждый поставит свой домен, нужные IP, интерфейсы и кодировки):

 [global]                                                                                                                                                                                                                                     
 interfaces = eth0 lo
 hosts allow = 192.168.10. 127.
 netbios name = prn-server
 workgroup = MYDOMAIN
 # ваш DC
 password server = 192.168.10.123
 server string = Print Server
 security = ADS
 realm = MYDOMAIN
 allow trusted domains = yes
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 os level = 0
 preferred master = No
 local master = No
 domain master = No
 dns proxy = No
 ldap ssl = no
 strict locking = No
 time server = no
 auth methods = winbind
 encrypt passwords = yes
 winbind use default domain = yes
 idmap uid = 10000-20000
 idmap gid = 10000-20000
 winbind enum users = Yes
 winbind enum groups = Yes
 log file = /var/log/samba/log.%m
 max log size = 1024
 log level = 1
 display charset = utf8
 unix charset = utf8
 dos charset = cp866
 nt acl support = yes
 
 # тут про печать
 load printers = yes 
 printing = cups
 printcap name = cups
 cups options = raw
 show add printer wizard = yes
 disable spoolss = no
 
 [printers]
 comment = All Printers
 path = /var/spool/samba
 use client driver = no
 browseable = no
 public = yes
 guest ok = yes
 printable = yes
 default devmode = yes
 
 [print$]
 comment = drivers for printers
 path = /etc/samba/drivers
 browseable = yes
 create mask = 1775
 directory mask = 1775
 guest ok = no
 read only = yes
 write list = root, "@MYDOMAIN\администраторы домена"
 read list="@MYDOMAIN\пользователи домена"

Далее, создаем необходимые нам каталоги и раздаем соответствующие права на них:

 # mkdir -p /etc/samba/drivers 
 # сd /etc/samba
 # mkdir -p drivers/{W32ALPHA,W32MIPS.W32PPC}
 # mkdir -p drivers/{W32X86/{2,3},WIN40,COLOR,IA64,x64}
 # chown -R root:"MYDOMAIN\\администраторы домена" /etc/samba/drivers
 # chmod -R 0775 /etc/samba/drivers
 # mkdir -p /var/spool/samba
 # chown -R root:"MYDOMAIN\\пользователи домена" /var/spool/samba
 # chmod -R 0770 /var/spool/samba

Перезапускаем SAMBA

 # /etc/rc.d/rc.samba restar

Теперь установим Windows драйвера принтеров на наш сервер печати.
Для этого, зарегистрируемся на рабочей станции Windows в качестве администратора домена .
“Пуск” → “Выполнить” → вводим “\\192.168.10.44”
Входим в “Принтеры и факсы”. Мы увидем принтеры, доступные через систему печати Linux (те те, что мы ставили через CUPS).
Будем устанавливать драйвера для принтера Brother MFC-7840W Printer.
Кликаем правой кнопкой мыши на этом принтере и выбираем пункт «Свойства».
slackware.su_forum_files_cups_cups_44_1.jpg

На вопрос об установке драйвера, говорим «Нет»
slackware.su_forum_files_cups_cups_44_2.jpg

Переходим на вкладку «Дополнительно» и нажимаем на кнопку «Сменить…»
slackware.su_forum_files_cups_cups_44_3.jpg

В появившемся мастере установки драйверов нажимаем на «Далее > »
slackware.su_forum_files_cups_cups_44_4.jpg

В списке, думаю, драйверов нет, но они есть на диске идущем вместе с принтером (или где-нибудь валяются у вас в сети ;) ).Вот с него и будем ставить драйвера.
Поэтому жмём на «Установить с диска» и указываем расположение драйвера.
slackware.su_forum_files_cups_cups_44_5.jpg

Нашли! Выбираем нужный (тут он у нас один) и жмём «Далее »>
slackware.su_forum_files_cups_cups_44_6.jpg

И видим, что процесс пошёл!
Обращаем внимание, что файлы копируются на наш сервер печати ( \\192.168.10.44\print$\W32X86 )
slackware.su_forum_files_cups_cups_44_8.jpg

Всё, процесс закончен, жмём «Готово».
slackware.su_forum_files_cups_cups_44_7.jpg

Можем настроить нужные нам свойства и нажимаем «Ок».
slackware.su_forum_files_cups_cups_44_9.jpg

Ну, и сразу же подключим. Для этого, правой кнопкой мыши на ярлыке принтера, выбираем пункт «Подключить«.
slackware.su_forum_files_cups_cups_44_10.jpg

И…., вуаля! :)
slackware.su_forum_files_cups_cups_44_11.jpg

Теперь для установки драйвера на других рабочих станциях Windows, достаточно будет просто щелкнуть на ярлыке принтера и драйвер будет установлен без запроса на разрешение выполнения установки драйвера.
Как побочный эффект процесса установки драйвера на сервер, драйвер одновременно будет установлен и на рабочей станции с которой шла установка.

Ссылался на....


http://gazette.linux.ru.net/lg90/ward.html
http://www.opennet.ru/base/net/samba_print_2.txt.html

«ЗАПУСКАЕМ LINUX»
Пятое издание,
Maттиac Калле Далхаимер и МэттУэлш
Санкт-Петербург―Москва 2008 г. Глава 15

Обсуждаем на форуме

Печать/экспорт
QR Code
QR Code wiki:articles:print_server (generated for current page)