====== 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.specNo i oczywiście instalujemy cups-windows-6.0-1.noarch.rpm :rpm -i cups-windows-6.0-1.noarch.rpmNo i teraz dowolną drogą z istniejącej legalnej instalacji windows wyciągamy pliki ''ps5ui.dll'', ''pscript.ntf'', ''pscript5.dl''l 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 : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFTeraz 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...