File: SMB-HOWTO.pl.html

package info (click to toggle)
doc-linux-pl 2002.06.14-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, jessie, jessie-kfreebsd, lenny, squeeze, wheezy
  • size: 6,900 kB
  • ctags: 968
  • sloc: makefile: 66
file content (1381 lines) | stat: -rw-r--r-- 52,667 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
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>SMB-Howto</TITLE>


</HEAD>
<BODY>
<H1>SMB-Howto<BR></H1>

<H2>Autor:David Wood, 
<A HREF="mailto:dwood@plugged.net.au">dwood@plugged.net.au</A>
v1.1, 25 Marca 1999<BR>
<B>Wersja polska: Bartosz Maruszewski
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><BR></B>
v1.2, 18 Sierpnia 1999</H2>
<P><HR>
<EM>Jest to dokument z serii HOWTO (Jak To Zrobi). Opisuje on jak uywa
Server Message Protocol (SMB), zwanego te Session Message Block,
NetBIOS lub LanManager w Linuksie.
Dokument ten zosta napisany w standardzie ISO-8859-2.
Orygina mona znale pod adresem 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO">ftp.icm.edu.pl</A> w katalogu /pub/Linux/sunsite/docs/HOWTO.</EM>
<HR>
<H2><A NAME="s1">1. Wprowadzenie.</A></H2>

<P>
<P>Jest to dokument z serii HOWTO (Jak To Zrobi). Opisuje on jak
uywa w Linuksie Server Message Protocol, zwanego te Session
Message Block, NetBIOS lub LanManager. Dokument ten skupia si na
Linuksie, jednak Samba dziaa na wikszoci systemw uniksowych.
<P>Dokument ten jest prowadzony przez Davida Wooda
<A HREF="mailto:dwood@plugged.net.au">dwood@plugged.net.au</A>. Wszelkie dodatki, modyfikacje lub
poprawki mog by przesane do mnie, aby je pniej umieci w
nastpnej wersji.
<P>O wiele wicej dokumentacji znajduje si na stronie WWW Samby pod
adresem 
<A HREF="http://www.samba.org/">www.samba.org</A>.
Moesz take korzysta z grupy dyskusyjnej <I>comp.protocols.smb</I>
lub polskojzycznej <I>pl.comp.os.linux.sieci</I>.
<P>Protok SMB uywany jest przez Microsoft Windows 3.11, NT i 95/98
aby wspdzieli zasoby dyskowe i drukarki. Maszyny Unix-owe (w
tym take Linux) mog korzysta z tych zasobw uywajc narzdzi
stworzonych przez Andrew Tridgella. Przy pomocy narzdzi <I>smbfs</I>
autorstwa Paal-Kr. Engstad (pke@engstad.ingok.hitos.no), Volker
Lendecke (lendecke@namu01.gwdg.de) maszyny uniksowe mog montowa
zasoby udostpniane z Windows.
<P>S cztery rzeczy, ktre mona zrobi Samb:
<P>
<OL>
<LI>Udostpnia dysk Linux-owy dla komputerw z Windows.</LI>
<LI>Udostpnia dysk Windows-owy dla komputerw z Linux-em.</LI>
<LI>Udostpnia drukark pod Linux-em dla Windows.</LI>
<LI>Udostpnia drukark pod Windows dla Linux-a.</LI>
</OL>
<P>Wszystko to zostao opisane w tym dokumencie.
<P>Zrzeczenie. 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.
<P>Aby maszyny z systemami Windows 3.x mogy korzysta z SMB musz
mie zainstalowany stos TCP/IP i DLL Win32. Oba te pakiety s
dostpne na stronie WWW Microsoftu (
<A HREF="ihttp://www.microsoft.com">www.microsoft.com</A>).
<P>
<H2><A NAME="s2">2. Dalsze informacje.</A></H2>

<P>
<P>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.
<P>Dalszych informacji moesz szuka w:
<UL>
<LI>Dokumentacji do Samby, ktra jest czci dystrybucji.
Dystrybucja jest dostpna pod adresem: ftp.icm.edu.pl oraz
ftp.samba.org</LI>
<LI>HOWTO dotyczcym drukowania (Printing HOWTO)</LI>
<LI>oraz w mini-HOWTO Print2Win.</LI>
<LI>Dokumentacja okrelajca standard protokou NetBIOS na
TCP/IP.<BR>
RFC 1001 - Oglne zarysy.<BR>
RFC 1002 - Szczegowe specyfikacje.</LI>
</UL>
<P>
<H2><A NAME="s3">3. Instalacja.</A></H2>

<P>
<P>Po pierwsz, aby uywa Samby wszystkie twoje maszyny musz byc w
jednym segmencie sieci lokalnej i korzysta z protokou TCP/IP.
Samba nie bdzie dziaa na innych protokoach. Jest to atwe do
osignicia poniewa Linux i Windows 95/98/NT s dostarczane z tym
protokoem. Jednak jeli uywasz Windows 3.x, to bdziesz musia
doda obsug tego protokou.
<P>Z usug SMB nie mona korzysta poprzez routery. Jeli chcesz takie
co zrobi, to musisz ustawi tunel IP, co jest poza tematyk tego
HOWTO.
<P>Najwiesze rda Samby dostpne s pod adresem 
<A HREF="ftp.icm.edu.pl:/pub/samba">ftp.icm.edu.pl</A> w katalogu <CODE>/pub/samba</CODE>. Oryginalny
adres to 
<A HREF="ftp://ftp.samba.org/">ftp.samba.org</A>.
<P>Jeli instalowae dystrybucj Red Hat moge wybra instalacj
Samby jako jedn z opcji. Niektre inne dystrybycje te oferuj
binaria Samby.
<P>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 <CODE>inetd</CODE>. Przykadowe skrypt
znajduj si w sekcji 
<A HREF="#sec-daemons">Uruchamianie    demonw.</A><P>
<HR>
<PRE>
      smbd (Demon SMB) i nmbd (wiadczy usugi nameservera NetBIOS-u)
