File: SMB-HOWTO.pl.txt

package info (click to toggle)
doc-linux-pl 1999.10.11-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 6,092 kB
  • ctags: 765
  • sloc: makefile: 44
file content (817 lines) | stat: -rw-r--r-- 33,650 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
  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 uywa
  Session Message Protocol, zwanego te NetBIOS lub LanManager z Linux-
  em.  Dokument ten zosta napisany w standardzie ISO-8859-2.  Orygina
  mona 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 demonw.

  4.      Oglna konfiguracja. (/etc/smb.conf)

  5.      Udostpnianie dysku Linux-owego komputerom z Windows.

  6.      Udostpnianie dysku spod Windows maszynom z Linux-em.

  7.      Udostpnianie drukarki Linux-owej komputerom z Windows.

  8.      Udostpnianie drukarki spod Windows komputerom z Linux-em.

  9.      Prawa autorskie i Zakoczenie.

  9.1.    Prawa autorskie.

  9.2.    Podzikowania.

  9.3.    Od tumacza.
  ______________________________________________________________________

  11..  WWpprroowwaaddzzeenniiee..

  Jest to dokument z serii HOWTO (Jak To Zrobi). Opisuje on jak uywa
  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 przesane do mnie,
  aby je pniej umieci w nastpnej wersji.

  Protok SMB uywany jest przez Microsoft Windows 3.11, NT i 95 aby
  wspdzieli zasoby dyskowe i drukarki. Maszyny Unix-owe (w tym take
  Linux) mog korzysta z tych zasobw uywajc narzdzi stworzonych
  przez Andrew Tridgella.

  S cztery rzeczy, ktre mona zrobi Samb:

  1. Udostpnia dysk Linux-owy dla komputerw z Windows.

  2. Udostpnia dysk Windows-owy dla komputerw z Linux-em.

  3. Udostpnia drukark pod Linux-em dla Windows.

  4. Udostpnia drukark pod Windows dla Linux-a.

  Wszystko to zostao opisane w tym dokumencie.

  Disclaimer. Procedury i skrypty albo dziaay u autora, albo zostay
  opisane jako dziaajce przez tych, ktrzy je napisali.  Rne
  konfiguracje mog nie dziaa z podanymi tutaj informacjami.  Jeli
  odkryjesz tak sytuacj moesz napisa do autora list z sugesti na
  ulepszenie tego dokumentu, ale autor nic nie gwarantuje. A czego si
  spodziewae ? W kocu autor jest tyklo konsultantem.

  11..11..  DDaallsszzee iinnffoorrmmaaccjjee..

  Dokument ten jest prb opisania jak skonfigurowa na Linux-ie
  podstawowe serwisy SMB zwizane z plikami i drukarkami. Samba jest
  bardzo zoonym i kompletnym pakietem. Nie ma sensu, eby kopiowa
  tutaj wszystko to co jest zawarte w dokumentacji dla tego pakietu.

  Dalszych informacji moesz szuka w:

    Dokumentacji do Samby, ktra jest czci dystrybucji.  Dystrybucja
     jest dostpna pod adresem: ftp.icm.edu.pl

    HOWTO dotyczcym drukowania (Printing HOWTO)

    oraz w mini-HOWTO Print2Win.

  22..  IInnssttaallaaccjjaa..

  Najwiesze rda Samby dostpne s pod adresem ftp.icm.edu.pl w
  katalogu /pub/samba.

  Jeli instalowae dystrybucj Red Hat moge wybra instalacj Samby
  jako jedn z opcji. Niektre inne dystrybycje te oferuj binaria
  Samby.

  Nastpujce 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. Przykadowe skrypt znajduj si w sekcji
  ``Uruchamianie    demonw.''

  ______________________________________________________________________
        smbd (Demon SMB) i nmbd (wiadczy usugi nameservera NetBIOS-u)
  ______________________________________________________________________

  Zwykle w systemie instalowane s nastpujce binaraia w katalogu
  /usr/bin:

  ______________________________________________________________________
     smbclient (Klient dla maszyn Unix-owych), smbprint (skrypt do
     drukowania na drukarce przyczonej do hosta SMB), smbprint.sysv
     (To samo co wczeniej, ale dla systemu UNIX SVR4), smbstatus
     (Wywietla biece poczenia SMB na lokalnym hocie), smbrun
     (Gwny skrypt do uruchamiania aplikacji na hocie SMB)
  ______________________________________________________________________

  Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print", ktry
  jest poytecznym dokoczeniem skryptu smbprint.

  Pakiet Samba jest prosty w instalacji. cignij go z podanego
  wczeniej miejsca i przeczytaj plik README znajdujcy si w
  dystrybucji. Jest jeszcze plik docs/INSTALL.txt, ktry podaje krok po
  kroku co naley zrobi, aby zainstalowa Samb.

  Postpujc wraz z instalacj, umie demony w /usr/sbin i binaria w
  /usr/bin. Zainstaluj strony do podrcznika systemowego "man" w
  /usr/local/man.

  Kiedy bdziesz instalowa pakiet Samba, bdziesz musia poda miejsce,
  gdzie ma si znajdowa plik konfiguracyjny smb.conf.  Z reguy jest to
  katalog /etc, ale moesz go umieci, gdzie ci si podoba. Dla
  dalszych instrukcji zaoymy, e plik konfiguracyjny umiecie w
  /etc, plik logujcy to /var/log/samba-log.%m i katalog blokujcy to
  /var/lock/samba.

  Zainstaluj plik konfiguracyjny smb.conf. Przejd do katalogu, gdzie
  zostaa skompilowana Samba. Zajrzyj do katalogu examples/simple i
  przeczytaj plik README. Skopiuj znaleziony tam plik smb.conf do /etc.
  OOSSTTRROONNIIEE !!!!!!  Jeli masz dystrybucj Linux-a, ktra miaa Samb i
  zainstalowae j to pewnie masz ju plik smb.conf w katalogu /etc i
  lepiej zacznij od tego pliku.

  Jeli nie chcesz umieszcza pliku konfiguracyjnego w /etc, to umie
  go tam, gdzie chcesz i zrb symboliczne doczenie:

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

  33..  UUrruucchhaammiiaanniiee ddeemmoonnww..

  Dwoma demonami SMB s: /usr/sbin/smbd i /usr/sbin/nmbd.  Moesz je
  uruchomi przez demona inetd lub jako osobne procesy. Jeli
  konfigurujesz na stae serwer plikowy, to powinny one by uruchamiane
  przez inetd po to, eby je ponownie uruchomi jeli z jakiego powodu
  przestan dziaa. Jeli chcesz korzysta z Samby tylko czasami, to
  moesz je uruchomi z ktrego ze skryptw startowych w katalogu
  /etc/rc.d albo po prostu od rki wtedy kiedy je potrzebujesz.

  Aby uruchomi demony przez inetd umie nastpujce 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
  ______________________________________________________________________

  Nastpnie wylij sygna HUP do procesu nr 1:

  ______________________________________________________________________
       kill -HUP 1
  ______________________________________________________________________

  Dla uytkownikw dystrybucji Red Hat.  Aby uruchomi te demony ze
  skryptw startowych, umie nastpujcy skrypt w katalogu
  /etc/rc.d/init.d/smb i docz je symbolicznie do plikw podanych w
  komentarzu:

  ______________________________________________________________________
       #!bin/sh

       #
       # /etc/rc.d/init.d/smb - startuje i zatrzymuje serwis SMB
       #
       # Nastpujce pliki powinny by symbolicznymi doczeniami do
       # tego pliku:
       # /etc/rc.d/rc1.d/K35smb (Zatrzymuje serwis SMB podczas
       # zamknicia systemu.
       # /etc/rc.d/rc3.d/S91smb (Startuje serwis SMB w trybie
       # wielouytkownikowym
       # /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 jestemy w sieci
       [ ${NETWORKING} = "no" ] && exit 0

       # Zobacz jak zostalimy wywoani
       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 tumacza: Jeli uywasz dystrybucji Slackware.  Umie poniszy
  fragment w skrypcie startowym /etc/rc.d/rc.local:

  ______________________________________________________________________

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

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

  44..  OOggllnnaa kkoonnffiigguurraaccjjaa.. ((//eettcc//ssmmbb..ccoonnff))

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

  Poniewa ta sekcja opisuje udostpnianie dyskw i drukarek Linux-owych
  Windowsom, plik smb.conf bdzie najprostszym z moliwych.

  Nie martw si o szczegy. Pniejsze sekcje wprowadz oglny koncept.

  Kada sekcja pliku zaczyna si od nazwy jak np.: global, homes,
  printers itp.

  Sekcja global definiuje kilka oglnych zmiennych, ktre bd si
  odnosi do wszystkich udostpnianych zasobw.

  Sekcja homes pozwala uytkownikom na dostp do ich (i tyklo ich)
  katalogw domowych na lokalnej maszynie Linux-owej. Jeli jaki
  uytkownik Windows bdzie chcia skorzysta z udostpnianych zasobw,
  to zostanie podczony do swojego katalogu domowego.  Zauwa, e aby
  to zrobi uytkownik musi mie swoje konto na maszynie Linux-owej.

  Poniszy przykadowy plik smb.conf pozwala uytkownikom na dostp do
  swoich katalogw domowych i na zapis do katalogu tymczasowego.  Aby
  uytkownik Windows zobaczy udostpniane zasoby, Linux musi by w tej
  samej sieci lokalnej. Uytkownik Windows po prostu docza dysk
  sieciowy z Menedera Plikw lub Eksploratora Windows.

  W nastpnych sekcjach bd dodawane kolejne linie do tego pliku, aby
  umoliwi dostp do wikszej iloci zasobw.

  ______________________________________________________________________
   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 jeli 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..  UUddoossttppnniiaanniiee ddyysskkuu LLiinnuuxx--oowweeggoo kkoommppuutteerroomm zz WWiinnddoowwss..

  Jak wida na powyszym przykadzie udostpnianie dyskw Linux-owych
  uytkownikom Windows jest proste. Dostp do zasobw udostpnianych
  poprzez Samb mona w bardzo duym stopniu kontrolowa.

  Aby udostpni wszystkim jakie zasoby, dodaj ponisze linie do
  smb.conf:

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

  Aby umoliwi zapis do tego katalogu tylko dla czonkw grupy staff,
  zmodyfikuj te linie w nastpujcy sposb:

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

  Wicej informacji na temat rnych sposobw udostpniania zasobw
  znajdziesz w dokumentacji do Samby.

  66..  UUddoossttppnniiaanniiee ddyysskkuu ssppoodd WWiinnddoowwss mmaasszzyynnoomm zz LLiinnuuxx--eemm..

  Wraz z dystrybucj Samby otrzymujemy klienta dla Unix-w. Jego
  interfejs polece jest podobny do ftp. Moesz go uywa, aby przenosi
  pliki midzy Windowsowym "serwerem" a klientem Linux-owym.

  Aby zobaczy jakie zasoby sa udostpnione na danym hocie napisz:

  ______________________________________________________________________
       /usr/sbin/smbclient -L host
  ______________________________________________________________________

  gdzie host jest nazw maszyny, ktrej zasoby chcesz zobaczy.
  Polecenie to zwrci list nazw serwisw - to znaczy nazw dyskw lub
  drukarek, ktre moe udostpni. Serwer Samby bdzie ci pyta o
  haso, o ile nie ma skonfigurowanego bezpiecznego dostpu.

  Np.

  ______________________________________________________________________
       smbclient -L zimmermann
  ______________________________________________________________________

  Polecenie to powinno wywietli co na ksztat:

  ______________________________________________________________________
   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 udostpniajce zasoby w sieci.

  Aby uy klienta napisz:

  ______________________________________________________________________
       /usr/sbin/smbclient serwis <haso>
  ______________________________________________________________________

  gdzie serwis jest nazw maszyny i zasobu. Na przykad jeli prbujesz
  dosta si do katalogu, ktry jest udostpniany jako public na
  maszynie o nazwie zimmermann, serwisem byoby: \zimmermanublic.
  Chocia z powodu powoki w Linux-ie bdziesz musia oznaczy znaki
   specjalnie i polecenie ostatecznie wyglda tak:

  ______________________________________________________________________
       usr/sbin/smbclient \\\\zimmerman\\public haso
  ______________________________________________________________________

  gdzie haso jest acuchem znakw bdcym twoim hasem.

  Pojawi si wtedy znak zachty 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: \>
  ______________________________________________________________________

  Jeli umiesz uywa ftp, to nie powiniene potrzebowa czyta
  podrcznika systemowego na temat smbclient.

  77..  UUddoossttppnniiaanniiee ddrruukkaarrkkii LLiinnuuxx--oowweejj kkoommppuutteerroomm zz WWiinnddoowwss..

  Aby udostepni drukark Linux-ow Windowsom musisz si upewni, e
  drukarka dziaa dobrze pod Linux-em. Jeli moesz 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 uywa drukarki poczonej z Windows NT, sekcja ta nie
  powinna by brana za definicj, ale bardziej jako sugestia.  Jeli
  ktokolwiek ma ochot si podzieli szczegami na temat innych
  konfiguracji prosz o kontakt, aby ta sekcja moga zosta skoczona:
  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 cieka do drukarki (w tym wypadku w sekcji ]ljet[)
  jest taka sama jak katalog zada w etc/printcap.

  UWAGA: S pewne problemy przy udostpnianiu drukarki Unixowej przez
  Samb komputerom z Windows NT. Jeden problem to taki, eby NT widziao
  poprawnie drukark. Aby go zlikwidowa przeczytaj plik docs/WinNT.txt,
  ktry jest dostarczany wraz z dystrybucj. Drugi problem to hasa.
  Przeczytaj ten sam plik, aby rozwiza ten problem.

  88..  UUddoossttppnniiaanniiee ddrruukkaarrkkii ssppoodd WWiinnddoowwss kkoommppuutteerroomm zz LLiinnuuxx--eemm..

  Aby udostpni drukark spod Windows-w musisz zrobi nastpujce
  rzeczy:

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

  b) Musisz mie skrypt /usr/bin/smbprint. Skrypt ten znajduje si w
  rdach Samby, ale nie w kadym pakiecie binarnym.  Poniej znajduje
  si troch zmodyfikowana wersja tego skryptu.

  c) Jeli chcesz zamienia pliki ASCII na PostScript, musisz mie
  nenscript albo jego ekwiwalent. nenscript jest konwerterem PostScript-
  owym i jest z reguy instalowany w /usr/bin.

  d) Moesz uatwi drukowanie poprzez Samb piszc skrypt. Poniej
  podany jest prosty skrypt w Perl-u obsugujcy pliki ASCII, PostScript
  i stworzony PostScript.

  Ponisze pola w /etc/printcap s dla drukarki HP 5MP doczonej do
  komputera z Windows NT.

  ______________________________________________________________________
       cm - komentarz; lp - urzdzenie, na ktre ma by wysany wydruk;
       sd - katalog zada dla drukarki (na lokalnym komputerze); af -
     katalog accounting; mx - maksymalny rozmiar pliku (0 - bez
     ograniczenia); if - nazwa filtru wejciowego (skryptu).
  ______________________________________________________________________

  Wicej informacji znajdziesz w Printing-HOWTO lub w podrczniku
  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 ciek do scryptu smbprint (patrz poniej) i
  e lp wskazuje poprawne urzdzenie (plik specjalny w katalogu /dev)

  Nastpnym krokiem jest skrypt smbprint. Zwykle znajduje si on w
  /usr/bin i jest przypisywany Andrew Tridgellowi - osobie, ktra
  stworzya Samb o ile wiem. Przychodzi on wraz z dystrybucj rde
  Samby, ale nie ma go w dystrybucji binariw, wic go tutaj stworzyem.

  Moesz przejrze go dokadniej. Przerobiem go troch, poniewa
  przerbki wydaway mi si uyteczne.

  ______________________________________________________________________
     #!/bin/sh
     # Skrypt ten jest filtrem wejciowym do drukowania na drukarce
     # doczonej do Unix-a. Uywa programu smbclient do drukowania
     # pliku. Na przykad twj printcap mgby wyglda nastepujco:
     #
     #
     # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
     #
     #
     # Stworzyby on drukark o nazwie smb, ktra drukowaaby poprzez
     # ten skrypt. Musiaby stworzy katalog zada /usr/spool/smb z
     # odpowiednimi dla twojego systemu prawami dostpu i wacicielem.
     #
     # Ustaw nastpujce rzeczy na serwer i serwis przez, ktry chcesz
     # drukowa. W tym przykadzie mam PC-ta z WfWg o nazwie "lapland",
     # ktry ma drukark o nazwie printer bez hasa.
     #
     #
     # W dalszej czci skrypt zosta przerobiony przez hamilton@ecnz.co.nz
     # (Michael Hamilton, tak aby serwer, serwis i haso mogy by
     # przeczytane z pliku /usr/var/spool/lpd/PRINTNAME/.config
     #
     # Aby to dziaao /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 ktrego maj byc zapisywane wiadomoci ze ledzenia;
     # moesz zmieni na /dev/null jeli 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 haso uytkownik
     eval `cat $config_file`

     # Trcoh pomocy, zmie >> na > jeli chcesz zachowa troch
     # miejsca na dysku.
     #
     echo "server $server, service $service" >> $logfile

     (UWAGA Moesz doda lini `echo translate' jesli chcesz
     # automatycznego tumaczenia CR/LF podczas drukowania.
          echo translate echo "print -" cat
     ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user
     -N -P >>
     $logfile
  ______________________________________________________________________

  Wikszo dystrybucji Linux-owych posiada nenscript do zamiany
  dokumentw ASCII na PostScript. Nastpujcy skrypt w Perl-u uatwia
  ycie stwarzajc 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 rdo; -code p drukuje <nazwa_pliku> jako
       PostScript.
       Jeli nie ma adnej opcji, print prbuje odgadn typ pliku i
      odpowiednio go wydrukowa.
  ______________________________________________________________________

  Uycie smbprint do drukowania plikw ASCII powoduje obcinanie dugich
  linii. Ten skrypt dzieli dugie linie w miejscu spacji (zamiast w
  rodku sowa) jeli jest to moliwe.

  Formatowanie rda odbywa sie przy pomocy programu nenscript.  Bierze
  on plik ASCII i formatuje go w dwie kolumny z dodatkowym nagwkiem
  (data, nazwa pliku, itp.) Zlicza take ilo linii.  Wzorujc si na
  tym przykadzie moesz zrobi inne typy formatowania.

  Dokumenty PostScript-owe s ju sformatowane wic przechodz
  bezporednio do drukarki.

  ______________________________________________________________________
   usr/bin/perl

  # Skrypt:   print Autorzy: Brad Marshall, David Wood
  #           Plugged In Communications Date: 960808
  #
  # Skrypt do drukowania na drukarce oreilly, ktra jest doczona do
  # komputera zimmerman. Opis dziaania: Jako argumenty przyjmuje pliki
  # rnych typw i wysya je odpowiednio do skryptu drukujacego Samby
  #
  # Obecnie obsugiwane typy plikw:
  #
  # ASCII         - Upewnij si, e linie dusze ni $line_length zostay
  #               podzielone w miejscu spacji.
  # PostScript    - Nie robi nic.
  # Code          - Formatuje na PostScript uywajc "nenscript", aby wszystko
  #               byo odpowiednio wywietlone (uoenie, czcionki, itd.)
  #
  #
  # Ustaw maksymaln ilo znakw w linii dla plikw ASCII. line_length
  $= 76;

  # Ustaw ciek i nazw skryptu drukujcego Samby print_prog =
  $"/usr/bin/smbprint";

  # Ustaw ciek 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;
  }
  # Wylij tablc do smbprint open(PRINTER, "|$print_prog") || die "Can't
  open $print_prog: $!\n"; foreach
  $line (@newlines) {
          print PRINTER $line;
  }
  # Wylij dodatkowy znak LF jeli plik ma niekompletn ostatni lini. print
  PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0;

  # --------------------------------------------------- #
  #        Wszystko poniej jest procedur              #
  # --------------------------------------------------- #

  sub ParseCmdLine { Interpretuje wiersz polece, szukajc 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 dopki ($cmd) { Nie mamy argumentw

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

                  # Przerb $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
           rdo
         -code p drukuje <plik> jako PostScript
          Jeli nie ma adnej opcji, print prbuje odgadn typ pliku i
          odpowiednio go wydrukowa.\n
  ";
          exit(0);
  }

  sub wrap { Stwrz tablic linii w pliku, gdzie kada linia jest krtsza od
          # podanej iloci znakw i jest podzielona tylko w miejscach spacji

          # Pobierz ilo znakw jaka moe 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 jeli jest dusza ni podana ilo znakw.  while (
                  length($line) > $limit ) {

                          # DBG print "Wrapping...";

                          # Pobierz pierwsze $limit+1 znakw.  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 ) { Jeli 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 { Jeli 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 uatwi 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 byo spacji w linii
                               } wic
                                 # wydrukuj do $limit.
                                 substr($line,0,$limit) = "";
                                 push(@newlines,substr($part,0,$limit)
                                     . "\n");
                               }
                          }
                  }
                  push(@newlines,$line);
          }
          close(FILE);
  }

  sub codeformat { Wywoaj procedur wrap i przefiltruj przez nenscript
          &wrap($line_length);

          # Przepu wynik przez nenscript, aby utworzy plik PostScript,
          # ktry pasuje do jakiego przyzwoitego formatu rde do drukowania
          # (uoenie, 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 mg by
          # wysany 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 { Stwrz tablic dla PostScript-u open(FILE, "<$file") ||
          # die "Can't
          open $file: $!\n"; while(<FILE>) {
                  push(@newlines,$_);
          }
          close(FILE);
  }
  ______________________________________________________________________

  99..  PPrraawwaa aauuttoorrsskkiiee ii ZZaakkoocczzeenniiee..

  99..11..  PPrraawwaa aauuttoorrsskkiiee..

  Dokument ten jest chroniony prawami autorskimi Davida Wooda 1996.
  Moe on by reprodukowany w kadej formie i dystrybuowany bez
  ogranicze tak dugo jak nie zmieni si jego zawarto i zawarte jest
  w nim to stwierdzenie.

  99..22..  PPooddzziikkoowwaanniiaa..

  Jeli tylko przylesz mi jakie sugestie, umieszcz ci tutaj w
  nastpnej wersji.

  99..33..  OOdd ttuummaacczzaa..

  Tumaczenie to jest chronione prawami autorskimi  Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Jeli znalaze jakie race bdy ortograficzne, gramatyczne,
  skadniowe, techniczne to pisz do mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln stron tumacze HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przetumaczonych dokumentw znajduj si na teje
  stronie. Dostpne s take poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przetumaczone przeze mnie dokumenty znajduj si take na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S
  tam te odwoania do Polskiej Strony Tumaczeniowej.

  Kontakt z nasz grup, grup tumaczy moesz uzyska poprzez list
  dyskusyjn jtz@ippt.gov.pl. Jeli chcesz sie na ni zapisa, to wylij
  list o treci subscribe jtz Imi Nazwisko na adres
  listproc@ippt.gov.pl