Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > c271e9e583b3924e0de744696831c936 > files > 29

howto-text-pl-2006-5mdv2010.0.noarch.rpm

  SMB-Howto
  Autor:David Wood, dwood@plugged.net.au v1.0, 10 August 1996
  WWeerrssjjaa ppoollsskkiieeaa:: BBaarrttoosszz MMaarruusszzeewwsskkii
  BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll
  v1.12, 26 Lipca 1997

  Jest to dokument z serii HOWTO (Jak To Zrobiæ). Opisuje on jak u¿ywaæ
  Session Message Protocol, zwanego te¿ NetBIOS lub LanManager z Linux-
  em.  Dokument ten zosta³ napisany w standardzie ISO-8859-2.  Orygina³
  mo¿na znale¼æ pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sun­
  site/docs/HOWTO.
  ______________________________________________________________________

  Table of Contents:

  1.      Wprowadzenie.

  1.1.    Dalsze informacje.

  2.      Instalacja.

  3.      Uruchamianie demonów.

  4.      Ogólna konfiguracja. (/etc/smb.conf)

  5.      Udostêpnianie dysku Linux-owego komputerom z Windows.

  6.      Udostêpnianie dysku spod Windows maszynom z Linux-em.

  7.      Udostêpnianie drukarki Linux-owej komputerom z Windows.

  8.      Udostêpnianie drukarki spod Windows komputerom z Linux-em.

  9.      Prawa autorskie i Zakoñczenie.

  9.1.    Prawa autorskie.

  9.2.    Podziêkowania.

  9.3.    Od t³umacza.
  ______________________________________________________________________

  11..  WWpprroowwaaddzzeenniiee..

  Jest to dokument z serii HOWTO (Jak To Zrobiæ). Opisuje on jak u¿ywaæ
  z Linuxem Session Message Protocol, zwanego te¿ NetBIOS lub
  LanManager.

  Dokument ten jest prowadzony przez Davida Wooda dwood@plugged.net.au.
  Wszelkie dodatki, modyfikacje lub poprawki mog± byæ przes³ane do mnie,
  aby je pó¼niej umie¶ciæ w nastêpnej wersji.

  Protokó³ SMB u¿ywany jest przez Microsoft Windows 3.11, NT i 95 aby
  wspó³dzieliæ zasoby dyskowe i drukarki. Maszyny Unix-owe (w tym tak¿e
  Linux) mog± korzystaæ z tych zasobów u¿ywaj±c narzêdzi stworzonych
  przez Andrew Tridgella.

  S± cztery rzeczy, które mo¿na zrobiæ Samb±:

  1. Udostêpniaæ dysk Linux-owy dla komputerów z Windows.

  2. Udostêpniaæ dysk Windows-owy dla komputerów z Linux-em.

  3. Udostêpniaæ drukarkê pod Linux-em dla Windows.

  4. Udostêpniaæ drukarkê pod Windows dla Linux-a.

  Wszystko to zosta³o opisane w tym dokumencie.

  Disclaimer. Procedury i skrypty albo dzia³a³y u autora, albo zosta³y
  opisane jako dzia³aj±ce przez tych, którzy je napisali.  Ró¿ne
  konfiguracje mog± nie dzia³aæ z podanymi tutaj informacjami.  Je¶li
  odkryjesz tak± sytuacjê mo¿esz napisaæ do autora list z sugesti± na
  ulepszenie tego dokumentu, ale autor nic nie gwarantuje. A czego siê
  spodziewa³e¶ ? W koñcu autor jest tyklo konsultantem.

  11..11..  DDaallsszzee iinnffoorrmmaaccjjee..

  Dokument ten jest prób± opisania jak skonfigurowaæ na Linux-ie
  podstawowe serwisy SMB zwi±zane z plikami i drukarkami. Samba jest
  bardzo z³o¿onym i kompletnym pakietem. Nie ma sensu, ¿eby kopiowaæ
  tutaj wszystko to co jest zawarte w dokumentacji dla tego pakietu.

  Dalszych informacji mo¿esz szukaæ w:

  ·  Dokumentacji do Samby, która jest czê¶ci± dystrybucji.  Dystrybucja
     jest dostêpna pod adresem: ftp.icm.edu.pl

  ·  HOWTO dotycz±cym drukowania (Printing HOWTO)

  ·  oraz w mini-HOWTO Print2Win.

  22..  IInnssttaallaaccjjaa..

  Naj¶wie¿sze ¼ród³a Samby dostêpne s± pod adresem ftp.icm.edu.pl w
  katalogu /pub/samba.

  Je¶li instalowa³e¶ dystrybucjê Red Hat mog³e¶ wybraæ instalacjê Samby
  jako jedn± z opcji. Niektóre inne dystrybycje te¿ oferuj± binaria
  Samby.

  Nastêpuj±ce demony s± wymagane do pracy z Samb±. Zwykle znajduj± siê
  one w katalogu /usr/sbin i s± uruchamiane w momencie startu systemu
  albo przez demon inetd. Przyk³adowe skrypt znajduj± siê w sekcji
  ``Uruchamianie    demonów.''

  ______________________________________________________________________
        smbd (Demon SMB) i nmbd (¦wiadczy us³ugi nameservera NetBIOS-u)
  ______________________________________________________________________

  Zwykle w systemie instalowane s± nastêpuj±ce binaraia w katalogu
  /usr/bin:

  ______________________________________________________________________
     smbclient (Klient dla maszyn Unix-owych), smbprint (skrypt do
     drukowania na drukarce przy³±czonej do hosta SMB), smbprint.sysv
     (To samo co wcze¶niej, ale dla systemu UNIX SVR4), smbstatus
     (Wy¶wietla bie¿±ce po³±czenia SMB na lokalnym ho¶cie), smbrun
     (G³ówny skrypt do uruchamiania aplikacji na ho¶cie SMB)
  ______________________________________________________________________

  Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print", który
  jest po¿ytecznym dokoñczeniem skryptu smbprint.

  Pakiet Samba jest prosty w instalacji. ¦ci±gnij go z podanego
  wcze¶niej miejsca i przeczytaj plik README znajduj±cy siê w
  dystrybucji. Jest jeszcze plik docs/INSTALL.txt, który podaje krok po
  kroku co nale¿y zrobiæ, aby zainstalowaæ Sambê.

  Postêpuj±c wraz z instalacj±, umie¶æ demony w /usr/sbin i binaria w
  /usr/bin. Zainstaluj strony do podrêcznika systemowego "man" w
  /usr/local/man.

  Kiedy bêdziesz instalowa³ pakiet Samba, bêdziesz musia³ podaæ miejsce,
  gdzie ma siê znajdowaæ plik konfiguracyjny smb.conf.  Z regu³y jest to
  katalog /etc, ale mo¿esz go umie¶ciæ, gdzie ci siê podoba. Dla
  dalszych instrukcji za³o¿ymy, ¿e plik konfiguracyjny umie¶ci³e¶ w
  /etc, plik loguj±cy to /var/log/samba-log.%m i katalog blokuj±cy to
  /var/lock/samba.

  Zainstaluj plik konfiguracyjny smb.conf. Przejd¼ do katalogu, gdzie
  zosta³a skompilowana Samba. Zajrzyj do katalogu examples/simple i
  przeczytaj plik README. Skopiuj znaleziony tam plik smb.conf do /etc.
  OOSSTTRROO¯¯NNIIEE !!!!!!  Je¶li masz dystrybucjê Linux-a, która mia³a Sambê i
  zainstalowa³e¶ j± to pewnie masz ju¿ plik smb.conf w katalogu /etc i
  lepiej zacznij od tego pliku.

  Je¶li nie chcesz umieszczaæ pliku konfiguracyjnego w /etc, to umie¶æ
  go tam, gdzie chcesz i zrób symboliczne do³±czenie:

  ______________________________________________________________________
       ln -s /gdzie/jest/smb.conf /etc/smb.conf
  ______________________________________________________________________

  33..  UUrruucchhaammiiaanniiee ddeemmoonnóóww..

  Dwoma demonami SMB s±: /usr/sbin/smbd i /usr/sbin/nmbd.  Mo¿esz je
  uruchomiæ przez demona inetd lub jako osobne procesy. Je¶li
  konfigurujesz na sta³e serwer plikowy, to powinny one byæ uruchamiane
  przez inetd po to, ¿eby je ponownie uruchomiæ je¶li z jakiego¶ powodu
  przestan± dzia³aæ. Je¶li chcesz korzystaæ z Samby tylko czasami, to
  mo¿esz je uruchomiæ z którego¶ ze skryptów startowych w katalogu
  /etc/rc.d albo po prostu od rêki wtedy kiedy je potrzebujesz.

  Aby uruchomiæ demony przez inetd umie¶æ nastêpuj±ce linie w pliku
  /etc/inetd.conf:

  ______________________________________________________________________
   Serwis NetBIOS dla Samby
        # netbios-ssn
        stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait
        root /usr/sbin/nmbd nmbd
  ______________________________________________________________________

  Nastêpnie wy¶lij sygna³ HUP do procesu nr 1:

  ______________________________________________________________________
       kill -HUP 1
  ______________________________________________________________________

  Dla u¿ytkowników dystrybucji Red Hat.  Aby uruchomiæ te demony ze
  skryptów startowych, umie¶æ nastêpuj±cy skrypt w katalogu
  /etc/rc.d/init.d/smb i do³±cz je symbolicznie do plików podanych w
  komentarzu:

  ______________________________________________________________________
       #!bin/sh

       #
       # /etc/rc.d/init.d/smb - startuje i zatrzymuje serwis SMB
       #
       # Nastêpuj±ce pliki powinny byæ symbolicznymi do³±czeniami do
       # tego pliku:
       # /etc/rc.d/rc1.d/K35smb (Zatrzymuje serwis SMB podczas
       # zamkniêcia systemu.
       # /etc/rc.d/rc3.d/S91smb (Startuje serwis SMB w trybie
       # wielou¿ytkownikowym
       # /etc/rc.d/rc6.d/K35smb (zatrzymuje serwis SMB podczas resetu)
       #

       # Biblioteka funkcji
       etc/rc.d/init.d/functions

       # Konfiguracja sieci
       etc/sysconfig/network

       # Sprawd¼ czy jeste¶my w sieci
       [ ${NETWORKING} = "no" ] && exit 0

       # Zobacz jak zostali¶my wywo³ani
       case "$1" in
          start) echo -n "Starting SMB services: "
                  daemon smbd -D
                  daemon nmbd -D
                  echo touch /var/lock/subsys/smb
          ;;
          stop) echo -n "Shutting down SMB services: "
                  killproc smbd
                  killproc nmbd
                  rm -f /var/lock/subsys/smb echo ""
          ;;
          *) echo "Usage: smb {start|stop}" exit 1
       esac
  ______________________________________________________________________

  Od t³umacza: Je¶li u¿ywasz dystrybucji Slackware.  Umie¶æ poni¿szy
  fragment w skrypcie startowym /etc/rc.d/rc.local:

  ______________________________________________________________________

     # czy jeste¶my w sieci
     [ ${NETWORKING} = "no" ] && exit 0

     # Uruchmon demony Samby
     /usr/sbin/smbd -D
     /usr/sbin/nmbd -D
  ______________________________________________________________________

  44..  OOggóóllnnaa kkoonnffiigguurraaccjjaa.. ((//eettcc//ssmmbb..ccoonnff))

  Konfiguracja Samby na Unix-ie jest kontrolowana jednym plikiem:
  /etc/smb.conf. W pliku tym umieszczasz zasoby jakie chcesz udostêpniæ
  dla ¶wiata i jakie restrykcje chcesz wprowadziæ.

  Poniewa¿ ta sekcja opisuje udostêpnianie dysków i drukarek Linux-owych
  Windowsom, plik smb.conf bêdzie najprostszym z mo¿liwych.

  Nie martw siê o szczegó³y. Pó¼niejsze sekcje wprowadz± ogólny koncept.

  Ka¿da sekcja pliku zaczyna siê od nazwy jak np.: global, homes,
  printers itp.

  Sekcja global definiuje kilka ogólnych zmiennych, które bêd± siê
  odnosiæ do wszystkich udostêpnianych zasobów.

  Sekcja homes pozwala u¿ytkownikom na dostêp do ich (i tyklo ich)
  katalogów domowych na lokalnej maszynie Linux-owej. Je¶li jaki¶
  u¿ytkownik Windows bêdzie chcia³ skorzystaæ z udostêpnianych zasobów,
  to zostanie pod³±czony do swojego katalogu domowego.  Zauwa¿, ¿e aby
  to zrobiæ u¿ytkownik musi mieæ swoje konto na maszynie Linux-owej.

  Poni¿szy przyk³adowy plik smb.conf pozwala u¿ytkownikom na dostêp do
  swoich katalogów domowych i na zapis do katalogu tymczasowego.  Aby
  u¿ytkownik Windows zobaczy³ udostêpniane zasoby, Linux musi byæ w tej
  samej sieci lokalnej. U¿ytkownik Windows po prostu do³±cza dysk
  sieciowy z Mened¿era Plików lub Eksploratora Windows.

  W nastêpnych sekcjach bêd± dodawane kolejne linie do tego pliku, aby
  umo¿liwiæ dostêp do wiêkszej ilo¶ci zasobów.

  ______________________________________________________________________
   etc/smb.conf
     ;
     ; Po wprowadzeniu zmian do tego pliku zrestartuj demony Samby
     ; kill -9 `pidof smbd`; kill -9 `pidof nmbd`
     ; /usr/sbin/smbd; /usr/sbin/nmbd
     [global] Umie¶æ to w pliku je¶li chcesz konto anonimowe guest account = nobody
        log file = /var/log/samba-log.%m lock directory = /var/lock/samba share
        modes = yes

     [homes] comment = Katalogi Domowe browseable = no read only = no create
        mode = 0750

     [tmp] comment = Miejsce na pliki tymczasowe path = /tmp read only = no
        public = yes
  ______________________________________________________________________

  55..  UUddoossttêêppnniiaanniiee ddyysskkuu LLiinnuuxx--oowweeggoo kkoommppuutteerroomm zz WWiinnddoowwss..

  Jak widaæ na powy¿szym przyk³adzie udostêpnianie dysków Linux-owych
  u¿ytkownikom Windows jest proste. Dostêp do zasobów udostêpnianych
  poprzez Sambê mo¿na w bardzo du¿ym stopniu kontrolowaæ.

  Aby udostêpniæ wszystkim jakie¶ zasoby, dodaj poni¿sze linie do
  smb.conf:

  ______________________________________________________________________
     [public]
     comment = Public Stuff path = /home/public public = yes writable = yes
        printable = yes
  ______________________________________________________________________

  Aby umo¿liwiæ zapis do tego katalogu tylko dla cz³onków grupy staff,
  zmodyfikuj te linie w nastêpuj±cy sposób:

  ______________________________________________________________________
     [public]
     comment = Public Stuff path = /home/public public = yes writable = yes
        printable = no write list = @staff
  ______________________________________________________________________

  Wiêcej informacji na temat ró¿nych sposobów udostêpniania zasobów
  znajdziesz w dokumentacji do Samby.

  66..  UUddoossttêêppnniiaanniiee ddyysskkuu ssppoodd WWiinnddoowwss mmaasszzyynnoomm zz LLiinnuuxx--eemm..

  Wraz z dystrybucj± Samby otrzymujemy klienta dla Unix-ów. Jego
  interfejs poleceñ jest podobny do ftp. Mo¿esz go u¿ywaæ, aby przenosiæ
  pliki miêdzy Windowsowym "serwerem" a klientem Linux-owym.

  Aby zobaczyæ jakie zasoby sa udostêpnione na danym ho¶cie napisz:

  ______________________________________________________________________
       /usr/sbin/smbclient -L host
  ______________________________________________________________________

  gdzie host jest nazw± maszyny, której zasoby chcesz zobaczyæ.
  Polecenie to zwróci listê nazw serwisów - to znaczy nazw dysków lub
  drukarek, które mo¿e udostêpniæ. Serwer Samby bêdzie ciê pyta³ o
  has³o, o ile nie ma skonfigurowanego bezpiecznego dostêpu.

  Np.

  ______________________________________________________________________
       smbclient -L zimmermann
  ______________________________________________________________________

  Polecenie to powinno wy¶wietliæ co¶ na kszta³t:

  ______________________________________________________________________
   Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0
  Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]

     Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]

             Sharename      Type      Comment
             ---------      ----      -------
             ADMIN$         Disk      Remote Admin public Disk Public C$ Disk
             Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$
             Disk Printer Drivers

     This machine has a browse list:

             Server               Comment
             ---------            -------
             HOPPER               Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE
             Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN
  ______________________________________________________________________

  Browse list pokazuje inne serwery SMB udostêpniaj±ce zasoby w sieci.

  Aby u¿yæ klienta napisz:

  ______________________________________________________________________
       /usr/sbin/smbclient serwis <has³o>
  ______________________________________________________________________

  gdzie serwis jest nazw± maszyny i zasobu. Na przyk³ad je¶li próbujesz
  dostaæ siê do katalogu, który jest udostêpniany jako public na
  maszynie o nazwie zimmermann, serwisem by³oby: \zimmermanublic.
  Chocia¿ z powodu pow³oki w Linux-ie bêdziesz musia³ oznaczyæ znaki
   specjalnie i polecenie ostatecznie wygl±da tak:

  ______________________________________________________________________
       usr/sbin/smbclient \\\\zimmerman\\public has³o
  ______________________________________________________________________

  gdzie has³o jest ³añcuchem znaków bêd±cym twoim has³em.

  Pojawi siê wtedy znak zachêty klienta Samby:

  ______________________________________________________________________
      Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0
      Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
      3.51] smb: \>
  ______________________________________________________________________

  Napisz 'h', aby uzyskaæ pomoc:

  ______________________________________________________________________
       smb: \> h ls dir lcd cd pwd get mget put mput rename more mask del rm
       mkdir md rmdir rd prompt recurse translate lowercase print printmode
       queue cancel stat quit q exit newer archive tar blocksize tarmode
       setmode help ?  !  smb: \>
  ______________________________________________________________________

  Je¶li umiesz u¿ywaæ ftp, to nie powiniene¶ potrzebowaæ czytaæ
  podrêcznika systemowego na temat smbclient.

  77..  UUddoossttêêppnniiaanniiee ddrruukkaarrkkii LLiinnuuxx--oowweejj kkoommppuutteerroomm zz WWiinnddoowwss..

  Aby udostepniæ drukarkê Linux-ow± Windowsom musisz siê upewniæ, ¿e
  drukarka dzia³a dobrze pod Linux-em. Je¶li mo¿esz drukowaæ spod Linux-
  a to ustawienie serwera SMB dla drukarki jest bardzo proste.

  Przeczytaj Priniting-HOWTO na temat ustawienia drukarki pod Linux-em.

  Poniewa¿ autor u¿ywa drukarki po³±czonej z Windows NT, sekcja ta nie
  powinna byæ brana za definicjê, ale bardziej jako sugestia.  Je¶li
  ktokolwiek ma ochotê siê podzieliæ szczegó³ami na temat innych
  konfiguracji proszê o kontakt, aby ta sekcja mog³a zostaæ skoñczona:
  dwood@plugged.net.au.

  Dodaj konfiguracjê na temat drukowania do smb.conf:

  ______________________________________________________________________
       [global]
       printing = bsd printcap name = /etc/printcap load printers = yes
       log file = /var/log/samba-log.%m lock directory = /var/lock/samba

       [printers] comment = Wszystkie drukarki security = server path = /var/spool/lpd/lp
       browseable = no printable = yes public = yes writable = no
       create mode = 0700

       [ljet] security = server path = /var/spool/lpd/lp printer name = lp
       writable = yes public = yes printable = yes
       print command = lpr -r -h -P %p %s
  ______________________________________________________________________

  Upewnij siê, ¿e ¶cie¿ka do drukarki (w tym wypadku w sekcji ]ljet[)
  jest taka sama jak katalog zadañ w etc/printcap.

  UWAGA: S± pewne problemy przy udostêpnianiu drukarki Unixowej przez
  Sambê komputerom z Windows NT. Jeden problem to taki, ¿eby NT widzia³o
  poprawnie drukarkê. Aby go zlikwidowaæ przeczytaj plik docs/WinNT.txt,
  który jest dostarczany wraz z dystrybucj±. Drugi problem to has³a.
  Przeczytaj ten sam plik, aby rozwi±zaæ ten problem.

  88..  UUddoossttêêppnniiaanniiee ddrruukkaarrkkii ssppoodd WWiinnddoowwss kkoommppuutteerroomm zz LLiinnuuxx--eemm..

  Aby udostêpniæ drukarkê spod Windows-ów musisz zrobiæ nastêpuj±ce
  rzeczy:

  a) Musisz mieæ poprawne pola w /etc/printcap i musz± one odpowiadaæ
  lokalnej strukturze katalogów (katalog dla drukarki itp.)

  b) Musisz mieæ skrypt /usr/bin/smbprint. Skrypt ten znajduje siê w
  ¼ród³ach Samby, ale nie w ka¿dym pakiecie binarnym.  Poni¿ej znajduje
  siê trochê zmodyfikowana wersja tego skryptu.

  c) Je¶li chcesz zamieniaæ pliki ASCII na PostScript, musisz mieæ
  nenscript albo jego ekwiwalent. nenscript jest konwerterem PostScript-
  owym i jest z regu³y instalowany w /usr/bin.

  d) Mo¿esz u³atwiæ drukowanie poprzez Sambê pisz±c skrypt. Poni¿ej
  podany jest prosty skrypt w Perl-u obs³uguj±cy pliki ASCII, PostScript
  i stworzony PostScript.

  Poni¿sze pola w /etc/printcap s± dla drukarki HP 5MP do³±czonej do
  komputera z Windows NT.

  ______________________________________________________________________
       cm - komentarz; lp - urz±dzenie, na które ma byæ wys³any wydruk;
       sd - katalog zadañ dla drukarki (na lokalnym komputerze); af -
     katalog accounting; mx - maksymalny rozmiar pliku (0 - bez
     ograniczenia); if - nazwa filtru wej¶ciowego (skryptu).
  ______________________________________________________________________

  Wiêcej informacji znajdziesz w Printing-HOWTO lub w podrêczniku
  systemowym dla "printcap".

  ______________________________________________________________________
   etc/printcap
     #
     # //zimmerman/oreilly przez smbprint
     #
     lp:\ cm=HP 5MP Postscript OReilly na zimmerman:\ lp=/dev/lp1:\
             :sd=/var/spool/lpd/lp:\ af=/var/spool/lpd/lp/acct:\ mx#0:\
             :if=/usr/bin/smbprint:
  ______________________________________________________________________

  Upewnij siê, ¿e katalogi zadañ i accounting istniej± i s± zapisywalne
  oraz ¿e if ma poprawn± ¶cie¿kê do scryptu smbprint (patrz poni¿ej) i
  ¿e lp wskazuje poprawne urz±dzenie (plik specjalny w katalogu /dev)

  Nastêpnym krokiem jest skrypt smbprint. Zwykle znajduje siê on w
  /usr/bin i jest przypisywany Andrew Tridgellowi - osobie, która
  stworzy³a Sambê o ile wiem. Przychodzi on wraz z dystrybucj± ¼róde³
  Samby, ale nie ma go w dystrybucji binariów, wiêc go tutaj stworzy³em.

  Mo¿esz przejrzeæ go dok³adniej. Przerobi³em go trochê, poniewa¿
  przeróbki wydawa³y mi siê u¿yteczne.

  ______________________________________________________________________
     #!/bin/sh
     # Skrypt ten jest filtrem wej¶ciowym do drukowania na drukarce
     # do³±czonej do Unix-a. U¿ywa programu smbclient do drukowania
     # pliku. Na przyk³ad twój printcap móg³by wygl±daæ nastepuj±co:
     #
     #
     # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
     #
     #
     # Stworzy³by on drukarkê o nazwie smb, która drukowa³aby poprzez
     # ten skrypt. Musia³by¶ stworzyæ katalog zadañ /usr/spool/smb z
     # odpowiednimi dla twojego systemu prawami dostêpu i w³a¶cicielem.
     #
     # Ustaw nastêpuj±ce rzeczy na serwer i serwis przez, który chcesz
     # drukowaæ. W tym przyk³adzie mam PC-ta z WfWg o nazwie "lapland",
     # który ma drukarkê o nazwie printer bez has³a.
     #
     #
     # W dalszej czê¶ci skrypt zosta³ przerobiony przez hamilton@ecnz.co.nz
     # (Michael Hamilton, tak aby serwer, serwis i has³o mog³y byæ
     # przeczytane z pliku /usr/var/spool/lpd/PRINTNAME/.config
     #
     # Aby to dzia³a³o /etc/printcap musi mieæ pole af:
     #
     #   cdcolour:\ cm=CD IBM Colorjet on 6th:\ sd=/var/spool/lpd/cdcolour:\
     #       :af=/var/spool/lpd/cdcolour/acct:\ if=/usr/local/etc/smbprint:\
     #       :mx=0:\ lp=/dev/null:
     #
     # Plik /usr/var/spool/lpd/PRINTNAME/.config powinien zawieraæ:
     #   server=PC_SERVER service=PR_SHARENAME password="password"
     #
     # Np. server=PAULS_PC service=CJET_371 password=""

     #
     # Plik, do którego maj± byc zapisywane wiadomo¶ci ze ¶ledzenia;
     # mo¿esz zmieniæ na /dev/null je¶li chcesz:
     #
     logfile=/tmp/smb-print.log logfile=/dev/null

     #
     # Ostatnim parametrem do filtra jest nazwa pliku accounting.
     #
     spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config

     # Powinien czytaæ te zmienne z pliku konfiguracyjnego: serwer
     # serwis has³o u¿ytkownik
     eval `cat $config_file`

     # Trcohê pomocy, zmieñ >> na > je¶li chcesz zachowaæ trochê
     # miejsca na dysku.
     #
     echo "server $server, service $service" >> $logfile

     (UWAGA Mo¿esz dodaæ liniê `echo translate' jesli chcesz
     # automatycznego t³umaczenia CR/LF podczas drukowania.
          echo translate echo "print -" cat
     ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user
     -N -P >>
     $logfile
  ______________________________________________________________________

  Wiêkszo¶æ dystrybucji Linux-owych posiada nenscript do zamiany
  dokumentów ASCII na PostScript. Nastêpuj±cy skrypt w Perl-u u³atwia
  ¿ycie stwarzaj±c prosty interfejs dla drukowania w Linux-ie przez
  smbprint.

  ______________________________________________________________________
       Stosowanie: print [-a|c|p] <nazwa_pliku>
       -a drukuje <nazwa_pliku> jako ASCII; c drukuje <nazwa_pliku>
       sformatowane jako ¼ród³o; -code p drukuje <nazwa_pliku> jako
       PostScript.
       Je¶li nie ma ¿adnej opcji, print próbuje odgadn±æ typ pliku i
      odpowiednio go wydrukowaæ.
  ______________________________________________________________________

  U¿ycie smbprint do drukowania plików ASCII powoduje obcinanie d³ugich
  linii. Ten skrypt dzieli d³ugie linie w miejscu spacji (zamiast w
  ¶rodku s³owa) je¶li jest to mo¿liwe.

  Formatowanie ¼ród³a odbywa sie przy pomocy programu nenscript.  Bierze
  on plik ASCII i formatuje go w dwie kolumny z dodatkowym nag³ówkiem
  (data, nazwa pliku, itp.) Zlicza tak¿e ilo¶æ linii.  Wzoruj±c siê na
  tym przyk³adzie mo¿esz zrobiæ inne typy formatowania.

  Dokumenty PostScript-owe s± ju¿ sformatowane wiêc przechodz±
  bezpo¶rednio do drukarki.

  ______________________________________________________________________
   usr/bin/perl

  # Skrypt:   print Autorzy: Brad Marshall, David Wood
  #           Plugged In Communications Date: 960808
  #
  # Skrypt do drukowania na drukarce oreilly, która jest do³±czona do
  # komputera zimmerman. Opis dzia³ania: Jako argumenty przyjmuje pliki
  # ró¿nych typów i wysy³a je odpowiednio do skryptu drukujacego Samby
  #
  # Obecnie obs³ugiwane typy plików:
  #
  # ASCII         - Upewnij siê, ¿e linie d³u¿sze ni¿ $line_length zosta³y
  #               podzielone w miejscu spacji.
  # PostScript    - Nie robi nic.
  # Code          - Formatuje na PostScript u¿ywaj±c "nenscript", aby wszystko
  #               by³o odpowiednio wy¶wietlone (u³o¿enie, czcionki, itd.)
  #
  #
  # Ustaw maksymaln± ilo¶æ znaków w linii dla plików ASCII. line_length
  $= 76;

  # Ustaw ¶cie¿kê i nazwê skryptu drukuj±cego Samby print_prog =
  $"/usr/bin/smbprint";

  # Ustaw ¶cie¿kê i nazwê "nenscript-u" (zamiana ASCII-->PostScript)
  $nenscript = "/usr/bin/nenscript";

  unless ( -f $print_prog ) { die "Can't find $print_prog!";
  }
  unless ( -f $nenscript ) { die "Can't find $nenscript!";
  }

  &ParseCmdLine(@ARGV);

  # DBG print "filetype is $filetype\n";

  if ($filetype eq "ASCII") { ero;wrap($line_length); elsif ($filetype eq
          &"code") {
  } ero;codeformat; elsif ($filetype eq "ps") {
          &createarray; else {
  } print "Sorry..no known
          &file type.\n"; exit
  } 0;
  }
  # Wy¶lij tablcê do smbprint open(PRINTER, "|$print_prog") || die "Can't
  open $print_prog: $!\n"; foreach
  $line (@newlines) {
          print PRINTER $line;
  }
  # Wy¶lij dodatkowy znak LF je¶li plik ma niekompletn± ostatni± liniê. print
  PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0;

  # --------------------------------------------------- #
  #        Wszystko poni¿ej jest procedur±              #
  # --------------------------------------------------- #

  sub ParseCmdLine { Interpretuje wiersz poleceñ, szukaj±c jakiego typu jest
          # plik

          # Gets $arg and $file to be the arguments (if they exists) and the
          # filename
          if ($#_ < 0) { ero;usage;
          }
          # DBG foreach $element (@_) { print "*$element* \n";
  #       }
          $arg = shift(@_); if ($arg =~ /\-./) { cmd = $arg; DBG print "\$cmd
          found.\n";

                  $file = shift(@_); else { file = $arg;
          }

          # Definiowanie typu pliku dopóki ($cmd) { Nie mamy argumentów

                  if ($file =~ /\.ps$/) { filetype = "ps"; elsif ($file =~
                          $/\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/)
                          ${ filetype = "code"; else { filetype = "ASCII";
                  }

                  # Przerób $file odpowiednio do jego typu i zwróæ $filetype
          } else { Mamy typ pliku w $arg if ($cmd =~ /^-p$/) {
                  filetype = "ps"; elsif ($cmd =~
                          $/^-c$/) { filetype
                  } = "code"; elsif ($cmd =~
                          $/^-a$/) {
                  } filetype = "ASCII"
                  }
          }
  }

  sub usage { print " Stosowanie: print [-a|c|p] <plik>
         -a drukuje <plik> jako ASCII c drukuje <plik> sformatowany jako
           ¼ród³o
         -code p drukuje <plik> jako PostScript
          Je¶li nie ma ¿adnej opcji, print próbuje odgadn±æ typ pliku i
          odpowiednio go wydrukowaæ.\n
  ";
          exit(0);
  }

  sub wrap { Stwórz tablicê linii w pliku, gdzie ka¿da linia jest krótsza od
          # podanej ilo¶ci znaków i jest podzielona tylko w miejscach spacji

          # Pobierz ilo¶æ znaków jaka mo¿e byæ w linii.  limit =
          $pop(@_);

          # DBG print "Entering subroutine wrap\n"; print "The line length
          #limit is $limit\n";

          # Wczytaj plik, sformatuj i umie¶æ w tablicy.  open(FILE,
          "<$file") || die "Can't open $file: $!\n"; while(<FILE>) {
                  $line = $_;

                  # DBG print "The line is:\n$line\n";

                  # Podziel liniê je¶li jest d³u¿sza ni¿ podana ilo¶æ znaków.  while (
                  length($line) > $limit ) {

                          # DBG print "Wrapping...";

                          # Pobierz pierwsze $limit+1 znaków.  part =
                          $substr($line,0,$limit +1);

                          # DBG print "The partial line is:\n$part\n";

                          # Sprawd¼ czy ostatni znak jest spacj±.
                          $last_char = substr($part,-1, 1);
                          if ( " " eq $last_char ) { Je¶li tak, wydrukuj resztê.

                              # DBG print "The last character was a space\n";

                              substr($line,0,$limit + 1) = "";
                              substr($part,-1,1) = "";
                              push(@newlines,"$part\n");
                          } else { Je¶li nie, znajd¼ ostatni± spacjê w
                                  # pod-linii i drukuj do niej

                              # DBG print "The last character was not a
                              #space\n";

                               # Usuñ znaki dalsze ni¿ $limit
                               substr($part,-1,1) = ""; Odwróæ liniê
                               # aby u³atwiæ odnajdywanie ostatniej spacji
                               $revpart = reverse($part);
                               $index = index($revpart," ");
                               if ( $index > 0 ) {
                                 substr($line,0,$limit-$index) = "";
                                 push(@newlines,substr($part,0,$limit-$index)
                                     . "\n"); else { Nie by³o spacji w linii
                               } wiêc
                                 # wydrukuj do $limit.
                                 substr($line,0,$limit) = "";
                                 push(@newlines,substr($part,0,$limit)
                                     . "\n");
                               }
                          }
                  }
                  push(@newlines,$line);
          }
          close(FILE);
  }

  sub codeformat { Wywo³aj procedurê wrap i przefiltruj przez nenscript
          &wrap($line_length);

          # Przepu¶æ wynik przez nenscript, aby utworzyæ plik PostScript,
          # który pasuje do jakiego¶ przyzwoitego formatu ¼róde³ do drukowania
          # (u³o¿enie, czcionki Courier, ilo¶æ linii). Najpierw wydrukuj to do
          # pliku tymczasowego.
          $tmpfile = "/tmp/nenscript$$";
          open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") || die "Can't
                  open nenscript: $!\n"; foreach $line (@newlines)
          {
                  print FILE $line;
          }
          close(FILE);

          # Wczytaj plik tymczasowy spowrotem do tablicy, tak aby móg³ byæ
          # wys³any do skryptu print Samby.
          @newlines = ("");
          open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
          while(<FILE>) {
                  push(@newlines,$_);
          }
          close(FILE); system("rm $tmpfile");
  }

  sub createarray { Stwórz tablicê dla PostScript-u open(FILE, "<$file") ||
          # die "Can't
          open $file: $!\n"; while(<FILE>) {
                  push(@newlines,$_);
          }
          close(FILE);
  }
  ______________________________________________________________________

  99..  PPrraawwaa aauuttoorrsskkiiee ii ZZaakkooññcczzeenniiee..

  99..11..  PPrraawwaa aauuttoorrsskkiiee..

  Dokument ten jest chroniony prawami autorskimi Davida Wooda 1996.
  Mo¿e on byæ reprodukowany w ka¿dej formie i dystrybuowany bez
  ograniczeñ tak d³ugo jak nie zmieni siê jego zawarto¶æ i zawarte jest
  w nim to stwierdzenie.

  99..22..  PPooddzziiêêkkoowwaanniiaa..

  Je¶li tylko przy¶lesz mi jakie¶ sugestie, umieszczê ciê tutaj w
  nastêpnej wersji.

  99..33..  OOdd tt³³uummaacczzaa..

  T³umaczenie to jest chronione prawami autorskimi © Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
  sk³adniowe, techniczne to pisz do mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e
  stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S±
  tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej.

  Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
  dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij
  list o tre¶ci subscribe jtz Imiê Nazwisko na adres
  listproc@ippt.gov.pl