</PRE>
<HR>
<P>Zauwa, e serwis nazw oferowany przez demona nmbd rni si od
tego oferowanego przez DNS (serwis nazw domen). Serwis nazw
NetBIOS, to serwis nazw w stylu Windows uywany do SMB. Innymi
sowy, to e masz DNS nie oznacza, e Samba bdzie umiaa
odczytywa nazwy komputerw.
<P>Zwykle w systemie instalowane s nastpujce binaraia w katalogu
/usr/bin:
<P>
<HR>
<PRE>
   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)
</PRE>
<HR>
<P>Binaria do obsugi systemu plikw (smbfs) omwione s w dalszej
czci dokumentu.
<P>Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print",
ktry jest poytecznym dokoczeniem skryptu smbprint.
<P>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.
<P>Postpujc wraz z instalacj, umie demony w /usr/sbin i binaria
w /usr/bin. Zainstaluj strony do podrcznika systemowego "man" w
/usr/local/man.
<P>Kiedy bdziesz instalowa pakiet Samba, bdziesz musia poda
miejsce, gdzie ma si znajdowa plik konfiguracyjny <CODE>smb.conf</CODE>.
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.
<P>Zainstaluj plik konfiguracyjny smb.conf. Przejd do katalogu,
gdzie zostaa skompilowana Samba. Zajrzyj do katalogu
<CODE>examples/simple</CODE> i przeczytaj plik README. Skopiuj
znaleziony tam plik <CODE>smb.conf</CODE> do /etc. <B>OSTRONIE !!!</B>
Jeli masz dystrybucj Linux-a, ktra miaa Samb i zainstalowae
j to pewnie masz ju plik <CODE>smb.conf</CODE> 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:
<P>
<HR>
<PRE>
     ln -s /gdzie/jest/smb.conf /etc/smb.conf
</PRE>
<HR>
<P>
<H2><A NAME="sec-daemons"></A> <A NAME="s4">4. Uruchamianie demonw.</A></H2>

<P>
<P>Dwoma demonami SMB s: <CODE>/usr/sbin/smbd i /usr/sbin/nmbd</CODE>.
<P>Moesz je uruchomi przez demona <CODE>inetd</CODE> lub jako osobne
procesy. Samba bdzie odpowiada troch szybciej jeli jest
uruchomiona jako osobny demon ni z inetd.
<P>W obu przypadkach powiniene sprawdzi czy w pliku
<CODE>/etc/services</CODE> znajduj si takie linie:
<P>
<HR>
<PRE>
       netbios-ns      137/tcp         nbns
       netbios-ns      137/udp         nbns
       netbios-dgm     138/tcp         nbdgm
       netbios-dgm     138/udp         nbdgm
       netbios-ssn     139/tcp         nbssn
</PRE>
<HR>
<P>Upewnij si, e wszystkie s odkomentowane. W zalenoci od
dystrybucji, moliwe, e bdziesz musia je doda. Samba nie bdzie
w stanie dowiza si do odpowiednich portw jeli w tym pliku nie
znajd si powysze linie.
<P>Aby uruchomi demony przez <CODE>inetd</CODE> umie nastpujce linie w
pliku <CODE>/etc/inetd.conf</CODE>:
<P>
<HR>
<PRE>
 Serwis NetBIOS dla Samby
      # netbios-ssn
      stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait
      root /usr/sbin/nmbd nmbd
</PRE>
<HR>
<P>Nastpnie wylij sygna HUP do procesu nr 1:
<HR>
<PRE>
     kill -HUP 1 `cat /var/run/inetd.pid`
</PRE>
<HR>
<P>Dla uytkownikw dystrybucji Red Hat.
Aby uruchomi te demony ze skryptw startowych, umie nastpujcy
skrypt w katalogu <CODE>/etc/rc.d/init.d/smb</CODE> i docz je
symbolicznie do plikw podanych w komentarzu:
<P>
<HR>
<PRE>
     #!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" ] &amp;&amp; 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
</PRE>
<HR>
<P>Od tumacza:
Jeli uywasz dystrybucji Slackware.
Umie poniszy fragment w skrypcie startowym <CODE>/etc/rc.d/rc.local</CODE>:
<P>
<HR>
<PRE>
   
   # czy jestemy w sieci
   [ ${NETWORKING} = "no" ] &amp;&amp; exit 0
   
   # Uruchmon demony Samby
   /usr/sbin/smbd -D
   /usr/sbin/nmbd -D
</PRE>
<HR>
<P>Jeli podczas startu Samby pojawi si bd mwicy co o
niemonoci dowizania si do portu 139, to prawdpodobnie jest inny
proces Samby jeszcz dziajcy. Sprawd list procesw (poleceniem
'ps auxww | grep mbd'), eby zobaczy czy to prawda.
<P>
<H2><A NAME="s5">5. Oglna konfiguracja. (/etc/smb.conf)</A></H2>

<P>
<P>Konfiguracja Samby na Uniksie jest kontrolowana jednym plikiem:
<CODE>/etc/smb.conf</CODE>. W pliku tym umieszczasz zasoby jakie
chcesz udostpni dla wiata i jakie restrykcje chcesz wprowadzi.
<P>Poniewa ta sekcja opisuje udostpnianie dyskw i drukarek
Linux-owych Windowsom, plik smb.conf bdzie najprostszym z
moliwych.
<P>Nie martw si o szczegy. Pniejsze sekcje wprowadz oglny
koncept.
<P>Kada sekcja pliku zaczyna si od nazwy jak np.: [global],
[homes], [printers] itp.
<P>Sekcja [global] definiuje kilka oglnych zmiennych, ktre bd
si odnosi do wszystkich udostpnianych zasobw.
<P>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.
<P>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.
<P>W nastpnych sekcjach bd dodawane kolejne linie do tego pliku,
aby umoliwi dostp do wikszej iloci zasobw.
<P>
<HR>
<PRE>
 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
