Samba jako serwer wydruku dla Windows

Wstęp

Ten przewodnik jest oparty na konfiguracji samba + cups. Najpierw należy więc zaznajomić się z dokumentacją : http://pl.docs.pld-linux.org/uslugi_samba.html http://pl.docs.pld-linux.org/uslugi_cups.html Ten artykuł w zamyśle najbardziej dotyczy umieszczania sterowników dla windows na serwerze samba, tak, aby maszyny na Windows mogły samodzielnie instalować dla siebie sterowniki dotyczące danej drukarki.

Oprogramowanie

Opis dotyczy konfiguracji Windows NT/XP oraz samba 3.0 i wyższej, w której hasła są przechowywane w TrivialDataBase, czyli de facto takiej, jaka jest w PLD TH. Należy doprowadzić do sytuacji, gdy drukarki są widoczne przez stacje robocze Windows, natomiast nie moga znaleźć sterowników dla znalezionej drukarki. W tym pomocne mogą być w/w artykuły oraz google… ;) Instalujemy poldkiem pakiet cups-clients :

poldek:/all-avail> install cups-clients 

Budujemy ze speca pakiet cups-windows:

$ builder cups-windows.spec

No i oczywiście instalujemy cups-windows-6.0-1.noarch.rpm :

rpm -i cups-windows-6.0-1.noarch.rpm

No i teraz dowolną drogą z istniejącej legalnej instalacji windows wyciągamy pliki ps5ui.dll, pscript.ntf, pscript5.dll oraz pscript.hlp (W WindowsXP - w katalogu C:\WINDOWS\Driver Cache\i386\ w archiwach sp2.cab oraz driver.cab)

Pliki te następnie kopiujemy do /usr/share/cups/drivers na naszym serwerze samby.

Konfiguracja

Tworzymy zasób w sambie - w pliku /etc/samba/smb.conf :

[print$]
   comment = Printer Drivers
   path = /usr/share/cups/drivers
   browseable = yes
   guest ok = no
   read only = yes
   write list = root

W PLD root jest ze względów bezpieczeństwa wykluczony z użytkowników samby :

# kto nie moze sie logowac do samby
	invalid users = root

Więc na czas konfiguracji drukarek musimy zakomentować ten wpis średnikiem. Jeśli jeszcze nie mamy konta root w sambie to je tworzymy :

# pdbedit -a root -t
*NaszeHaslo*
*NaszeHaslo*
Unix username:        root
NT username:
Account Flags:        [U          ]
User SID:             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Primary Group SID:    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Full Name:            root
Home Directory:       \\localhost\root
HomeDir Drive:
Logon Script:
Profile Path:         \\localhost\root\profile
Domain:               DOMENANASZA
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    XXXXXXXXXXXXXXXXXXXXXX
Password can change:  XXXXXXXXXXXXXXXXXXXXXX
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Teraz trzeba zrestartować sambę :

# service smb restart
Zatrzymywanie usługi smbd......................................... [ ZROBIONE ]
Zatrzymywanie usługi nmbd......................................... [ ZROBIONE ]
Uruchamianie usługi smbd.......................................... [ ZROBIONE ]
Uruchamianie usługi nmbd.......................................... [ ZROBIONE ]

Kolej na nasze magiczne polecenie konfigurujące maskowanie drukarek przez CUPS jako Postscript :

# cupsaddsmb -v -a
Wymagane jest hasło dla root, aby uzyskać dostęp do localhost przez Sambę:
Uruchamiam polecenie: smbclient //localhost/print$ -N -A /tmp/47c6827d0ecbe -c "mkdir W32X86;put /tmp/47c6827424663 W32X86/HP_LaserJet_5L.ppd;put /usr/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put /usr/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put /usr/share/cups/drivers/pscript.ntf W32X86/pscript.ntf;put /usr/share/cups/drivers/pscript5.dll W32X86/pscript5.dll"
Domain=[DOMENANASZA] OS=[Unix] Server=[Samba 3.0.28]
putting file /tmp/47c6827424663 as \W32X86/HP_LaserJet_5L.ppd (20773.4 kb/s) (average 20775.4 kb/s)
putting file /usr/share/cups/drivers/ps5ui.dll as \W32X86/ps5ui.dll (10916.6 kb/s) (average 11675.0 kb/s)
putting file /usr/share/cups/drivers/pscript.hlp as \W32X86/pscript.hlp (4453.4 kb/s) (average 9394.5 kb/s)
putting file /usr/share/cups/drivers/pscript.ntf as \W32X86/pscript.ntf (21501.8 kb/s) (average 17319.3 kb/s)
putting file /usr/share/cups/drivers/pscript5.dll as \W32X86/pscript5.dll (20613.5 kb/s) (average 18260.6 kb/s)

Uruchamiam polecenie: smbclient //localhost/print$ -N -A /tmp/47c6827d0ecbe -c "put /usr/share/cups/drivers/cups6.ini W32X86/cups6.ini;put /usr/share/cups/drivers/cupsps6.dll W32X86/cupsps6.dll;put /usr/share/cups/drivers/cupsui6.dll W32X86/cupsui6.dll"
Domain=[DOMENANASZA] OS=[Unix] Server=[Samba 3.0.28]
putting file /usr/share/cups/drivers/cups6.ini as \W32X86/cups6.ini (7.8 kb/s) (average 7.8 kb/s)
putting file /usr/share/cups/drivers/cupsps6.dll as \W32X86/cupsps6.dll (12272.2 kb/s) (average 1234.4 kb/s)
putting file /usr/share/cups/drivers/cupsui6.dll as \W32X86/cupsui6.dll (13350.3 kb/s) (average 2335.9 kb/s)

Uruchamiam polecenie: rpcclient localhost -N -A /tmp/47c6827d0ecbe -c "adddriver "Windows NT x86" "HP_LaserJet_5L:pscript5.dll:HP_LaserJet_5L.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript5.dll,HP_LaserJet_5L.ppd,ps5ui.dll,pscript.hlp,pscript.ntf,cups6.ini,cupsps6.dll,cupsui6.dll""
Printer Driver HP_LaserJet_5L successfully installed.

Uruchamiam polecenie: rpcclient localhost -N -A /tmp/47c6827d0ecbe -c "setdriver HP_LaserJet_5L HP_LaserJet_5L"
Succesfully set HP_LaserJet_5L to driver HP_LaserJet_5L.

Tutaj pokazałem prawidłową reakcję dla jednej drukarki, nazwanej w CUPS HP_LaserJet_5L. Reakcja taka powinna się powtórzyć dla każdej zainstalowanej drukarki, ewentualnie może wystąpić komunikat o niemożliwości utworzenia istniejących plików/katalogów, ale to nie powinno nas martwić.

Po tym poleceniu sprzątamy pliki /tmp/47* zawierające hasła, wywalamy średnik sprzed invalid users = root oraz ponownie restartujemy sambę….

I to by było na tyle, miłej pracy…

pl/przewodniki/samba-jako-serwer-wydruku-dla-windows.txt · ostatnio zmienione: 2008/10/24 10:01 przez grizz
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light