Linux jako serwer druku

Za pomocą serwera Samba nie tylko udostępnisz pliki klientom Windows. Bez większego problemu postawisz też centralny serwer druku z ochroną dostępu i funkcjami statystycznymi.

Za pomocą serwera Samba nie tylko udostępnisz pliki klientom Windows. Bez większego problemu postawisz też centralny serwer druku z ochroną dostępu i funkcjami statystycznymi.

Dwa najważniejsze zadania serwera sieciowego to centralne składowanie danych oraz scentralizowane udostępnianie usług druku. Korzyści są oczywiste: drukarki sieciowe to oszczędność kosztów, gdyż nie każde stanowisko pracy musi być wyposażone w oddzielne urządzenie. W warunkach domowych może ważniejsza jest wygoda - nie trzeba za każdym razem przerywać pracy, gdy tylko ktoś inny chce coś wydrukować.

Samba nie tyle udostępnia usługi druku w sieci, co raczej odgrywa rolę pośrednika między klientem a systemem druku, pracującym lokalnie na komputerze z systemem Linux. Jeszcze kilka lat temu działało równolegle wiele różnych systemów zapewniających dostęp z komputera linuksowego do lokalnie podłączonej drukarki. Od pewnego czasu faktycznym standardem w większości dystrybucji jest Common Unix Printing System (CUPS, http://www.cups.org ). Nowsze wersje Samby, w tym nasza 3.0.2, wyposażone są w bezpośredni interfejs do tego systemu. Zanim Samba udostępni drukarkę użytkownikom w sieci, trzeba ją więc zainstalować za pośrednictwem CUPS. W SuSE Linux 9.0 można to zrobić wygodnie za pomocą modułu druku YaST2.

1. Instalacja drukarki za pomocą GUI

CUPS obsługuje lokalne drukarki z portem USB lub równoległym, a także drukarki sieciowe ze zintegrowanym serwerem druku.

CUPS obsługuje lokalne drukarki z portem USB lub równoległym, a także drukarki sieciowe ze zintegrowanym serwerem druku.

Moduł druku YaST2 umożliwia konfigurację drukarek lokalnych, dołączonych przez port równoległy albo USB, jak również zdalnych drukarek sieciowych. Ponieważ Samba udostępnia użytkownikom sieci LAN wszystkie drukarki znane CUPS, jest to również dobra metoda zapewnienia dostępu do drukarki sieciowej starszym komputerom, które np. nie mają odpowiednich portów. Większość urządzeń podłączonych do portu USB SUSE Linux 9.0 rozpoznaje automatycznie, natomiast w przypadku drukarek z portem równoległym trzeba na ogół samodzielnie wybrać właściwy sterownik. To samo dotyczy drukarek ze zintegrowanym serwerem druku, pracujących bezpośrednio w sieci LAN. Nadając drukarce nazwę, zwróć uwagę, żeby była jednoznaczna, ale niezbyt długa. Szczególnie w przypadku klientów z systemem Windows mogą wystąpić problemy z rozpoznawaniem drukarek o nazwach dłuższych niż dwanaście znaków. Wynika to z ograniczeń wywodzących się jeszcze z systemu DOS, w którym zasoby były identyfikowane za pomocą ośmiu znaków nazwy pliku oraz kropki i maksymalnie trzech znaków na rozszerzenie nazwy - czyli w sumie wspomnianych dwunastu znaków.

2. Ręczna instalacja drukarki

Kilka poleceń wystarczy, aby serwer Samba zaczął udostępniać w sieci wszystkie znane mu drukarki.

Kilka poleceń wystarczy, aby serwer Samba zaczął udostępniać w sieci wszystkie znane mu drukarki.

Jeżeli twój komputer z systemem operacyjnym Linux musi pracować bez powłoki graficznej, instalację drukarki można przeprowadzić ręcznie. Kluczową rolę odgrywa w tym przypadku program lpadmin. Aby zainstalować na przykład drukarkę HP ze złączem USB, wystarczy wydać jako użytkownik root następujące polecenia:

lpadmin -p dj940c -E -P /usr/share/cups/model/HP/DeskJet_940C-cdj970.ppd.gz

lpadmin -p dj940 -v usb://dev/usb/lp0

W podobny sposób zainstalujesz na porcie równoległym np. drukarkę laserową Xerox:

lpadmin -p x4510 -E -P /usr/share/cups/model/Xerox/DokuPrint_4508-hpijs.pd.gz

lpadmin -p x4510 -v parallel:/dev/lp0

Dla drukarki sieciowej Kyocera FS-3700+ przykładowe polecenie wyglądałoby następująco:

lpadmin -p k3700 -E -P /usr/share/cups/model/Kyocera/FS-3700 plus-PostScript.ppd.gz

lpadmin -p k3700 -v socket://192.168.27.222:9100

Składnia tego polecenia jest całkiem prosta: zainstaluj drukarkę o nazwie xyz (-p) i aktywuj ją (-E), używając sterownika abc (-p). Druga część definiuje port (-v), w którym drukarka jest dostępna. Oba polecenia można umieścić w jednym wierszu; tu zostały rozdzielone jedynie dla przejrzystości.

W katalogu /usr/share/cups/model znajdują się obecnie dostępne sterowniki do wielu drukarek. W niektórych przypadkach może to być kilka sterowników do jednego modelu. Moduł YaST2 automatycznie wybiera optymalny wariant, ale w przypadku ręcznej instalacji trzeba zdać się na wyczucie, intuicję i ewentualne próby.

3. Przygotowanie druku w sieci

Klient widzi wprawdzie drukarkę, lecz nie może znaleźć sterowników.

Klient widzi wprawdzie drukarkę, lecz nie może znaleźć sterowników.

Zanim ostatecznie udostępnisz drukarki w sieci, musisz jeszcze poczynić kilka przygotowań. Najważniejsze z nich to utworzenie katalogu spool, w którym użytkownicy muszą mieć co najmniej uprawnienia do zapisu:

mkdir /var/spool/samba

chmod 777 /var/spool/samba

Kilka zmian trzeba wprowadzić również w pliku konfiguracyjnym /etc/samba/smb.conf. Najpierw w sekcji globalnej należy ustawić CUPS jako system druku, a następnie umożliwić Sambie eksport wszystkich drukarek zdefiniowanych w CUPS. Służy do tego specjalna sekcja o nazwie [printers]:

[global]

printing = cups

printcap name = cups

[printers]

path = /var/spool/samba

browseable = no

guest ok = yes

writeable = no

printable = yes

printer admin = root,@ntadmin

Sterownik postscriptowy Adobe zawiera pliki do Windows 9x/Me oraz 32-bitowych systemów NT, 2000 i XP.

Sterownik postscriptowy Adobe zawiera pliki do Windows 9x/Me oraz 32-bitowych systemów NT, 2000 i XP.

Ustawienia te powodują, że Samba automatycznie udostępnia wszystkie drukarki zdefiniowane przez CUPS jako oddzielne drukarki sieciowe. Znajdujące się pozornie w niewłaściwym miejscu polecenie browseable = no sprawia, że globalny zasób [printers] nie jest widoczny z poziomu klientów. Wiersz writeable = no zapobiega bezładnemu wpisywaniu plików do katalogu spool przez systemy klienckie, natomiast printable = yes dba o to, żeby zadania druku mogły być zapisywane w tym katalogu.

Aby się upewnić, że Samba rozpozna te zmiany, musisz ponownie uruchomić usługę poleceniem /etc/init.d/smb restart. Za pomocą dowolnego komputera-klienta można szybko sprawdzić, czy cała akcja się powiodła. Jeżeli tak, drukarki powinny być widoczne w zestawieniu zasobów udostępnianych przez serwer linuksowy.


Zobacz również