</PRE>
<HR>
<P>Po stworzeniu nowego pliku <CODE>smb.conf</CODE> dobrze jest zweryfikowa
czy jest poprawny. Mona to zrobi przy pomocy programu
<I>testparm</I> (informacje o nim znajdziesz na stronie podrcznika
systemowego). Jeli program ten nie zgosi adnych bdw, to smbd
poprawnie zaaduje ten plik.
<P>Oto pewien trick: Jeli twj serwer Samba ma wicej ni jeden
interfejs ethernetowy, smbd moe doczy si do zego. Jeli tak
si stanie, to moesz zmusi smbd do dowizania si do dobrego
przez dodanie do sekcji [global] poniszej linii:
<P>
<HR>
<PRE>
interfaces = 192.168.1.1/24
</PRE>
<HR>
<P>Uwaga: Liczba po znaku '/' odnosi si do maski podsieci.
&quot;24&quot; to warto jak naley uy dla niepodzielonej
klasy C.  Wicej informacji okalkulacjach dotyczcych podsieci
znajdziesz pod adresem 
<A HREF="http://www.ziplink.net/~ralphb/IPSubnet/index.html">www.ziplink.net/~ralphb/IPSubnet/index.html</A>.
<P>Dostpne jest graficzne narzdzie konfiguracyjne do Samby:
<I>GtkSamba</I>. Zerknij pod adres 
<A HREF="http://www.open-systems.com/gtksamba.html">www.open-systems.com/gtksamba.html</A>.
<P>
<H2><A NAME="s6">6. Udostpnianie dysku Linuksowego komputerom z Windows.</A></H2>

<P>
<P>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.
<P>Aby udostpni wszystkim jakie zasoby, dodaj ponisze linie do
smb.conf:
<P>
<HR>
<PRE>
   [public]     
   comment = Public Stuff path = /home/public public = yes writable = yes
      printable = no
</PRE>
<HR>
<P>Aby umoliwi zapis do tego katalogu tylko dla czonkw grupy
staff, zmodyfikuj te linie w nastpujcy sposb:
<P>
<HR>
<PRE>
   [public]
   comment = Public Stuff path = /home/public public = yes writable = yes
      printable = no write list = @staff
</PRE>
<HR>
<P>Kiedy byo to bardzo proste: po prostu startowae Samb i zasoby
mona byo przeglda z Windows na PC. Jednak Microsoft ostatnio
troch utrudni ycie korzystajcym z Samby. Systemy Windows 98,
Windows NT (z service pack 3 i nowszym) i ostatnie Windows 95
uywaj teraz standardowo kodowanych hase. Samba natomiast
korzysta domylnie z niekodowanych hase. Nie mona przeglda
zasobw jeli albo klient albo serwer uywa kodowanych hase
poniewa nie mona poczy si anonimowo.
<P>Jeli taki wanie konflikt wystpuje u ciebie, to podczas prby
poczenia si z zasobem powiniene zobaczy okienko z komunikatem:
&quot;You are not authorized to access that account from this
machine&quot;.
<P>Moesz skonfigurowa albo Samb do uywania zakodowanych hase,
albo Windows do uywani niekodowanych hase.
<P>Konfigurowanie Windows do uywania kodowanych hase Samby:
<P><B>Windows 95/98</B>
<P>Uywajc edytora rejestrw (regedit) stwrz takie ustawienie:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
dodaj now warto DWORD: Value name: EnablePlainTextPassword Data:
0x01.
<P><B>Windows NT</B>
<P>Uywajc edytora rejestrw (regedit) stwrz takie ustawienie: 
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters,
dodaj now warto DWORD: Value Name:  EnablePlainTextPassword
Data: 0x01.
<P>Kiedy te zmiany zostan zrobione, zresetuj komputer z Windows i
sprbuj podczy si do jakiego zasobu z Samby. Powinno to
dziaa o ile serwere Samby uywa niekodowanych hase
<P>Konfigurowanie Samby do uywania hase kodowanych:
<P>W sekcji [global] w pliku <CODE>/etc/smb.conf</CODE> dodaj
nastpujce linie:
<P>
<HR>
<PRE>
       encrypt passwords = yes
       smb passwd file = /etc/smbpasswd
</PRE>
<HR>
<P>Zanim to zrobisz zachcam mocno do przeczytania plikw
<CODE>ENCRYPTION.txt</CODE>, <CODE>Win95.txt</CODE> i <CODE>WinNT.txt</CODE> w dokumentacji
do Samby.
<P>Jeli twoi klienci i serwer uywaj kodowanych hase nie bdziesz
mg przeglda zasobw serwera zanim nie zostanie zainicjowane
pierwsze poczenie z poprawn autentykacj. Aby to uczyni wpisz
rcznie nazw zasobu w Menederze Plikw lub Eksplorerze w postaci
<CODE>\\&lt;nazwa serwera>\&lt;nazwa zasobu></CODE>. Zaloguj si z
poprawnym loginem i hasem na tym serwerze.
<P>Jeli podejrzewasz, e serwis nazwa NetBIOS jest le skonfigurowany
(moe dlatego, e pojawiaj si bdy &quot;host not found&quot;
podczas poczenia), to sprbuj uy tylko adresu IP serwera
<CODE>\\&lt;IP serwera>\&lt;nazwa zasobu></CODE>.
<P>eby nazwy plikw pojawiay si poprawnie moliwe, e musisz doda
kilka ustawie do odpowiedniej sekcji zasobu. Ponisze dziaa
poprawnie dla Windows 95/98/NT, ale moliwe, e trzeba te
ustawienia zmodyfikowa w przypadku Windows 3.x:
<P>
<HR>
<PRE>
      ; Mangle case = yes zdaje si podawa poprawne nazwy
      ; dla Win 95/98
      mangle case = yes

      ; Czy rozrnia due i mae litery
      case sensitive = no

      ; Domylna wielko liter przy tworzeniu plikw
      default case = lower

      ; Zachowaj ustawienia dot. liter dla wszystkich plikw
      preserve case = yes

      ; Zachowaj ustawienia dor. liter dla nazwa dos-owych (8.3)
      short preserve case = no
</PRE>
<HR>
<P>Wicej informacji na temat rnych sposobw udostpniania zasobw
znajdziesz w dokumentacji do Samby. Moliwoci konfiguracji Samby
s o wiele wiksze ni pokazane tutaj. Na pocztek jednak
wystarczy. Jeli chcesz zrobi co bardziej zaawansowanego, to
zajrzyj na wspomnian wczeniej stron WWW Samby.
<P>
<H2><A NAME="s7">7. Udostpnianie dysku spod Windows maszynom z Linux-em.</A></H2>

<P>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.
<P>Aby zobaczy jakie zasoby sa udostpnione na danym hocie napisz:
<HR>
<PRE>
     /usr/sbin/smbclient -L host
</PRE>
<HR>
<P>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.
<P>Np.
<P>
<HR>
<PRE>
     smbclient -L zimmermann
</PRE>
<HR>
<P>Polecenie to powinno wywietli co na ksztat:
<P>
<HR>
<PRE>
 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
</PRE>
<HR>
<P>Browse list pokazuje inne serwery SMB udostpniajce zasoby w
sieci.
<P>Aby uy klienta napisz:
<HR>
<PRE>
     /usr/sbin/smbclient serwis &lt;haso>
</PRE>
<HR>
<P>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:
\\zimmerman\public. Chocia z powodu powoki w
Linux-ie bdziesz musia oznaczy znaki \ specjalnie i
polecenie ostatecznie wyglda tak:
<HR>
<PRE>
     usr/sbin/smbclient \\\\zimmerman\\public haso
</PRE>
<HR>
<P>gdzie haso jest acuchem znakw bdcym twoim hasem.
<P>Pojawi si wtedy znak zachty klienta Samby:
<P>
<HR>
<PRE>
    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: \>
</PRE>
<HR>
<P>Napisz 'h', aby uzyska pomoc:
<P>
<HR>
<PRE>
     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: \>
</PRE>
<HR>
<P>Jeli umiesz uywa ftp, to nie powiniene potrzebowa czyta
podrcznika systemowego na temat smbclient.
<P>smbclient moe by dobry do testowania jednak szybko moe si
znudzi w codziennej pracy. Bdziesz pewnie chcia uywa
pakietu <I>smbfs</I>. Zawarte s tam dwa proste narzdzia:
<I>smbmount</I> i <I>smbumount</I>. Dziaaj dokadnie tak samo jak
linuksowe polecenia mount i umount z tym, e operuj na zasobach
SMB.
<P>Pakiet <I>smbfs</I> jest zawarty w wikszoci dystrybucji Linuksa.
Jedna wana uwaga: Musisz mie wkompilowan w jdro obsug systemu
plikw SMB (smbfs), aby mc uywa tych narzdzi!
<P>
<H2><A NAME="s8">8. Udostpnianie drukarki Linux-owej komputerom z Windows.</A></H2>

<P>
<P>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.
<P>Przeczytaj Priniting-HOWTO na temat ustawienia drukarki pod
Linux-em.
<P>Poniewa autor uywa drukarki poczonej z Windows NT (bardzo dawno
temu - zanim nasza sie zostaa cakiem przeniesiona na Linuksa),
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: 
<A HREF="mailto:dwood@plugged.net.au">dwood@plugged.net.au</A>.
<P>Dodaj konfiguracj na temat drukowania do smb.conf:
<P>
<HR>
<PRE>
     [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
</PRE>
<HR>
<P>Upewnij si, e cieka do drukarki (w tym wypadku w sekcji ]ljet[)
jest taka sama jak katalog zada w <CODE>etc/printcap</CODE>.
<P>Linie:
<P>
<HR>
<PRE>
     printcap name = /etc/printcap
     load printers = yes
</PRE>
<HR>
<P>decyduj czy wszystkie drukarki zdefiniowane w
<CODE>/etc/printcap</CODE> powinny by zaadowane. Jeli to zrobisz, to
nie ma sensu konfigurowa drukarek indywidualnie. Sekcja
[printers] okrela ustawienia dla drukarek, ktre chcesz
wyranie zdefiniowa. Jeli twj system drukowania nie dziaa w ten
sposb (BSD), to musisz skonfigurowa faszywy plik konfiguracyjny
dla drukarek (albo uy techniki z poleceniem 'print'; zobacz
dalej). Wicej informacji na temat drukowania znajdziesz w 
<A HREF="ihttp://www.jtrz.org.pl/Html/Printing-HOWTO.pl.html">Printing-HOWTO</A>.
<P>Poyteczn technik testowania poczenia sieciowego jest zmiana
polecenia print na:
<P>
<HR>
<PRE>
     print command = cp %S /tmp/print.%P.%S
</PRE>
<HR>
<P>Mona potem przeanalizowa plik wynikowy.
<P>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
<CODE>docs/WinNT.txt</CODE>, ktry jest dostarczany wraz z
dystrybucj. Drugi problem to hasa. Przeczytaj ten sam plik, aby
rozwiza ten problem.
<P>Oleg L. Machulskiy (machulsk@shade.msu.ru) proponuje, e lepszym
poleceniem byoby:
<P>
<HR>
<PRE>
       print command = smb2ps %s | lpr -r -h -P %p
</PRE>
<HR>
<P>gdzie <I>smb2ps</I> to skrypt zamieniajcy plik otrzymany z Windows
na bardziej uyteczny PostScript. Musi on odci pierwsze 3 linie i
ostatnie dwie poniewa te linie zawieraj pewne kody PJL lub PCL.
<P>Takie podejcie jest potrzbne tylko wtedy jeli Windows u ciebie
drukuje PCL a nie prawdziwy PostScript. Dowiedziaem si, e
Windows 95/98/NT nie posiadaj same z siebie sterownika do
PostScriptu, ale sterownik &quot;Digital turbo Printserver
20&quot; jest dobrym zamiennikiem takiego w wikszoci przypadkw.
Syszaem take, e sterownik &quot;Apple LaserWriter II
NTX&quot; dziaa dobrze.
<P>Jeff Stern (jstern@eclectic.ss.uci.edu) zgosi co takiego, co
moe niektrym z was pomc:
<P>--------------------------%&lt;----------------------------------
<P>Mj problem polega na tym, e mogem drukowa na drukarce z samego
Linuksa, ale nie mogem drukowa na niej z Windows 95. Kiedy
prbowaem polecenia <I>smbclient \\eclectic\belen -P</I> i potem
prbowaem wydrukowa plik pojawiay si komunikaty o braku
dostpu (access denied). Tak wic ustawiem dla katalogu
<CODE>/var/spool/lpd/lp1</CODE> atrybuty 777. Przykro mi, ale musiaem
to zrobi. Mogem te wszystkich uytkowikw zapisa do grupy 'lp'
i ustawi takie prawa dla tej grupy, albo zmieni waciciela
grupowego katalogu na 'users' ... . Ale jak na razie to dziaa z
prawami root:lp 777.
<P>Inn rzecz jak administratorzy musz wiedzie, to fakt, e nazwa
konta,z ktrego uytkownik prbuje drukowa z Windows, musi istnie
take na Linuksie. I tak: jeli na Windows jest uytkownik 'joe',
ti na Linuksie musi by te uytkownik 'joe'. Haso logowania
uytkownika 'joe' bdzie hasem dostpu do drukarki na Linuksie.
Uytkownik bdzie zapytano o to haso podczas dodawania drukarki
sieciowej do swojego komputera.
<P>Mylaem, e to nie bdzie problemem u mnie, bo ustawiem swoj
drukark jako 'public' (oglnie dostpn) w <CODE>/etc/smb.conf</CODE>.
Ale jednak wci jest pytanie o haso. Windows nie daje niestety
moliwoci podania innego loginu dla drukarki zdalnej. Uywa po
prostu tego, ktrym zalogowae si do Windows.
<P>--------------------------%&lt;----------------------------------
<P>Dr. Michael Langner (langner@fiz-chemie.de) wskazuje, e problemu z
prawami dostpu dla katalogu <CODE>/var/spool/lpd/</CODE> mona unikn
przez uycie takich ustawie:
<P>
<HR>
<PRE>
path = /tmp
print command = lpr -r -P%p %s
</PRE>
<HR>
<P>Czasami pojawi si bd podczas przetwarzania PostScriptu z
Windows, ktry powoduje wydrukowanie dodatkowej strony na kocu
kadego zadania. Na pocztku kadej takiej strony znajduje si
''&quot;%%[ Lastpage ]%%&quot;. Zdarza si to tylko w
Windows 95/98 i spowodowane jest bdami w PostScripcie.
<P>Jednym ze sposobw, aby sobie z tym poradzi jest uycie skryptu
usuwajcego ten kawaek zego PostScriptu z zadania wydruku. Innym
sposobem jest znalezienie lepszego sterownika do PostScriptu do
Windows. Najlepszym sposobem jest prawdopodobnie uycie LPRng
zamiast PostScriptu do drukowania na serwerze Samby.
<P>Erik Ratcliffe (erik@caldera.com) z Caldery powiedzia mi, e
uywanie LPRng oznacza, e na maszynach z Windows moe byc uyty
kady sterownik. Na serwerze Samby, uywali oni takiego pliku
<CODE>/etc/printcap</CODE>:
<P>
<HR>
<PRE>
       raw:\
               :rw:sh:
               :lp=/dev/lp1
               :sd=/var/spool/lpd/raw
               :fx=flp
</PRE>
<HR>
<P>LPRng nie wyamaga znakw ':\' na kocu kadej linii. Wci
potrzebna jest pozycja dotyczca drukarek w pliku
<CODE>/etc/smb.conf</CODE>. Polecenie 'print' musi uywa drukarki
zdefiniowanej jako &quot;raw&quot; w <CODE>/etc/printcap</CODE> i
dane musz by wysyane do tej drukarki binarnie. Sprbuj uyc
poniszej linii:
<P>
<HR>
<PRE>
       print command = lpr -b -Praw %s
</PRE>
<HR>
<P>Moliwe te, e bdziesz musia skonfigurowa kolejkowanie na
Windows 95, tak eby wysya wydruki bezporednio do drukarki
zamiast je kolejkowa.
<P>
<H2><A NAME="s9">9. Udostpnianie drukarki spod Windows komputerom z Linux-em.</A></H2>

<P>
<P>Aby udostpni drukark spod Windows-w musisz zrobi nastpujce
rzeczy:<BR>
<P>
<OL>
<LI>Musisz mie poprawne pola w <CODE>/etc/printcap</CODE> i musz one
odpowiada lokalnej strukturze katalogw (katalog dla drukarki itp.)
   </LI>
<LI>Musisz mie skrypt <CODE>/usr/bin/smbprint</CODE>. Skrypt ten
znajduje si w rdach Samby, ale nie w kadym pakiecie binarnym.
Poniej znajduje si troch zmodyfikowana wersja tego skryptu.
   </LI>
<LI>Jeli chcesz zamienia pliki ASCII na PostScript, musisz mie
nenscript albo jego ekwiwalent. nenscript jest konwerterem
PostScript-owym i jest z reguy instalowany w <CODE>/usr/bin</CODE>.
   </LI>
<LI>Moesz uatwi drukowanie poprzez Samb piszc skrypt. Poniej
podany jest prosty skrypt w Perl-u obsugujcy pliki ASCII,
PostScript i stworzony PostScript.
</LI>
<LI>Mgbys te uy <I>MagicFilter</I> do powyszych zada.
Szczegy na temat konfiguracji tego filtru s podane za skryptem w
perlu. Zalet tego filtru jest znajomo wielu formatw plikw i
umiejtno ich konwersji.</LI>
</OL>
<P>Ponisze pola w <CODE>/etc/printcap</CODE> s dla drukarki HP 5MP
doczonej do komputera z Windows NT.
<P>
<HR>
<PRE>
     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).
</PRE>
<HR>
<P>Wicej informacji znajdziesz w Printing-HOWTO lub w podrczniku
systemowym dla "printcap".
<P>
<HR>
<PRE>
 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:
</PRE>
<HR>
<P>Upewnij si, e katalogi zada i zliczania (accounting) istniej
i s zapisywalne
oraz e if ma poprawn ciek do scryptu <CODE>smbprint</CODE> (patrz
poniej) i e lp wskazuje poprawne urzdzenie (plik specjalny w
katalogu <CODE>/dev</CODE>)
<P>Nastpnym krokiem jest skrypt <CODE>smbprint</CODE>. Zwykle znajduje si
on w <CODE>/usr/bin</CODE> 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.
<P>Moesz przejrze go dokadniej. Przerobiem go troch, poniewa
przerbki wydaway mi si uyteczne.
<P>
<HR>
<PRE>
   #!/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
</PRE>
<HR>
<P>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.
<P>
<HR>
<PRE>
     Stosowanie: print [-a|c|p] &lt;nazwa_pliku>
     -a drukuje &lt;nazwa_pliku> jako ASCII; c drukuje &lt;nazwa_pliku>
     sformatowane jako rdo; -code p drukuje &lt;nazwa_pliku> jako
     PostScript.
     Jeli nie ma adnej opcji, print prbuje odgadn typ pliku i
    odpowiednio go wydrukowa.
</PRE>
<HR>
<P>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.
<P>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.
<P>Dokumenty PostScript-owe s ju sformatowane wic przechodz
bezporednio do drukarki.
<P>
<HR>
<PRE>
 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!";
}

&amp;ParseCmdLine(@ARGV);

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

if ($filetype eq "ASCII") { ero;wrap($line_length); elsif ($filetype eq
        &amp;"code") {
} ero;codeformat; elsif ($filetype eq "ps") {
        &amp;createarray; else {
} print "Sorry..no known
        &amp;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 ($#_ &lt; 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] &lt;plik>
       -a drukuje &lt;plik> jako ASCII c drukuje &lt;plik> sformatowany jako
         rdo
       -code p drukuje &lt;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,
        "&lt;$file") || die "Can't open $file: $!\n"; while(&lt;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
        &amp;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, "&lt;$tmpfile") || die "Can't open $file: $!\n";
        while(&lt;FILE>) {
                push(@newlines,$_);
        }
        close(FILE); system("rm $tmpfile");
}

sub createarray { Stwrz tablic dla PostScript-u open(FILE, "&lt;$file") ||
        # die "Can't
        open $file: $!\n"; while(&lt;FILE>) {
                push(@newlines,$_);
        }
        close(FILE);
}
</PRE>
<HR>
<P>Teraz sposb z <I>MagicFilter</I>. Dzikuj za t informacj Alberto
Menegazzi (
<A HREF="mailto:flas    h.egon@iol.it">flash.egon@iol.it</A>).
<P>Alberto pisze:
<P>--------------------------%&lt;----------------------------------
<P>1) Zainstaluj <I>MagicFilter</I> dla odpowiednich drukarek w
<CODE>/usr/bin/local/</CODE>, ale nie umieszczaj w
<CODE>/etc/printcap</CODE> tego co sugeruje dokumentacja do tego
filtru.
<P>2) Utwrz plik <CODE>/etc/printcap</CODE> na podobiestwo tego poniej
(to jest konfiguracja dla mojej drukarki LaserJet 4L):
<P>
<HR>
<PRE>
lp|ljet4l:\
        :cm=HP LaserJet 4L:\
        :lp=/dev/null:\                         # or /dev/lp1
        :sd=/var/spool/lpd/ljet4l:\
        :af=/var/spool/lpd/ljet4l/acct:\
        :sh:mx#0:\
        :if=/usr/local/bin/main-filter:
</PRE>
<HR>
<P>Powiniene wiedzie, e lp=/dev/... otwierane jest z lokowaniem,
tak wic powinny by uywane virtualne urzdzenia; jedno dla kadej
odlegej drukarki.
<P>Np. stworzone przez 'touch /dev/ljet4l'.
<P>3) Stwrz filtr <CODE>/usr/local/bin/main-filter</CODE> jak poniej:
<P>
<HR>
<PRE>
#! /bin/sh
logfile=/var/log/smb-print.log
spool_dir=/var/spool/lpd/ljet4l
(
  echo "print -"
    /usr/local/bin/ljet4l-filter
) | /usr/bin/smbclient "\\\\SHIR\\HPLJ4" -N -P >> $logfile
</PRE>
<HR>
<P>P.S. Oto cytat z mini-HOWTO Print2Win na temat lokowania i po co
tworzy wirtaulne drukarki.
<P>---Pocztek cytatu
<P>Wskazwka od Ricka Bresslera:
<P>Dobra rada. Ja uywam czego bardzo podobnego. Jedna pomocna
wskazwka, to poniej nie jest dobrym pomysem:
<P>
<HR>
<PRE>
        :lp=/dev/null:\
</PRE>
<HR>
<P>lpr otwiera plik podany w ustawieniu <I>lp=</I> na wyczno. Robi
tak, eby zapobiec zapisywaniu przez wiele procesw do tej samej
drukarki w tym samym czasie.
<P>Ubocznym efektem tego jest, e w twoim przypadku 'eng' i 'colour'
nie mog drukowa w tym samym czasie (zwykle mniej lub bardziej
przezroczyste, poniewa bd raczej drukoway szybko no i jest te
kolejka. Tak e nie powiniene niczego zauway). Ale kady inny
proces, ktry sprbuje zapisa do /dev/null przerwie dziaanie.
<P>W systemie jednouytkownikowym nie jest to problem. Ja mam system z
50. drukarkami - i tam byby to problem.
<P>Rozwizaniem jest stworzenie faszywej drukarki dla kadej. Np.
'touch /dev/eng'.
<P>Zmodyfikowaem pola w pliku <CODE>/etc/printcap</CODE> powyej i
wziem pod uwag sugestie Ricka. Wykonaem te dwa polecenia:
<P>
<HR>
<PRE>
#touch /dev/eng
#touch /dev/colour
</PRE>
<HR>
<P>---Koniec cytatu
<P>--------------------------%&lt;----------------------------------
<P>
<H2><A NAME="s10">10. Tworzenie kopii zapasowej komputerw z Windows na Linuksie.</A></H2>

<P>
<P>Adam Neat (
<A HREF="mailto:adamneat@ipax.com.au">adamneat@ipax.com.au</A>) uprzejmie poda nastpujcy skrypt,
sucy do robienia kopii zapasowych Windowsw na Linuksie przy
pomocy narzdzia <I>smbclient</I>. Adam twierdzi, e uywa go do
robienia kopii zapasowych Windows 3.x i NT na Linuksie na napdzie
DAT SCSI.
<P>Adam nie jest dumny ze stylu kodowania, ale to dziaa. Jak ja to
lubi mwi: &quot;Jeli dziaa i jest gupie, to nie jest
gupie&quot;.
<P>W skrypcie tym <I>agnea1</I> jest nazw uytkownika na Linuksie,
ktry robi kopie.
<P>
<HR>
<PRE>
#!/bin/bash

clear
echo Initialising ...
checkdate=`date | awk '{print $1}'`

if [ -f "~agnea1/backup-dir/backup-data" ]; then

        echo "ERROR: No config file for today!"
        echo "FATAL!"
        exit 1
fi

if [ -d "~agnea1/backup-dir/temp" ]; then

        echo "ERROR: No tempoary directory found!"
        echo
        echo "Attempting to create"
        cd ~agnea1
        cd backup-dir
        mkdir temp
        echo "Directory Made - temp"
fi

if [ "$1" = "" ]; then

        echo "ERROR: enter in a machine name (ie: cdwriter)"
        exit 1
fi

if [ "$2" = "" ]; then

        echo "ERROR: enter in a SMB (Lan Manager) Resource (ie: work)"
        exit 1
fi

if [ "$3" = "" ]; then

        echo "ERROR: enter in an IP address for $1 (ie:
        130.xxx.xxx.52)" exit 1
fi

#############################################################################
# Main Section
#
#############################################################################

cd ~agnea1/backup-dir/temp
rm -r ~agnea1/backup-dir/temp/*
cd ~agnea1/backup-dir/

case "$checkdate"
in
        Mon)
                echo "Backuping for Monday"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Complete"

                        if [ -d "~agnea1/backup-dir/Monday" ]; then
                                echo "Directory Monday Not found ...
                                making" mkdir
                                ~agnea1/backup-dir/Monday
                        fi

                echo "Archiving ..."
                cd ~agnea1/backup-dir/temp
                tar -cf monday.tar *                echo "done ..."
                rm ~agnea1/backup-dir/Monday/monday.tar
                mv monday.tar ~agnea1/backup-dir/Monday
                ;;


        Tue)
                echo "Backuping for Tuesday"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Complete"

                        if [ -d "~agnea1/backup-dir/Tuesday" ]; then
                                echo "Directory Tuesday Not found ...
                                making" mkdir
                                ~agnea1/backup-dir/Tuesday
                        fi
                echo "Archiving ..."
                cd ~agnea1/backup-dir/temp
                tar -cf tuesday.tar *
                echo "done ..."
                rm ~agnea1/backup-dir/Tuesday/tuesday.tar
                mv tuesday.tar ~agnea1/backup-dir/Tuesday
                ;;

        Wed)
                echo "Backuping for Wednesday"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Complete"

                        if [ -d "~agnea1/backup-dir/Wednesday" ]; then
                                echo "Directory Wednesday Not found
                                ... making" mkdir
                                ~agnea1/backup-dir/Wednesday
                        fi
                echo "Archiving ..."
                cd ~agnea1/backup-dir/temp
                tar -cf wednesday.tar *
                echo "done ..."
             rm ~agnea1/backup-dir/Wednesday/wednesday.tar
                mv wednesday.tar ~agnea1/backup-dir/Wednesday
                ;;

        Thu)
                echo "Backuping for Thrusday"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Complete"

                        if [ -d "~agnea1/backup-dir/Thursday" ]; then
                                echo "Directory Thrusday Not found ...
                                making" mkdir
                                ~agnea1/backup-dir/Thursday
                        fi
                echo "Archiving ..."
                cd ~agnea1/backup-dir/temp
                tar -cf thursday.tar *
                echo "done ..."
                rm ~agnea1/backup-dir/Thursday/thursday.tar
                mv thursday.tar ~agnea1/backup-dir/Thursday
                ;;


        Fri)
                echo "Backuping for Friday"
                cat backup-data | /usr/local/samba/bin/smbclient
                \\\\$1\\$2 -I$3 -N echo "Complete"

                        if [ -d "~agnea1/backup-dir/Friday" ]; then
                                echo "Directory Friday Not found ...
                                making" mkdir
                                ~agnea1/backup-dir/Friday
                        fi
                echo "Archiving ..."
                cd ~agnea1/backup-dir/temp
                tar -cf friday.tar *
                echo "done ..."
                rm ~agnea1/backup-dir/Friday/friday.tar
                mv friday.tar ~agnea1/backup-dir/Friday
                ;;

        *)
                echo "FATAL ERROR: Unknown variable passed for day"
                exit 1;;

esac
###########
</PRE>
<HR>
<P>
<H2><A NAME="s11">11. Prawa autorskie.</A></H2>

<P>
<P>Prawa autorskie tego HOWTO nale do Davida Wooda &copy; 1996-1999,
Mona je reprodukowa w kadej postaci oraz dystrybuowa bez
ogranicze tak dugo jak dugo nie bdzie zmieniana jego zawarto
wcznie z tym stwierdzeniem.
<P>
<H2><A NAME="s12">12. Podzikowania.</A></H2>

<P>
<P>Brad Marshall (
<A HREF="mailto:bmarshall@plugged.net.au">bmarshall@plugged.net.au</A>) and Jason Parker (
<A HREF="mailto:jparker@plugged.net.au">jparker@plugged.net.au</A>)
dostarczyli czasu, cierpliwoci, troch skryptw i bada.
<P>Adam Neat (
<A HREF="mailto:adamneat@ipax.com.au">adamneat@ipax.com.au</A>) dostarczy skrypt w bashu do robienia
kopii zapasowych Windows na Linuksie.
<P>Matthew Flint (
<A HREF="mailto:matthew@philtrum.demon.co.uk">matthew@philtrum.demon.co.uk</A>) powiedzia mi o ustawienia
<I>interfaces</I> w <CODE>smb.conf</CODE>.
<P>Oleg L. Machulskiy (
<A HREF="mailto:machulsk@shade.msu.ru">machulsk@shade.msu.ru</A>), Jeff Stern (
<A HREF="mailto:jstern@eclectic.ss.uci.edu">jstern@eclectic.ss.uci.edu</A>), Dr. Michael Langner (
<A HREF="mailto:langner@fiz-chemie.de">langner@fiz-chemie.de</A>
i Erik Ratcliffe (
<A HREF="mailto:erik@caldera.com">erik@caldera.com</A>) zasugerowali modyfikacje w rozdziale na
temat udostpniania drukarki na Linuksie maszynom z Windows.
<P>Alberto Menegazzi (
<A HREF="mailto:flash.egon@iol.it">flash.egon@iol.it</A>) dostarczy konfiguracj
<I>MagicFilter</I>.
<P>Andrea Girotto (
<A HREF="mailto:icarus@inca.dei.unipd.it">icarus@inca.dei.unipd.it</A>) dostarczy wielu wartociowych
sugestii na temat caego dokumentu.
<P>Dziki take wszystki midzynarodowym tumaczom, ktrzy umoliwili
czytanie tego HOWTO ludziom nie znajcym angielskiego: Takeo Nakano
(
<A HREF="mailto:nakano@apm.seikei.ac.jp">nakano@apm.seikei.ac.jp</A>), Klaus-Dieter Schumacher (
<A HREF="mailto:Klaus-Dieter.Schumacher@fernuni-hagen.de">Klaus-Dieter.Schumacher@fernuni-hagen.de</A>), Andrea Girotto
(
<A HREF="mailto:icarus@inca.dei.unipd.it">icarus@inca.dei.unipd.it</A>) i wielu innym, z ktrymi nie mam
kontaktu.
<P>
<H2>12.1 Od tumacza.</H2>

<P>
<P>Tumaczenie to jest chronione prawami autorskimi &copy; Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
<P>Jeli znalaze jakie race bdy ortograficzne, gramatyczne,
skadniowe, techniczne to pisz do mnie:
<P>
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><P>Oficjaln stron tumacze HOWTO jest
<A HREF="http://www.jtz.org.pl/">http://www.jtz.org.pl/</A><P>Aktualne wersje przetumaczonych dokumentw znajduj si na
teje stronie. Dostpne s take poprzez anonimowe ftp pod adresem
<A HREF="ftp://ftp.jtz.org.pl/HOWTO/">ftp.jtz.org.pl</A> w katalogu <CODE>/HOWTO/</CODE>.
<P>Przetumaczone przeze mnie dokumenty znajduj si take na
<A HREF="http://www.jtz.org.pl/bartek/tlumaczenie.html">mojej stronie WWW.</A> S tam te odwoania do Polskiej Strony
Tumaczeniowej.
<P>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 <CODE>subscribe jtz Imi Nazwisko</CODE> na adres
<CODE>majordomo@ippt.gov.pl</CODE>
<P>
</BODY>
</HTML>