REKLAMA

samba.pdf

Jak skonfigurować Sambę do współdzielenia plików i drukarek w sieci?

Samba to pakiet narzędzi umożliwiających współdzielenie zasobów, ta kich jak drukarki i pliki, w sieci. Być może jest to pewne uproszczenie, ale Sambe na prawdę opracowano po to, aby ułatwić ci życie. Sam ba korzysta z protokołu SerwerMessage Block (SMB), wspólnego produktu Microsoftu i IBM-u, w celu przesyłania danych między klientami Windows i serwerami uniksowymi w sieci TCP/IP. Tutaj zamieszczam książke jak to wszystko uryść :)


Pobierz plik - link do postu

Samba
Robert Eckstein, David Collier-Brown i Peter Kelly

Samba
Robert Eckstein, David Collier-Brown, Peter Kelly
Tytu³ orygina³u amerykañskiego: Using Samba
T³umaczenie: Grzegorz Werner
© Copyright 2000 Wydawnictwo RM. This is a translation of Using Samba, first edition, written by Robert Eckstein, David Collier-Brown, and Peter Kelly, and published by O'Reilly
& Associates. This material may be distributed only subject to the terms and conditions set
forth in the license, wchich is presently available at: http://www.oreilly.com/catalog/samba/
licenseinfo.html
All rights reserved.
Printed in Poland
Wydawnictwo RM, 00-987 Warszawa, skr. poczt. 144
e-mail: rm@rm.com.pl
WWW: http://www.rm.com.pl
Praca mo¿e byæ powielana i rozpowszechniana pod warunkiem bezwzglêdnego przestrzegania postanowieñ umowy licencyjnej dostêpnej pod adresem http://www.oreilly.com/catalog/
samba/licenseinfo.html, a tak¿e na koñcu tej publikacji.
Wszystkie nazwy handlowe i towarów wystêpuj¹ce w niniejszej publikacji s¹ znakami towarowymi zastrze¿onymi lub nazwami zastrze¿onymi odpowiednich firm odnoœnych w³aœcicieli.
Wydawnictwo RM do³o¿y³o wszelkich starañ, aby zapewniæ najwy¿sz¹ jakoœæ tej ksi¹¿ce.
Jednak¿e nikomu nie udziela ¿adnej rêkojmi ani gwarancji. Wydawnictwo RM nie jest w ¿adnym przypadku odpowiedzialne za jak¹kolwiek szkodê (³¹cznie ze szkodami z tytu³u utraty
zysków zwi¹zanych z prowadzeniem przedsiêbiorstwa, przerw w dzia³alnoœci przedsiêbiorstwa lub utraty informacji gospodarczej) bêd¹c¹ nastêpstwem korzystania z informacji za wartych w niniejszej publikacji, nawet jeœli Wydawnictwo RM zosta³o zawiadomione o mo¿liwoœci wyst¹pienia szkód.

ISBN 83-7243-098-5
Redaktor prowadz¹cy: Miros³awa Szymañska
Redakcja: Irmina Wala-Pêgierska
Korekta: Maria Najder
Redakcja CD-ROM-u: Wies³aw Buszman
Opracowanie graficzne ok³adki wed³ug orygina³u: Gra¿yna Jêdrzejec
Redaktor techniczny: Beata Donner
Sk³ad: Marcin Fabijañski
Druk i oprawa: Oficyna Wydawnicza READ ME - Drukarnia w £odzi
Wydanie I
10 9 8 7 6 5 4 3 2 1

Spis treœci
Spis treœci

Przedmowa

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII

Pakiet Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII
Dla kogo przeznaczona jest ta ksi¹¿ka? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII
Przed instalacj¹ Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
Uk³ad ksi¹¿ki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
Konwencje typograficzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X
Proœba o komentarze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI
Podziêkowania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI

Rozdzia³ 1

Poznajemy Sambê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Co to jest Samba? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Do czego mo¿e siê przydaæ Samba? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Poznajemy sieæ SMB/CIFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Implementacje Microsoftu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Przegl¹d dystrybucji Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Sk¹d wzi¹æ Sambê? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Co nowego w Sambie 2.0? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
To nie wszystko... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Rozdzia³ 2

Instalowanie Samby w Uniksie . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Pobieranie dystrybucji Samby . . . . . .
Pakiet binarny czy Ÿród³owy? . . . . . .
Konfigurowanie Samby . . . . . . . . . .
Kompilowanie i instalowanie Samby . .
Podstawowy plik konfiguracyjny Samby
Uruchamianie demonów Samby . . . . .
Testowanie demonów Samby . . . . . .

Rozdzia³ 3

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

29
30
32
36
38
43
45

Konfigurowanie klientów Windows . . . . . . . . . . . . . . . . . . . . . . . . 47

Konfigurowanie komputerów Windows 95/98 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Konfigurowanie komputerów Windows NT 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Wprowadzenie do protoko³u SMB/CIFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Rozdzia³ 4

Udzia³y dyskowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Poznajemy plik konfiguracyjny Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Sekcje specjalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Opcje pliku konfiguracyjnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Konfiguracja serwera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Konfiguracja udzia³ów dyskowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Sieciowe opcje Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Serwery wirtualne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Opcje konfiguracji rejestrowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Rozdzia³ 5

Przegl¹danie i zaawansowane udzia³y dyskowe . . . . . . . . . . . . . . . . 107

Przegl¹danie . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ró¿nice w systemach plików . . . . . . . . . . . . . . . . . .
Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix
Przekszta³canie nazw i wielkoœæ liter . . . . . . . . . . . . . .
Blokady i blokady oportunistyczne. . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

107
119
126
134
139

VI

Rozdzia³ 6

Spis treœci

U¿ytkownicy, bezpieczeñstwo i domeny . . . . . . . . . . . . . . . . . . . . . 147

U¿ytkownicy i grupy. . . . . . . . . .
Kontrolowanie dostêpu do udzia³ów.
Uwierzytelnianie u¿ytkowników. . .
Has³a. . . . . . . . . . . . . . . . . . .
Domeny Windows . . . . . . . . . . .
Skrypty logowania . . . . . . . . . . .

Rozdzia³ 7

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

147
150
155
163
174
182

Drukowanie i odwzorowywanie nazw . . . . . . . . . . . . . . . . . . . . . . 191

Wysy³anie zleceñ wydruku do Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Drukowanie na drukarkach udostêpnianych przez klienty Windows . . . . . . . . . . . . . . . . . . . 202
Odwzorowywanie nazw w Sambie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

Rozdzia³ 8

Dodatkowe informacje o Sambie . . . . . . . . . . . . . . . . . . . . . . . . . 219

Pomoc dla programistów . . . . . . . . . . . . . . . . . . .
Magiczne skrypty . . . . . . . . . . . . . . . . . . . . . . .
Internacjonalizacja . . . . . . . . . . . . . . . . . . . . . . .
Komunikaty WinPopup . . . . . . . . . . . . . . . . . . . .
Nowe opcje Samby . . . . . . . . . . . . . . . . . . . . . . .
Opcje ró¿ne . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie kopii zapasowych za pomoc¹ programu smbtar

Rozdzia³ 9

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

219
221
222
225
227
228
234

Rozwi¹zywanie problemów . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Skrzynka z narzêdziami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Drzewo b³êdów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Dodatkowe zasoby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

Dodatek A

Konfigurowanie Samby do obs³ugi SSL . . . . . . . . . . . . . . . . . . . . . 281

Certyfikaty . . . . . . . . . . . . . . .
Wymagania . . . . . . . . . . . . . . .
Instalowanie pakietu SSLeay . . . . .
Tworzenie certyfikatów dla klientów.
Konfigurowanie SSL Proxy . . . . . .
Opcje konfiguracji SSL . . . . . . . . .

Dodatek B

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

281
282
283
288
290
291

Optymalizowanie wydajnoœci Samby . . . . . . . . . . . . . . . . . . . . . . 297

Przyk³adowy pomiar wydajnoœci.
Optymalizowanie Samby . . . . .
Inne opcje Samby . . . . . . . . . .
Skalowanie serwerów Samby . . .

Dodatek C

.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

297
298
303
305

Spis opcji konfiguracyjnych Samby . . . . . . . . . . . . . . . . . . . . . . . 315

S³owniczek terminów u¿ywanych w spisie opcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Zmienne pliku konfiguracyjnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

Dodatek D

Spis demonów i poleceñ Samby . . . . . . . . . . . . . . . . . . . . . . . . . 351

Programy wchodz¹ce w sk³ad dystrybucji Samby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

Dodatek E

Pobieranie Samby za pomoc¹ systemu CVS . . . . . . . . . . . . . . . . . . 371

Dodatek F

Przyk³adowy plik konfiguracyjny . . . . . . . . . . . . . . . . . . . . . . . . . 373

Informacje licencyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

Przedmowa

Przedmowa

Jest dziewi¹ta rano, a ty w³aœnie przyszed³eœ do centrum komputerowego po odœwie¿aj¹cym œnie. Twój pager milczy od miesiêcy. ¯ycie administratora systemu jest
godne pozazdroszczenia – zreszt¹, czemu mia³oby byæ inaczej, skoro zarz¹dzasz
tak¹ sieci¹? Dwieœcie identycznych komputerów z tym samym systemem operacyjnym. Wszystkie drukarki s¹ pod³¹czone do sieci i dostêpne z dowolnego miejsca budynku, a dziêki dostarczonym przez producenta skryptom konfiguracyjnym wszyscy pracownicy firmy dok³adnie tak samo widz¹ przygotowane przez ciebie udzia³y
dyskowe. ¯yæ nie umieraæ. Rozsiadasz siê w fotelu i bierzesz pierwszy ³yk porannej
kawy...
I wtedy budzik wyrywa ciê ze s³odkich marzeñ. Jeœli jesteœ taki jak wiêkszoœæ administratorów sieci, to opisany scenariusz zdarza ci siê tylko w snach. Twój dzieñ
prawdopodobnie zaczyna siê od rozpaczliwej bieganiny, aby nak³oniæ do wspó³pracy cztery ró¿ne platformy sprzêtowe wyposa¿one w trzy odmienne systemy operacyjne – co mo¿e ci siê nawet udaæ pod warunkiem, ¿e telefon choæ na chwilê przestanie dzwoniæ. Wiêkszoœæ u¿ytkowników nie rozumie, czemu tak trudno uzyskaæ dostêp do pliku w innym komputerze albo wydrukowaæ coœ na zdalnej drukarce.
Dzienniki systemowe alarmuj¹, ¿e spóŸniasz siê ze sporz¹dzeniem kopii zapasowej.
Z nieznanej przyczyny pecety na drugim piêtrze nie mog¹ znaleŸæ serwera taœm. Co
mo¿e na to poradziæ administrator sieci?
To proste: wzi¹æ dzieñ wolnego, przeczytaæ tê ksi¹¿kê i poznaæ Sambê!

Pakiet Samba
Samba to pakiet narzêdzi umo¿liwiaj¹cych wspó³dzielenie zasobów, takich jak drukarki i pliki, w sieci. Byæ mo¿e jest to pewne uproszczenie, ale Sambê naprawdê
opracowano po to, aby u³atwiæ ci ¿ycie. Samba korzysta z protoko³u Server Message
Block (SMB), wspólnego produktu Microsoftu i IBM-u, w celu przesy³ania danych
miêdzy klientami Windows i serwerami uniksowymi w sieci TCP/IP.
Samba jest szczególnie atrakcyjna z nastêpuj¹cych powodów:
· U¿ywa tego samego protoko³u, z którego standardowo korzystaj¹ systemy operacyjne IBM-u i Microsoftu, pocz¹wszy od DOS-a 3.0. Oznacza to, ¿e rozumiej¹ go

VIII

Przedmowa

niemal wszystkie komputery Windows i nie ma potrzeby instalowania w nich dodatkowego oprogramowania klienckiego.
· Dzia³a na ró¿nych platformach, w tym w wiêkszoœci odmian Uniksa, OpenVMS,
OS/2, AmigaDOS i NetWare. Dziêki temu jeden program na serwerze mo¿e zapewniæ dostêp do plików i drukarek ca³ej gromadzie pecetów.
· Jest bezp³atna. Istnieje kilka produktów komercyjnych, które odpowiadaj¹ funkcjonalnoœci¹ Sambie, ale niektóre z nich s¹ doœæ drogie. Samba stanowi alternatywê wobec pakietów, które mog³yby powa¿nie nadszarpn¹æ bud¿et dzia³u
informatycznego. Jest dystrybuowana na zasadach Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) i jest uwa¿ana przez autorów za
oprogramowanie o otwartym Ÿródle (open source). Oznacza to, ¿e mo¿na bezp³atnie
pobraæ do swojego komputera zarówno aplikacjê, jak i jej kod Ÿród³owy, a w razie
potrzeby nawet poprawiæ oryginalny program.
· Administrowanie Samb¹ jest scentralizowane. Nie musisz biegaæ od komputera
do komputera z dyskietk¹ lub CD-ROM-em w rêku, chc¹c uaktualniæ oprogramowanie klienckie.
Samba jest kompletnym rozwi¹zaniem dla sieci lokalnych ka¿dej wielkoœci – od domowej sieci z dwoma komputerami do korporacyjnego monstrum z setkami wêz³ów. Samba jest ³atwa do zainstalowania i administrowania, zapewnia te¿ przezroczyste œrodowisko sieciowe, które udostêpnia u¿ytkownikom wszystkie zasoby potrzebne do pracy. Po skonfigurowaniu Samba pozwala na:
· dostarczanie uniksowych plików klientom dzia³aj¹cym pod kontrol¹ Windows,
OS/2 i innych systemów operacyjnych,
· dostêp uniksowych komputerów do plików PC,
· udostêpnianie drukarek sieciowych klientom Windows,
· œwiadczenie us³ug nazewniczych (rozg³oszeniowych i WINS),
· przegl¹danie zasobów sieciowych przez klientów Windows,
· tworzenie grup roboczych lub domen Windows,
· wymuszanie uwierzytelniania nazw u¿ytkowników i hase³ klientów.

Dla kogo przeznaczona jest ta ksi¹¿ka?
W za³o¿eniu odbiorcami tej ksi¹¿ki s¹ administratorzy Uniksa, którzy musz¹ udostêpniaæ zasoby sieciowe komputerom PC, oraz wszyscy, którzy chc¹ umieœciæ uniksowy serwer w pecetowym œrodowisku. Nie zamierzamy jednak obci¹¿aæ czytelników nauk¹ niezliczonych narzêdzi administracyjnych i fachowego s³ownictwa.
Choæ zak³adamy, ¿e znaj¹ oni podstawy administrowania uniksowym systemem,
nie kierujemy tej ksi¹¿ki do sieciowych ekspertów. Uczyniliœmy wszystko, co by³o
w naszej mocy, aby rozwiaæ w¹tpliwoœci dotycz¹ce mniej znanych definicji i terminów.
Poniewa¿ nie zak³adamy dog³êbnej znajomoœci systemu Windows, opiszemy czynnoœci instalacyjne po stronie Windows bardzo szczegó³owo, podaj¹c przyk³ady zarówno dla Windows 95/98, jak i Windows NT (miêdzy którymi wystêpuj¹ pewne

Uk³ad ksi¹¿ki

IX

subtelne ró¿nice). Jeœli chodzi o stronê uniksow¹, podamy przyk³ady dla dwóch popularnych odmian tego systemu – Linuksa 2.0 i Solarisa 2.6.

Przed instalacj¹ Samby
Zanim zaczniesz, powinieneœ dysponowaæ:
· CD-ROM-em z tej ksi¹¿ki (który zawiera Ÿród³ow¹ i binarn¹ dystrybucjê Samby
2.0.5) albo najnowsz¹ dystrybucj¹ pakietu, któr¹ mo¿esz pobraæ bezpoœrednio
z Internetu pod adresem http://www.samba.org.
· Nazwami i adresami IP serwerów i klientów, które bêd¹ korzystaæ z Samby,
mask¹ u¿ywan¹ w sieci oraz nazwami i adresami IP swoich serwerów nazw domenowych (DNS).

Uk³ad ksi¹¿ki
Ksi¹¿kê tê mo¿na z grubsza podzieliæ na dwie czêœci: instalowanie Samby (rozdzia³y
od 1 do 3) oraz konfigurowanie i optymalizowanie Samby (rozdzia³y od 4 do 9). Oto
zagadnienia omawiane w poszczególnych rozdzia³ach:
Rozdzia³ 1, Poznajemy Sambê
Rozdzia³ ten przedstawia wszystkie sk³adniki pakietu i skrótowo omawia sieci
NetBIOS i Windows.
Rozdzia³ 2, Instalowanie Samby w Uniksie
Ten rozdzia³ omawia konfigurowanie, kompilowanie, instalowanie i testowanie
serwera Samby na platformie uniksowej.
Rozdzia³ 3, Konfigurowanie klientów Windows
W tym rozdziale opisano konfigurowanie klientów Windows 95/98 i NT 4.0 do
wspó³pracy w sieci SMB. Znajduje siê tu tak¿e krótki opis funkcjonowania protoko³u SMB.
Rozdzia³ 4, Udzia³y dyskowe
Rozdzia³ ten opisuje poszczególne czêœci pliku konfiguracyjnego Samby i omawia konfigurowanie us³ug dyskowych.
Rozdzia³ 5, Przegl¹danie i zaawansowane udzia³y dyskowe
Ten rozdzia³ przedstawia opcje dyskowe i wyjaœnia us³ugi przegl¹dania w Sambie.
Rozdzia³ 6, U¿ytkownicy, bezpieczeñstwo i domeny
Rozdzia³ omawia dodawanie kont u¿ytkowników i mechanizmy bezpieczeñstwa
Samby oraz pokazuje, jak pracowaæ z zaszyfrowanymi i niezaszyfrowanymi has³ami.
Przedstawia tak¿e sposób konfigurowania Samby jako podstawowego kontrolera domeny dla klientów Windows 95/98 i NT.
Rozdzia³ 7, Drukowanie i odwzorowywanie nazw
Ten rozdzia³ opisuje konfigurowanie drukarek i us³ugi Windows Internet Name
Service (WINS) w Sambie.

X

Przedmowa

Rozdzia³ 8, Dodatkowe informacje o Sambie
Rozdzia³ ten zawiera omówienie innych czynnoœci konfiguracyjnych i administracyjnych, jak na przyk³ad tworzenie udzia³ów dyskowych na potrzeby pro gramistów, kwestie obs³ugi jêzyków narodowych i tworzenie kopii zapasowych
za pomoc¹ programu smbtar.
Rozdzia³ 9, Rozwi¹zywanie problemów
Jeœli Samba sprawia problemy, w tym doœæ obszernym rozdziale znajdziesz
wskazówki i rady dotycz¹ce radzenia sobie z nimi.
Dodatek A, Konfigurowanie Samby do obs³ugi SSL
Ten dodatek szczegó³owo omawia konfigurowanie Samby do obs³ugi po³¹czeñ
Secure Sockets Layer (SSL) miêdzy serwerem a klientami.
Dodatek B, Optymalizowanie wydajnoœci Samby
Opisano tu ró¿ne techniki maj¹ce na celu zwiêkszenie wydajnoœci Samby.
Dodatek C, Spis opcji konfiguracyjnych Samby
Ten dodatek opisuje wszystkie opcje konfiguracyjne, których mo¿na u¿yæ w pliku smb.conf.
Dodatek D, Spis demonów i poleceñ Samby
Zawiera opis wszystkich demonów i narzêdzi wchodz¹cych w sk³ad pakietu
Samba. Oprócz tego zamieszczamy listê serwerów bliŸniaczych (mirrorów) na
ca³ym œwiecie, z których mo¿na pobraæ Sambê.
Dodatek E, Pobieranie Samby za pomoc¹ systemu CVS
Ten dodatek omawia pobieranie najnowszej wersji Samby za pomoc¹ systemu
CVS.
Dodatek F, Przyk³adowy plik konfiguracyjny
Znajduje siê tu obszerny plik konfiguracyjny Samby, który móg³by znaleŸæ zastosowanie w du¿ej firmie. Opatrzyliœmy go komentarzami, aby wyjaœniæ bardziej
zaawansowane opcje.

Konwencje typograficzne
W ksi¹¿ce u¿yto 4 rodzajów czcionek o specjalnym przeznaczeniu:
Kursywa
Wystêpuje w nazwach plików, rozszerzeniach plików, adresach URL, adresach
internetowych, plikach wykonywalnych, poleceniach oraz miejscach, na które
chciano zwróciæ szczególn¹ uwagê.
Sta³a szerokoœæ liter
Wystêpuje w opcjach konfiguracyjnych Samby i pozosta³ym kodzie w tekœcie
ksi¹¿ki oraz w tekstach pojawiaj¹cych siê na ekranie komputera.
Sta³a szerokoœæ liter, pogrubiona
Wystêpuje w poleceniach wpisywanych przez u¿ytkownika oraz nowych
opcjach konfiguracyjnych, na które chcemy zwróciæ uwagê.

Podziêkowania

XI

Sta³a szerokoœæ liter, kursywa
Wystêpuje w zastêpowalnych parametrach w kodzie i liniach poleceñ.
Ikona sowy oznacza notê z wa¿nym komentarzem do pobliskiego tekstu.

Ikona indyka oznacza ostrze¿enie dotycz¹ce pobliskiego tekstu.

Proœba o komentarze
Jako czytelnik tej ksi¹¿ki mo¿esz pomóc nam w poprawieniu jej nastêpnego wydania. Jeœli znajdziesz w niej jakieœ b³êdy lub nieœcis³oœci, poinformuj o nich wydawnictwo O'Reilly. Daj nam tak¿e znaæ o wszystkich mylnych stwierdzeniach lub niezrozumia³ych wyjaœnieniach. Korespondencjê prosimy kierowaæ na adres:
O'Reilly & Associates
101 Morris Street
Sebastopol, CA 95472
1-800-998-9938 (w Stanach Zjednoczonych lub Kanadzie)
1-707-829-0515 (numer miêdzynarodowy/lokalny)
1-707-829-0104 (fax)
bookquestions@ora.com
Powiedz, co mo¿emy zrobiæ, aby ta ksi¹¿ka sta³a siê bardziej u¿yteczna. Potraktujemy serio wszystkie komentarze i uczynimy wszystko, aby ta ksi¹¿ka by³a tak przydatna, jak to mo¿liwe.

Podziêkowania
Robert Eckstein
Przede wszystkim chcia³bym z³o¿yæ podziêkowanie Dave'owi Collierowi-Brownowi
i Peterowi Kelly'emu za pomoc w tworzeniu tej ksi¹¿ki. Chcia³bym tak¿e podziêkowaæ
redaktorom technicznym, którzy pomogli nadaæ tej ksi¹¿ce ostateczny kszta³t w jak¿e
krótkim terminie: Matthew Temple'owi, Jeremy'emu Allisonowi i oczywiœcie Andrew
Tridgellowi. Andrew i Jeremy zas³uguj¹ na szczególne uznanie, nie tylko za stworzenie
tak wspania³ego programu, ale tak¿e za nieocenione wsparcie w koñcowym etapie pisania tej ksi¹¿ki – kapelusze z g³ów! Ciep³y uœcisk dla mojej ¿ony, Michelle, która znów
musia³a znosiæ mê¿a przesi¹kniêtego kofein¹ i staraj¹cego siê nadgoniæ terminy. Dziêkujê równie¿ Dave'owi Sifry i personelowi LinuxCare z San Francisco za ugoszczenie
mnie na czas wizyty Andrew Tridgella. Wreszcie chcia³bym wyraziæ najg³êbsz¹ wdziêcznoœæ g³ównemu redaktorowi, Andy'emu Oramowi, który bardzo cierpliwie prowadzi³
nas przez poszczególne etapy pisania tej ksi¹¿ki, a¿ sta³a siê taka, jak¹ byæ powinna.

XII

Przedmowa

David Collier-Brown
Przede wszystkim chcia³bym podziêkowaæ Joyce, która zdo³a³a wytrzymaæ ze mn¹, kiedy by³em poch³oniêty wspó³tworzeniem tej ksi¹¿ki. Dziêkujê Andy'emu Oramowi za
krytykê i zaproszenie mnie do udzia³u w tym przedsiêwziêciu; personelowi Opcomu,
który tolerowa³ jawnego wariata w swoich szeregach, oraz Ianowi MacMillanowi, który
z w³asnej inicjatywy prze³o¿y³ moj¹ pisaninê z komputerowego na angielski. Specjalne
podziêkowania sk³adam Perry'emu Donhamowi, Drew Sullivan i Jerry'emu DeRoo.

Peter Kelly
Ksi¹¿ka ta zawdziêcza swoje powstanie kilku osobom, przed którymi chcê siê tu nisko
pok³oniæ. Dave Collier-Brown, a nastêpnie Bob Eckstein przejêli moj¹ czêœæ projektu
i naznaczyli j¹ doskona³ym stylem i profesjonalizmem; trudno mi wyraziæ wdziêcznoœæ
za kszta³t, jaki nadali tej ksi¹¿ce. Redaktor Andy Oram to zdecydowanie najcierpliwszy
i najsympatyczniejszy cz³owiek, jakiego mia³em przyjemnoœæ spotkaæ. Nie s¹dzê, ¿e
bym uczestniczy³ w pisaniu tej ksi¹¿ki bez Xaviera Cazina z wydawnictwa O'Reilly,
który z³o¿y³ mi tê propozycjê po przeczytaniu mojego artyku³u w „Linux Journal”.
Chcia³bym te¿ podziêkowaæ wszystkim konsultantom z JDP.COM (Jerry'emu, Peggyann, Drew, Gordowi, Jerome'owi, Markowi, Rickowi – nie zdo³am wymieniæ wszyst kich!) za to, ¿e pozwolili mi dalej ze sob¹ pracowaæ. Dziêkujê wszystkim z wydawnictwa
O'Reilly, z którymi wspó³pracowa³em. Nie mogê te¿ pomin¹æ zespo³u Samby, który
stworzy³ program wart opisania w ksi¹¿ce. I najwa¿niejsze – dziêkujê ci, Kate McKay,
¿e jesteœ ze mn¹ od tak dawna!

Wszyscy chcielibyœmy serdecznie podziêkowaæ Perry'emu Donhamowi, który pomóg³ stworzyæ pierwszy szkic tej ksi¹¿ki. Choæ inne obowi¹zki uniemo¿liwi³y mu
dalsz¹ wspó³pracê, jego sugestie w znacznej mierze ukszta³towa³y tê ksi¹¿kê. Czujemy siê w obowi¹zku nadmieniæ, ¿e fragmenty rozdzia³u o przegl¹daniu pochodz¹
z tekstu napisanego dla wydawnictwa O'Reilly przez Dana Shearera.
Mamy wielki d³ug wdziêcznoœci u pracowników dzia³u produkcyjnego wydawnictwa za znakomicie wykonan¹ pracê. Sarah Jane Shangraw pracowa³a przez d³ugie
godziny, aby uwzglêdniæ nasze niekoñcz¹ce siê poprawki, a Rob Romano niestrudzenie edytowa³ rysunki, doprowadzaj¹c je do doskona³oœci. Specjalne podziêkowania za pomoc nale¿¹ siê Claire Cloutier LeBlanc, Rhonowi Porterowi i Mike'owi
Sierrze – bez nich ta ksi¹¿ka zapewne nie ukaza³aby siê w ogóle, a jeœli nawet, to
spóŸniona przynajmniej o rok.

Poznajemy Sambê

1

Rozdzia³ 1: Poznajemy Sambê

Jeœli jesteœ typowym administratorem systemu, doskonale wiesz, co to znaczy byæ
zawalonym prac¹. Twój dzieñ wype³niaj¹ kwestie niezgodnoœci sprzêtu i oprogramowania, awarie systemu, k³opoty z kopiami zapasowymi i niekoñcz¹ce siê skargi
podirytowanych u¿ytkowników. Pomys³ dodawania kolejnego programu do mie szanki narzêdzi, z którymi musisz codziennie siê zmagaæ, mo¿e wydaæ siê nie na
miejscu. Jeœli jednak jesteœ zdecydowany uproœciæ swoje œrodowisko robocze i zmniejszyæ nak³ad pracy potrzebny do utrzymania go w ruchu, Samba mo¿e okazaæ siê
w³aœnie tym, na co czeka³eœ.
Oto przyk³ad: jeden z autorów tej ksi¹¿ki opiekowa³ siê 70 programistami uniksowymi, którzy korzystali z 5 uniksowych serwerów. Jego s¹siad nadzorowa³ 20 u¿ytkowników Windows 3.1 i 5 serwerów Windows NT i OS/2. Mówi¹c oglêdnie, administrator Windows 3.1 mia³ pe³ne rêce roboty. Kiedy wreszcie odszed³ z pracy, a kontroler domeny odmówi³ pos³uszeñstwa, na pomoc przysz³a Samba. Nasz autor szybko zast¹pi³ serwery NT i OS/2 Samb¹ dzia³aj¹c¹ na serwerze uniksowym, a z czasem
zakupi³ komputery PC dla wiêkszoœci programistów. Okaza³o siê przy tym, ¿e nie
trzeba zatrudniaæ nowego pracownika – administrator zarz¹dza teraz jednym scentralizowanym serwerem uniksowym, zamiast 50 rozproszonymi komputerami PC.
Jeœli zdajesz sobie sprawê, ¿e twoja sieæ sprawia problemy, i szukasz lepszych rozwi¹zañ, zachêcamy ciê do przeczytania tej ksi¹¿ki. Jeœli zaœ s³ysza³eœ ju¿ o Sambie
i zastanawiasz siê, czy mo¿e ci siê do czegoœ przydaæ, odpowiedŸ znajdziesz w³aœnie
tutaj. Bêdziemy towarzyszyæ ci w drodze do poznania Samby i jej pe³nego potencja³u. Ju¿ nied³ugo bêdziesz umia³ zapewniæ uniksowe us³ugi wszystkim komputerom Windows – bez tracenia czasu i pieniêdzy. Brzmi zachêcaj¹co? Doskonale, zatem zaczynamy.

Co to jest Samba?
Samba to zbiór uniksowych aplikacji rozumiej¹cych protokó³ SMB (Server Message
Block). Wiele systemów operacyjnych, w tym Windows i OS/2, u¿ywa SMB do komunikacji sieciowej miêdzy klientami i serwerami. Samba umo¿liwia uniksowym
serwerom porozumiewanie siê za pomoc¹ tego samego protoko³u, którego u¿ywaj¹

2

Rozdzia³ 1: Poznajemy Sambê

systemy Microsoftu. Zatem uniksowy komputer z Samb¹ mo¿e udawaæ serwer
w sieci Microsoftu i udostêpniaæ nastêpuj¹ce us³ugi:
· wspó³dzieliæ systemy plików,
· wspó³dzieliæ drukarki pod³¹czone do serwera i klientów,
· wspomagaæ klientów w przegl¹daniu Otoczenia sieciowego,
· uwierzytelniaæ klientów loguj¹cych siê do domeny Windows,
· wspomagaæ odwzorowywanie nazw jako serwer WINS.
Samba jest dzie³em Andrew Tridgella, który obecnie kieruje grup¹ programistów
Samby ze swojego domu w Canberrze w Australii. Projekt ruszy³ w 1991 roku, kiedy
na potrzeby swojej lokalnej sieci Andrew napisa³ program serwera plików, który
obs³ugiwa³ protokó³ DEC firmy Digital Pathworks. Choæ wówczas Andrew nie by³
tego œwiadom, protokó³ ten okaza³ siê póŸniej protoko³em SMB. Po kilku latach Andrew rozwin¹³ swój serwer SMB i zacz¹³ dystrybuowaæ go w Internecie pod nazw¹
SMB Server. Nazwê tê trzeba by³o jednak zmieniæ – nosi³ j¹ produkt innej firmy –
wiêc Andrew spróbowa³ uniksowego podejœcia do zmiany nazw plików:
grep -i 's.*m.*b' /usr/dict/words

OdpowiedŸ brzmia³a:
salmonberry samba sawtimber scramble

I tak narodzi³a siê nazwa „Samba”.
Dziœ g³ównymi sk³adnikami pakietu Samba s¹ dwa uniksowe demony, które udostêpniaj¹ wspó³dzielone zasoby – zwane udzia³ami – sieciowym klientom SMB.
(Udzia³y bywaj¹ nazywane tak¿e us³ugami). Tymi demonami s¹:
smbd
Demon umo¿liwiaj¹cy wspó³dzielenie plików i drukarek w sieci SMB i zapewniaj¹cy uwierzytelnianie klientów SMB.
nmbd
Demon œwiadcz¹cy us³ugi Windows Internet Name Service (WINS) i wspomagaj¹cy przegl¹danie zasobów sieci.
Samba jest obecnie poprawiana i rozwijana przez grupê ochotników pod przewodnictwem Andrew Tridgella. Podobnie jak system operacyjny Linux, Samba jest uwa¿ana
przez autorów za oprogramowanie o otwartym Ÿródle (Open Source Software, OSS) i rozpowszechniana na warunkach Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL). Od samego pocz¹tku prace nad Samb¹ s¹ w czêœci sponsorowane
przez Narodowy Uniwersytet Australii, gdzie Andrew uzyska³ swój tytu³ naukowy.
Czêœæ prac wspar³y niezale¿ne firmy, takie jak Whistle i SGI. W³aœnie fakt, ¿e zarówno
instytucje komercyjne, jak i niekomercyjne wydaj¹ pieni¹dze na projekt Open Source,
stanowi najwa¿niejsze œwiadectwo popularnoœci Samby.
Microsoft równie¿ przyczyni³ siê do rozwoju pakietu, upubliczniaj¹c definicjê protoko³u SMB i jego internetowej odmiany, Common Internet File System (CIFS), w standardowym dokumencie Request For Comments (RFC). CIFS to nowa nazwa dla
przysz³ych wersji protoko³u SMB, który bêdzie u¿ywany w nowych produktach

Do czego mo¿e siê przydaæ Samba?

3

Microsoftu – oba terminy bêd¹ w tej ksi¹¿ce u¿ywane zamiennie. Zatem czêsto nazwê protoko³u bêdziemy zapisywaæ jako „SMB/CIFS”.

Do czego mo¿e siê przydaæ Samba?
Jak wyjaœniono wczeœniej, Samba umo¿liwia koegzystencjê komputerów z Uniksem
i Windows w ramach jednej sieci. Istnieje jednak kilka bardziej konkretnych powodów, dla których warto umieœciæ w sieci serwer Samby:
· Nie chcesz – lub nie mo¿esz – p³aciæ za pe³ny serwer Windows NT, ale przyda³oby
ci siê narzêdzie o podobnych funkcjach.
· Chcesz stworzyæ wspólny obszar dla danych lub katalogów u¿ytkowników
w trakcie migracji z Windows do Uniksa lub vice versa.
· Chcesz, ¿eby uniksowe i windowsowe stacje robocze wspó³dzieli³y drukarki.
· Chcesz mieæ dostêp do plików NT z uniksowego serwera.
Przyjrzyjmy siê Sambie w dzia³aniu. Za³ó¿my, ¿e mamy nastêpuj¹c¹ konfiguracjê
sieci: komputer uniksowy z zainstalowan¹ Samb¹, któremu nadamy nazwê hydra,
oraz dwa klienty Windows, którym nadamy nazwy feniks i chimera, wszystkie
po³¹czone sieci¹ lokaln¹ (Local Area Network, LAN). Za³ó¿my tak¿e, ¿e do hydry
pod³¹czone s¹ lokalna drukarka atramentowa, lp, oraz udzia³ dyskowy o nazwie
siec i ¿e oba te zasoby bêd¹ udostêpniane pozosta³ym komputerom. Sieæ ta jest
przedstawiona na rysunku 1.1.

Rysunek 1.1. Prosta konfiguracja sieciowa z serwerem Samby

W tej sieci wszystkie komputery s¹ w tej samej grupie roboczej. Grupa robocza to po
prostu etykieta identyfikuj¹ca arbitralny zbiór komputerów i ich zasobów w sieci
SMB. W sieci mo¿e jednoczeœnie istnieæ kilka grup roboczych, ale w naszej przyk³adowej
sieci bêdziemy mieli tylko jedn¹ grupê o nazwie PROSTA_GRUPA.

4

Rozdzia³ 1: Poznajemy Sambê

Wspó³dzielenie dysków
Jeœli wszystko jest poprawnie skonfigurowane, powinniœmy zobaczyæ serwer Samby, hydrê, w oknie Otoczenia sieciowego na pulpicie windowsowego komputera
feniks. Widaæ to na rysunku 1.2, który przedstawia Otoczenie sieciowe feniksa,
w tym hydrê i pozosta³e komputery nale¿¹ce do grupy roboczej PROSTA_GRUPA.
Zauwa¿, ¿e u góry listy widoczna jest ikona Ca³a sieæ. Jak przed chwil¹ wspomnieliœmy, w sieci SMB mo¿e jednoczeœnie istnieæ kilka grup roboczych. Jeœli u¿ytkownik
kliknie ikonê Ca³a sieæ, zobaczy listê wszystkich grup istniej¹cych w sieci.

Rysunek 1.2. Okno Otoczenia sieciowego

Mo¿emy przyjrzeæ siê bli¿ej hydrze, klikaj¹c dwukrotnie jej ikonê. Tym samym
po³¹czymy siê z hydr¹ i za¿¹damy przes³ania listy jej udzia³ów – zasobów dyskowych i drukarek – udostêpnianych klientom. W tym przypadku widzimy drukarkê
o nazwie lp oraz udzia³ dyskowy o nazwie siec, co przedstawia rysunek 1.3.
Zwróæ uwagê, ¿e w oknie Windows nazwy hostów s¹ pisane ma³ymi literami
z pierwsz¹ du¿¹ (Hydra). Wielkoœæ liter w nazwach hostów nie ma znaczenia, wiêc
w ró¿nych oknach i wynikach poleceñ bêdziesz trafia³ na nazwy pisane ró¿nie: hydra, Hydra i HYDRA, odnosz¹ce siê jednak do tego samego komputera. Dziêki Sambie Windows 98 rozpoznaje serwer uniksowy jako serwer SMB i mo¿e otworzyæ folder siec zupe³nie tak samo, jak inny folder systemowy.

Rysunek 1.3. Udzia³y udostêpniane przez serwer hydra widziane z komputera feniks

Systemy Windows 95/98/NT umo¿liwiaj¹ mapowanie litery dysku na katalog sieciowy za pomoc¹ opcji Mapuj dysk sieciowy w Eksploratorze Windows*. Kiedy to
zrobisz, twoje aplikacje bêd¹ mog³y korzystaæ z folderu sieciowego, u¿ywaj¹c standardowej litery dysku. Dziêki temu bêdziesz móg³ zapisywaæ w nim dane, instalo* Mo¿na tak¿e klikn¹æ prawym przyciskiem myszy wspó³dzielony zasób w oknie Otoczenia sieciowego
i wybraæ z menu polecenie Mapuj dysk sieciowy.

Do czego mo¿e siê przydaæ Samba?

5

waæ i uruchamiaæ z niego programy, a nawet zabezpieczyæ dostêp do niego za pomoc¹ has³a. Rysunek 1.4 przedstawia przyk³ad mapowania litery dysku na katalog
sieciowy.
Przyjrzyj siê uwa¿nie polu Œcie¿ka: w oknie dialogowym z rysunku 1.4. Katalog
w zdalnym komputerze jest reprezentowany przez dwa odwrotne ukoœniki, po których nastêpuje nazwa zdalnego komputera, kolejny odwrotny ukoœnik oraz nazwa
sieciowego katalogu, jak ni¿ej:
\\zdalny-komputer\katalog

Zapis ten znany jest w œwiecie Windows jako uniwersalna konwencja nazewnicza
(Universal Naming Convention, UNC). Na przyk³ad okno dialogowe z rysunku 1.4
reprezentuje katalog siec w serwerze hydra jako:
\\HYDRA\siec

Rysunek 1.4. Mapowanie katalogu sieciowego na windowsow¹ literê dysku

Zapewne przypomina ci to jednolity lokalizator zasobów (Uniform Resource Locator,
URL), u¿ywany przez przegl¹darki WWW, takie jak Microsoft Explorer i Netscape
Navigator, do nawi¹zywania po³¹czeñ z serwerami internetowymi. Nie myl tych
dwóch notacji: przegl¹darki WWW zwykle u¿ywaj¹ zwyk³ych, a nie odwrotnych
ukoœników, a przed pierwszymi dwoma ukoœnikami znajduje siê nazwa protoko³u
transmisji danych (na przyk³ad ftp, http) oraz dwukropek. Prawdê mówi¹c, adresy
URL i UNC to dwie zupe³nie ró¿ne rzeczy.
Kiedy skonfigurujesz stacjê sieciow¹, system Windows i jego programy bêd¹ zachowywa³y siê tak, jakby katalog sieciowy by³ lokalnym dyskiem. Jeœli masz aplikacje,
które umo¿liwiaj¹ wspó³pracê wielu u¿ytkowników w sieci, mo¿esz zainstalowaæ je

6

Rozdzia³ 1: Poznajemy Sambê

na stacji sieciowej*. Rysunek 1.5 pokazuje, jak taka stacja sieciowa wygl¹da na tle innych urz¹dzeñ pamiêciowych Windows 95. Zwróæ uwagê na ikonê dysku po³¹czonego z przewodem, która wskazuje, ¿e jest to dysk sieciowy, a nie sta³y.

Rysunek 1.5. Katalog sieciowy mapowany przez klienta na literê dysku G

Z naszego komputera Windows NT Workstation, chimery, Samba niemal niczym nie
ró¿ni siê od Windows 98. Rysunek 1.6 przedstawia ten sam widok hydry z okna Otoczenia sieciowego w Windows NT 4.0. Skonfigurowanie stacji sieciowej za pomoc¹ opcji
Mapuj dysk sieciowy w Windows NT Workstation 4.0 da³oby identyczny rezultat.

Rysunek 1.6. Udzia³y udostêpniane przez hydrê (ogl¹dane z chimery)

Wspó³dzielenie drukarki
Prawdopodobnie zauwa¿y³eœ, ¿e wœród udzia³ów udostêpnianych przez hydrê
(patrz rysunek 1.3) pojawia siê drukarka lp. Oznacza to, ¿e uniksowy serwer ma
drukarkê, której mog¹ u¿ywaæ wszystkie klienty SMB w grupie roboczej. Dane
wysy³ane do drukarki przez ró¿ne klienty bêd¹ buforowane na uniksowym serwerze i drukowane w takiej kolejnoœci, w jakiej zosta³y odebrane.
Konfigurowanie udostêpnianej przez Sambê drukarki po stronie Windows jest jeszcze ³atwiejsze, ni¿ konfigurowanie udzia³u dyskowego. Klikaj¹c dwukrotnie ikonê
drukarki i okreœlaj¹c jej producenta i model, mo¿emy zainstalowaæ jej sterownik
w kliencie. System Windows bêdzie móg³ wówczas poprawnie formatowaæ informacje przesy³ane do drukarki sieciowej i korzystaæ z niej tak, jakby by³a pod³¹czona
lokalnie (jak to zrobiæ, wyjaœnimy dalej w tym rozdziale). Rysunek 1.7 przedstawia
* Trzeba zaznaczyæ, ¿e wiele umów licencyjnych zabrania instalowania programu w sieci tak, aby mog³o
z niego korzystaæ wielu u¿ytkowników. Nale¿y sprawdziæ do³¹czon¹ do produktu licencjê i upewniæ siê,
czy zezwala ona na tak¹ instalacjê.

Do czego mo¿e siê przydaæ Samba?

7

skonfigurowan¹ drukarkê sieciow¹ w oknie Drukarki w Windows 98. Podobnie jak
w przypadku dysku, ikona przedstawia drukarkê pod³¹czon¹ do przewodu, identyfikuj¹c j¹ tym samym jako drukarkê sieciow¹.

Rysunek 1.7. Drukarka sieciowa udostêpniana przez hydrê (ogl¹dana z chimery)

Ogl¹danie zasobów od strony Uniksa
Jak wspomniano wczeœniej, Samba z perspektywy Uniksa jest zbiorem demonów.
Mo¿esz obejrzeæ je za pomoc¹ uniksowych poleceñ ps i netstat, mo¿esz przeczytaæ generowane przez nie komunikaty w ich w³asnych plikach diagnostycznych albo
za poœrednictwem dziennika syslog (w zale¿noœci od konfiguracji Samby) i mo ¿esz skonfigurowaæ je, modyfikuj¹c plik w³aœciwoœci Samby: smb.conf. Oprócz tego,
jeœli chcesz wiedzieæ, co w danej chwili robi¹ poszczególne demony, Samba dysponuje programem smbstatus, który wyœwietla wszystkie niezbêdne informacje. Oto
przyk³ad:
# smbstatus
Samba version 2.0.4
Service
uid
gid
pid
machine
---------------------------------------------siec
davecb
davecb
7470
feniks (192.168.220.101) Sun May 16
siec
davecb
davecb
7589
chimera (192.168.220.102) Sun May 16
Locked files:
Pid
DenyMode
R/W
Oplock
Name
-------------------------------------------------7589
DENY_NONE RDONLY
EXCLUSIVE+BATCH /home/samba/quicken/inet/common/
system/help.bmp
Sun May 16 21:23:40 1999
7470
DENY_WRITE RDONLY
NONE
/home/samba/word/office/findfast.exe
Sun May 16 20:51:08 1999
7589
DENY_WRITE RDONLY
EXCLUSIVE+BATCH /home/samba/quicken/lfbmp70n.dll
Sun May 16 21:23:39 1999
7589
DENY_WRITE RDWR
EXCLUSIVE+BATCH /home/samba/quicken/inet/qdata/
runtime.dat
Sun May 16 21:23:41 1999
7470
DENY_WRITE RDONLY
EXCLUSIVE+BATCH /home/samba/word/office/osa.exe
Sun May 16 20:51:09 1999
7589
DENY_WRITE RDONLY
NONE
/home/samba/quicken/qversion.dll
Sun May 16 21:20:33 1999
7470
DENY_WRITE RDONLY
NONE
/home/samba/quicken/
qversion.dll
Sun May 16 20:51:11 1999

8

Rozdzia³ 1: Poznajemy Sambê

Share mode memory usage (bytes):
1043432(99%) free + 4312(0%) used + 832(0%) overhead = 1048576(100%) total

Status Samby jest wyra¿ony trzema zbiorami danych, z których ka¿dy zajmuje oddzieln¹ sekcjê. Pierwsza sekcja informuje, jakie komputery s¹ po³¹czone z serwerem
Samby, identyfikuj¹c ka¿dy z nich za pomoc¹ nazwy komputera (feniks i chimera) oraz adresu IP. Druga sekcja zawiera nazwy i stany wspó³dzielonych plików,
które s¹ obecnie w u¿yciu, w tym tryb dostêpu (zapis i odczyt) oraz ewentualne blokady plików. Wreszcie Samba raportuje iloœæ pamiêci przydzielonej zarz¹dzanym
przez siebie udzia³om, w tym czêœæ aktywnie u¿ywan¹ przez udzia³y i pewn¹ czêœæ
nadmiarow¹ (zwróæ uwagê, ¿e to nie to samo, co ca³kowita iloœæ pamiêci u¿ywana
przez procesy smbd i nmbd).
Nie przejmuj siê, jeœli ta statystyka jest dla ciebie niejasna. W miarê czytania tej
ksi¹¿ki stanie siê bardziej zrozumia³a.

Poznajemy sieæ SMB/CIFS
Po tym krótkim wprowadzeniu zapoznamy siê ze œrodowiskiem zaadoptowanym
przez Sambê: sieci¹ SMB/CIFS. Operacje sieciowe w SMB znacznie ró¿ni¹ siê od
pracy w uniksowej sieci TCP/IP – trzeba nauczyæ siê kilku nowych pojêæ i przyswoiæ
sobie mnóstwo informacji. Zaczniemy od podstawowych koncepcji dotycz¹cych sieci SMB, póŸniej opiszemy, jak zaimplementowa³ j¹ Microsoft, a wreszcie poka¿emy,
gdzie na tym tle plasuje siê Samba.

NetBIOS
Cofnijmy siê nieco w czasie. W roku 1984 w IBM-ie opracowano prosty interfejs programowy aplikacji (Application Programming Interface, API) do ³¹czenia komputerów
w sieæ, który nazwano Network Basic Input/Output System (NetBIOS). Interfejs NetBIOS zapewnia³ fundamentalny mechanizm ³¹czenia siê aplikacji z innymi komputerami i wspó³dzielenia z nimi danych.
Interfejs NetBIOS mo¿na uwa¿aæ za sieciowe rozszerzenie standardowych wywo³añ
interfejsu BIOS. W BIOS-ie ka¿de niskopoziomowe wywo³anie jest sprzê¿one ze
sprzêtem lokalnego komputera i nie musi podró¿owaæ przez sieæ do miejsca przeznaczenia. Jednak¿e NetBIOS pierwotnie musia³ wymieniaæ instrukcje z innymi
komputerami po³¹czonymi sieciami IBM PC lub Token Ring. Wymaga³ zatem niskopoziomowego protoko³u transportowego, który przenosi³by ¿¹dania miêdzy komputerami.
Pod koniec roku 1985 w IBM-ie opracowano taki protokó³, który po scaleniu z interfejsem NetBIOS otrzyma³ nazwê NetBIOS Extended User Interface (NetBEUI). Protokó³ NetBEUI zaprojektowano na potrzeby ma³ych sieci lokalnych. Pozwala³ on komputerom na zarezerwowanie nazwy (nie d³u¿szej ni¿ 15 znaków), która w danej
chwili nie by³a u¿ywana w sieci. Przez ma³¹ sieæ lokaln¹ rozumiemy sieæ o liczbie
wêz³ów mniejszej ni¿ 255, co ju¿ w 1985 uwa¿ano za praktyczne ograniczenie!

Poznajemy sieæ SMB/CIFS

9

Protokó³ NetBEUI by³ powszechnie wykorzystywany w aplikacjach sieciowych,
w tym tych pisanych dla Windows for Workgroups. PóŸniej pojawi³y siê równie¿
implementacje NetBIOS-u ponad protoko³ami sieciowymi IPX Novella, konkuruj¹c
z rozwi¹zaniami opartymi na NetBEUI. Jednak¿e spo³ecznoœæ internetowa preferowa³a protoko³y TCP/IP i UDP/IP, wiêc oparcie interfejsu NetBIOS o te protoko³y
wkrótce sta³o siê koniecznoœci¹.
Jak wiadomo, TCP/IP u¿ywa liczb do reprezentowania adresów komputerów (na
przyk³ad 192.169.220.100), natomiast NetBIOS tylko nazw. Pogodzenie tych wymagañ by³o kluczowym problemem na drodze do po³¹czenia obu protoko³ów. W 1987
roku grupa Internet Engineering Task Force (IETF) opublikowa³a dwa dokumenty
standaryzacyjne, zatytu³owane RFC 1001 i 1002, które definiowa³y sposób dzia³ania
NetBIOS-u ponad sieci¹ TCP/UDP. Dokumenty te do dziœ s¹ wyroczni¹ dla istniej¹cych implementacji NetBIOS-u, ³¹cznie z tymi obecnymi w systemach operacyjnych Windows Microsoftu, a tak¿e w pakiecie Samba.
Obecnie standard definiowany przez te dokumenty znany jest jako NetBIOS over
TCP/IP, w skrócie NBT. Standard NBT (RFC 1001/1002) definiuje trzy us³ugi sieciowe:
· us³ugê nazewnicz¹,
· dwie us³ugi komunikacyjne: datagramy i sesje.
Us³uga nazewnicza rozwi¹zuje wspomniany wy¿ej problem z t³umaczeniem adresów na nazwy: pozwala ka¿demu komputerowi zadeklarowaæ w³asn¹ nazwê w sieci, która mo¿e zostaæ przet³umaczona na czytelny dla komputerów adres IP, podobnie jak us³uga DNS w Internecie. Us³ugi datagramowe i sesyjne to wtórne protoko³y
komunikacyjne, s³u¿¹ce do transmitowania danych miêdzy NetBIOS-owymi komputerami.

Uzyskiwanie nazwy
Nadanie imienia cz³owiekowi jest proste. Komputer w sieci NetBIOS ma z tym nieco
wiêcej k³opotów. Przyjrzyjmy siê kilku zagadnieniom.
W œwiecie NetBIOS-u ka¿dy w³¹czaj¹cy siê do sieci komputer próbuje okreœliæ
w³asn¹ nazwê; nazywamy to rejestrowaniem nazwy. Jednak¿e dwa komputery w tej
samej sieci nie mog¹ zarejestrowaæ takiej samej nazwy; myli³oby to pozosta³e komputery, które chcia³yby nawi¹zaæ komunikacjê z którymkolwiek z nich. Istniej¹ dwa
sposoby rozwi¹zania tego problemu:
· Wykorzystanie serwera nazw NetBIOS-owych (NetBIOS Name Server, NBNS),
który bêdzie zapamiêtywa³ wszystkie nazwy zarejestrowane przez hosty.
· Pozwolenie ka¿demu komputerowi w sieci na obronê swojej nazwy, kiedy inny
komputer spróbuje jej u¿yæ.
Rysunek 1.8 przedstawia (nieudan¹) rejestracjê nazwy w obecnoœci serwera NBNS
i bez niego.

10

Rozdzia³ 1: Poznajemy Sambê

Rysunek 1.8. Rejestracja nazw z serwerem NBNS i bez niego

Oprócz tego musi istnieæ metoda przet³umaczenia nazwy NetBIOS-owej na konkretny adres IP, czyli odwzorowania nazwy. Tak¿e i tutaj mo¿liwe s¹ dwa podejœcia:
· Ka¿dy komputer raportuje swój adres IP, kiedy „us³yszy” rozg³oszeniowe pytanie o swoj¹ nazwê.
· Serwer NBNS t³umaczy nazwy NetBIOS-owe na adresy IP.
Rysunek 1.9 ilustruje te dwie metody odwzorowywania nazw.
U¿ycie serwera NBNS mo¿e przynieœæ spore korzyœci. Najlepiej wyjaœniæ to na
przyk³adzie sieci bez takiego serwera.
W takim przypadku uruchomiony komputer rozg³asza komunikat, próbuj¹c zarejestrowaæ pewn¹ nazwê NetBIOS-ow¹ jako swoj¹ w³asn¹. Jeœli po kilku próbach rejestracji nikt nie zg³asza zastrze¿eñ, komputer mo¿e zatrzymaæ nazwê. Jeœli jednak
inny komputer w lokalnej podsieci u¿ywa ju¿ tej nazwy, wyœle on do próbuj¹cego
siê zarejestrowaæ klienta komunikat, ¿e nazwa jest ju¿ zajêta. Proces ten znany jest
jako obrona nazwy hosta. Metoda ta przydaje siê wtedy, kiedy jeden z klientów niespodziewanie od³¹czy siê od sieci (wówczas inny host mo¿e bez problemów przej¹æ
jego nazwê), ale wprowadza do sieci nadmiern¹ iloœæ ruchu spowodowanego czymœ
tak banalnym jak rejestracja nazwy.

Poznajemy sieæ SMB/CIFS

11

Rysunek 1.9. Odwzorowywanie nazw z serwerem NBNS i bez niego

W obecnoœci serwera NBNS rzeczy maj¹ siê podobnie, ale komunikacja jest ograniczona do zg³aszaj¹cego ¿¹danie klienta i serwera NBNS. Podczas wystêpowania
o zarejestrowanie nazwy nie s¹ stosowane rozg³oszenia; komunikat jest wysy³any
bezpoœrednio od klienta do serwera, a ten udziela odpowiedzi, czy dana nazwa jest
ju¿ zajêta. Taki model komunikacji nazywamy dwupunktowym – ma on niekwestionowane zalety w sieciach sk³adaj¹cych siê z kilku podsieci, poniewa¿ rutery s¹ czêsto skonfigurowane tak, ¿e blokuj¹ pakiety rozg³oszeniowe kierowane do wszyst kich komputerów w podsieci.
Te same uwagi odnosz¹ siê do odwzorowywania nazw. Bez serwera NBNS odwzorowywanie nazw równie¿ wymaga u¿ycia mechanizmu rozg³oszeniowego. Ka¿dy pakiet
zapytania jest kierowany do wszystkich komputerów w sieci, w nadziei, ¿e ten w³aœciwy bezpoœrednio odpowie pytaj¹cemu. Jak ³atwo zauwa¿yæ, u¿ycie serwera NBNS i komunikacji dwupunktowej znacznie zmniejsza obci¹¿enie sieci w porównaniu z zalewaniem sieci pakietami rozg³oszeniowymi przy ka¿dym zapytaniu o nazwê.

Typy wêz³ów
Jak ustaliæ strategiê klientów sieciowych podczas rejestrowania i odwzorowywania
nazw? Ka¿dy komputer w sieci NBT mo¿na okreœliæ jednym z poni¿szych oznaczeñ,
w zale¿noœci od u¿ywanej przez niego metody rejestrowania i odwzorowywania

12

Rozdzia³ 1: Poznajemy Sambê

nazw: b-wêze³, p-wêze³, m-wêze³ i h-wêze³. Zachowanie wêz³ów ró¿nego typu opisuje tabela 1.1.
Tabela 1.1. Typy wêz³ów NetBIOS-owych
Rola

Dzia³anie

b-wêze³
p-wêze³
m-wêze³

U¿ywa tylko rozg³oszeniowego rejestrowania i odwzorowywania nazw
U¿ywa tylko dwupunktowego rejestrowania i odwzorowywania nazw
Rejestruje nazwê rozg³oszeniowo. Jeœli rejestracja siê powiedzie, informuje o tym serwer NBNS. Odwzorowuje nazwy rozg³oszeniowo. U¿ywa
serwera NBNS, jeœli rozg³oszenie siê nie powiedzie
U¿ywa serwera NBNS do rejestrowania i odwzorowywania nazw. U¿ywa rozg³oszeñ, jeœli serwer NBNS nie odpowiada lub nie dzia³a

h-wêze³
(hybrydowy)

Klienty Windows s¹ zwykle skonfigurowane jako h-wêz³y (wêz³y hybrydowe). Tak
na marginesie – h-wêz³y s¹ póŸniejszym wynalazkiem Microsoftu i nie pojawiaj¹ siê
w dokumentach RFC 1001/1002.
Mo¿na ustaliæ typ wêz³a ka¿dego komputera Windows, wpisuj¹c polecenie ipconfig /all i szukaj¹c linii zaczynaj¹cej siê od s³ów Node Type.
C:\ & gt; ipconfig /all
Windows 98 IP Configuration
...
Node Type . . . . . .
...

.

.

.

.

: Hybrid

Co siê kryje w nazwie?
Nazwy u¿ywane przez NetBIOS ró¿ni¹ siê znacznie od nazw hostów DNS, które byæ
mo¿e s¹ ci lepiej znane. Po pierwsze, nazwy NetBIOS-owe istniej¹ w p³askiej prze strzeni nazw. Innymi s³owy, nie wystêpuj¹ w nich kwalifikatory, takie jak ora.com lub
samba.org, które hierarchizowa³yby nazwy hostów; ka¿dy komputer jest reprezentowany przez jedn¹, niepowtarzaln¹ nazwê. Po drugie, nazwy NetBIOS-owe nie mog¹
byæ d³u¿sze ni¿ 15 znaków, nie mog¹ zaczynaæ siê od gwiazdki (*) i mog¹ sk³adaæ siê
tylko ze standardowych znaków alfanumerycznych oraz nastêpuj¹cych znaków:
! @ # $ % ^ & ( ) - ' { } . ~

Choæ w nazwach NetBIOS-owych mo¿na u¿ywaæ kropek (.), nie zalecamy tego, poniewa¿ mog¹ one nie dzia³aæ w przysz³ych wersjach NetBIOS-u ponad TCP/IP.
Poprawne nazwy DNS s¹ zarazem poprawnymi nazwami NetBIOS-owymi i nie jest
to przypadek. W rzeczywistoœci nazwa DNS serwera Samby bywa zwykle powielana jako jego nazwa NetBIOS-owa. Jeœli na przyk³ad masz komputer o nazwie feniks.ora.com, jego nazw¹ NetBIOS-ow¹ przypuszczalnie bêdzie FENIKS (plus
dziewiêæ spacji).
Nazwy i typy zasobów
W NetBIOS-ie komputer nie tylko og³asza swoj¹ obecnoœæ, ale tak¿e oferowane
przez siebie us³ugi. Na przyk³ad komputer feniks mo¿e og³osiæ, ¿e nie jest zwyk³¹

Poznajemy sieæ SMB/CIFS

13

stacj¹ robocz¹, ale ¿e jest serwerem plików i mo¿e odbieraæ komunikaty WinPopup.
Chc¹c to uczyniæ, dodaje do nazwy komputera szesnasty bajt, nazywany typem zasobu, i rejestruje nazwê wiêcej ni¿ jeden raz (patrz rysunek 1.10).

Rysunek 1.10. Struktura nazw NetBIOS-owych

Jednobajtowy typ zasobu oznacza us³ugê œwiadczon¹ przez komputer. W tej ksi¹¿ce
czêsto spotkasz siê z typem zasobu ujêtym w nawiasy ostrok¹tne ( & lt; & gt; ) i umieszczonym za nazw¹ NetBIOS-ow¹, na przyk³ad:
FENIKS & lt; 00 & gt;

Mo¿esz sprawdziæ, które nazwy s¹ zarejestrowane przez konkretny komputer NBT,
u¿ywaj¹c narzêdzia Windows o nazwie NBTSTAT, uruchamianego z linii poleceñ.
Poniewa¿ us³ugi te s¹ niepowtarzalne (¿aden komputer nie mo¿e zarejestrowaæ wiêcej ni¿ jednej), w wynikach polecenia zostan¹ one oznaczone s³owem UNIQUE. Poni¿sze skrócone wyniki polecenia opisuj¹ serwer hydra:
D:\ & gt; NBTSTAT -a hydra
NetBIOS Remote Machine Name Table
Name
Type
Status
------------------------------------------HYDRA
& lt; 00 & gt; UNIQUE
Registered
HYDRA
& lt; 03 & gt; UNIQUE
Registered
HYDRA
& lt; 20 & gt; UNIQUE
Registered
...

Wyniki te informuj¹, ¿e serwer zarejestrowa³ NetBIOS-ow¹ nazwê hydra jako nazwê komputera (stacji roboczej), jako odbiorcê komunikatów WinPopup i jako serwer plików. Niektóre atrybuty, które mo¿e mieæ nazwa, s¹ wymienione w tabeli 1.2.
Tabela 1.2. Typy niepowtarzalnych zasobów NetBIOS-u
Nazwany zasób

Szesnastkowa wartoϾ bajtu

Standardowa us³uga stacji roboczej
Us³uga pos³añca (WinPopup)
Us³uga serwera zdalnego dostêpu
Us³uga g³ównej przegl¹darki domeny (zwi¹zana
z podstawowym kontrolerem domeny)

00
03
06
1B

Dokoñczenie tabeli na str. 14

14

Rozdzia³ 1: Poznajemy Sambê

Dokoñczenie tabeli ze str. 13
Tabela 1.2. Typy niepowtarzalnych zasobów NetBIOS-u
Nazwany zasób

Szesnastkowa wartoϾ bajtu

Nazwa g³ównej przegl¹darki
Us³uga NetDDE
Serwer plików (i drukarek)
Us³uga klienta zdalnego dostêpu
Agent monitorowania sieci
Narzêdzie monitorowania sieci

1D
1F
20
21
BE
BF

Zauwa¿, ¿e poniewa¿ z nazwami DNS nie s¹ zwi¹zane typy zasobów, twórcy NetBIOS-u celowo ustalili, ¿e szesnastkowa wartoœæ 20 (spacja w kodzie ASCII) bêdzie
odpowiadaæ typowi serwera plików.
Nazwy i typy grup
W protokole SMB istnieje pojêcie grup, w których komputery mog¹ siê rejestrowaæ.
Wczeœniej wspomnieliœmy, ¿e komputery w naszej przyk³adowej sieci nale¿¹ do
grupy roboczej, czyli oddzielnego zbioru komputerów w tej samej sieci. Na przyk³ad
w firmie mog¹ istnieæ grupy robocze KSIEGOWOSC i SPRZEDAZ, dysponuj¹ce odrêbnymi serwerami i drukarkami. W œwiecie Windows grupa robocza i grupa SMB
to jedno i to samo.
Wracaj¹c do przyk³adowego polecenia NBTSTAT, serwer Samby hydra jest tak¿e
cz³onkiem grupy roboczej PROSTA_GRUPA (atrybut GROUP równy 00 szesnastkowo) i mo¿e kandydowaæ w wyborach na g³ówn¹ przegl¹darkê (atrybut GROUP
równy 1E szesnastkowo). Oto pozosta³a czêœæ wyników polecenia NBTSTAT:
NetBIOS Remote Machine Name Table (kontynuacja)
Name
Type
Status
--------------------------------------------PROSTA_GRUPA
& lt; 00 & gt;
GROUP
Registered
PROSTA_GRUPA
& lt; 1E & gt;
GROUP
Registered
.._ _ MSBROWSE_ _ . & lt; 01 & gt;
GROUP
Registered

Dostêpne atrybuty grup s¹ wymienione w tabeli 1.3. Wiêcej informacji mo¿na znaleŸæ w ksi¹¿ce Windows NT in a Nutshell opublikowanej przez wydawnictwo O'Reilly.
Tabela 1.3. Typy grupowych zasobów NetBIOS-u
Nazwany zasób
Standardowa grupa stacji roboczych
Serwer logowania
Nazwa g³ównej przegl¹darki
Zwyk³a nazwa grupy (u¿ywana podczas
wyborów przegl¹darki)
Internetowa nazwa grupy (administracyjna)
& lt; 01 & gt; & lt; 02 & gt; _ _ MSBROWSE_ _ & lt; 02 & gt;

Szesnastkowa wartoϾ bajtu
00
1C
1D
1E
20
01

Poznajemy sieæ SMB/CIFS

15

Ostatni wpis, _ _ MSBROWSE_ _ , s³u¿y do og³aszania grupy innym g³ównym przegl¹darkom. Niedrukowalne znaki wchodz¹ce w sk³ad nazwy s¹ wyœwietlane w wynikach polecenia NBTSTAT jako kropki. Nie przejmuj siê, jeœli nie rozumiesz wszystkich typów zasobów i grup. Niektóre nie bêd¹ potrzebne do pracy z Samb¹, a o innych bêdziemy jeszcze mówiæ w tym rozdziale. Warto jednak zapamiêtaæ ogólne zasady dzia³ania mechanizmu nazewniczego.

Datagramy i sesje
W tym momencie odejdziemy nieco od tematu i omówimy inne zadanie NBT: za pewnianie us³ug komunikacyjnych miêdzy dwoma komputerami NetBIOS-owymi.
NetBIOS ponad TCP/IP oferuje w rzeczywistoœci dwa typu us³ug: us³ugi sesyjne
i us³ugi datagramowe. Zrozumienie ich dzia³ania nie jest konieczne do pos³ugiwania
siê Samb¹, ale da ci pewne pojêcie o pracy protoko³u NBT i pomo¿e w rozwi¹zywaniu problemów, kiedy Samba odmówi pos³uszeñstwa.
Us³uga datagramowa nie opiera siê na stabilnych po³¹czeniach miêdzy komputerami. Pakiety danych s¹ po prostu wysy³ane do drugiego komputera lub rozg³aszane
w sieci, bez gwarancji, ¿e dotr¹ do miejsca przeznaczenia we w³aœciwej kolejnoœci
i ¿e w ogóle tam dotr¹. Korzystanie z datagramów obci¹¿a sieæ w mniejszym stopniu, ni¿ otwieranie sesji, choæ one tak¿e mog¹ spowolniæ pracê sieci (czy pamiêtasz
rozg³oszeniowe odwzorowywanie nazw, o którym mówiliœmy wczeœniej?). Datagramy s³u¿¹ zatem do szybkiego przesy³ania prostych bloków danych do jednego
lub wielu komputerów. Us³uga datagramowa zapewnia komunikacjê za pomoc¹
prostych symbolicznych funkcji wymienionych w tabeli 1.4.
Tabela 1.4. Symboliczne funkcje datagramowe
Funkcja

Opis

Wys³aæ datagram
Wys³aæ datagram
rozg³oszeniowy

Wysy³a datagram do komputera lub grupy komputerów
Wysy³a datagram do wszystkich komputerów, które czekaj¹ na niego w nastêpstwie wywo³ania funkcji „Odebraæ datagram rozg³oszeniowy”
Odbiera datagram od innego komputera
Czeka na datagram rozg³oszeniowy

Odebraæ datagram
Odebraæ datagram
rozg³oszeniowy

Us³ugi sesyjne s¹ bardziej skomplikowane. Sesje s¹ metod¹ komunikacji, która
– przynajmniej w za³o¿eniu – umo¿liwia wykrycie wadliwych lub nie dzia³aj¹cych
po³¹czeñ miêdzy dwoma aplikacjami NetBIOS-owymi. Sesjê NBT mo¿na porównaæ
do rozmowy telefonicznej*. Miêdzy komputerem wywo³uj¹cym a wywo³ywanym
otwierane jest pe³nodupleksowe po³¹czenie, które musi pozostaæ otwarte na czas
trwania komunikacji. Obie strony wiedz¹, który komputer nawi¹za³ po³¹czenie,
* Czytaj¹c dokument RFC 1001 ³atwo zauwa¿yæ, ¿e analogia „telefoniczna” mia³a spory udzia³ w procesie opracowywania protoko³u NBT.

16

Rozdzia³ 1: Poznajemy Sambê

a który je odebra³, i mog¹ porozumiewaæ siê za pomoc¹ prostych symbolicznych
funkcji wymienionych w tabeli 1.5.
Tabela 1.5. Symboliczne funkcje sesyjne
Funkcja

Opis

Wywo³aæ
Nas³uchiwaæ
Roz³¹czyæ siê
Wys³aæ
Odebraæ
Stan sesji

Nawi¹zaæ ³¹cznoœæ z nas³uchuj¹cym komputerem o okreœlonej nazwie
Czekaæ na wywo³anie przez okreœlony lub dowolny komputer
Zakoñczyæ sesjê
Wys³aæ dane do drugiego komputera
Odebraæ dane od drugiego komputera
Uzyskaæ informacje o okreœlonych sesjach

Sesje to szkielet, na którym opiera siê dzielenie zasobów w sieci NBT. Zwykle s³u¿¹
do nawi¹zania stabilnych po³¹czeñ miêdzy klientami a udzia³ami dyskowymi lub
drukarkami serwera. Klient wywo³uje serwer i zaczyna wymieniaæ z nim informacje, na przyk³ad ¿¹daj¹c otwarcia okreœlonych plików, przes³ania i odebrania da nych i tak dalej. Po³¹czenia takie mog¹ trwaæ doœæ d³ugo (przez kilka godzin, a nawet dni), a wszystkie operacje s¹ wykonywane w ramach jednego po³¹czenia. Jeœli
wyst¹pi b³¹d, oprogramowanie sesji (korzystaj¹ce z TCP) bêdzie ponownie prze sy³aæ dane a¿ do chwili, kiedy zostan¹ one odebrane poprawnie, inaczej ni¿ ma to
miejsce w us³ugach datagramowych (korzystaj¹cych z UDP).
W praktyce sesje nie s¹ tak niezawodne i nie zawsze radz¹ sobie z b³êdami w komunikacji. Wielu u¿ytkowników sieci Windows z pewnoœci¹ dostrzega tê powa¿n¹
wadê sesji NBT. Jeœli z jakiegoœ powodu po³¹czenie zostanie przerwane, informacje
o sesji otwartej miêdzy dwoma komputerami szybko trac¹ wa¿noœæ. Jeœli tak siê stanie, jedynym sposobem odtworzenia sesji jest ponowne wywo³anie drugiego komputera i rozpoczêcie wszystkiego od nowa.
Jeœli jesteœ zainteresowany dodatkowymi informacjami o tych us³ugach, polecamy
lekturê dokumentu RFC 1001. Warto jednak zapamiêtaæ dwie rzeczy:
· Sesje s¹ otwierane zawsze miêdzy dwoma i tylko dwoma komputerami NetBIOS-owymi. Jeœli sesja zostanie przerwana, klient powinien zachowaæ wystarczaj¹co wiele informacji, aby mo¿liwe by³o odtworzenie po³¹czenia. W praktyce
rzadko siê to udaje.
· Datagramy mog¹ byæ rozg³aszane do wielu komputerów, ale s¹ zawodne. Innymi
s³owy, komputer Ÿród³owy nie ma pewnoœci, ¿e wys³ane przez niego datagramy
rzeczywiœcie dotar³y do miejsca przeznaczenia.

Implementacje Microsoftu
Uzbrojeni w now¹ wiedzê mo¿emy przyjrzeæ siê, w jaki sposób Microsoft zrealizowa³ powy¿sze koncepcje w sieciach CIFS/SMB. Jak ³atwo by³o przewidzieæ, trzeba
bêdzie zapoznaæ siê z pewnymi rozszerzeniami protoko³u.

Implementacje Microsoftu

17

Domeny Windows
Przypomnijmy, ¿e grupa robocza to zbiór komputerów SMB rezyduj¹cych w tej samej podsieci i zarejestrowanych w tej samej grupie SMB. Domena Windows to grupa
robocza z jednym dodatkiem: serwerem pe³ni¹cym funkcjê kontrolera domeny. Aby
w sieci powsta³a domena Windows*, niezbêdny jest kontroler domeny – w przeciwnym wypadku mo¿emy mówiæ tylko o grupie roboczej (patrz rysunek 1.11).
Obecnie istniej¹ dwa odrêbne protoko³y u¿ywane przez kontroler domeny (serwer
logowania): jeden do komunikacji z komputerami Windows 95/98, a drugi do komunikacji z komputerami Windows NT. Na dzieñ dzisiejszy Samba obs³uguje protokó³ kontrolera domeny dla Windows 95/98 (dziêki czemu mo¿e dzia³aæ jako kontroler domeny dla komputerów Windows 9x), ale nie wspiera jeszcze w pe³ni protoko³u dla Windows NT. Zespó³ programistów Samby obiecuje jednak obs³ugê protoko³u kontrolera domeny dla Windows NT w wersji 2.1 Samby.

Rysunek 1.11. Prosta domena Windows
W czym tkwi problem? Protokó³ u¿ywany przez kontrolery domeny Windows do komunikacji z klientami i innymi kontrolerami jest protoko³em firmowym, a Microsoft nie
opublikowa³ jego specyfikacji. Zmusi³o to zespó³ programistów Samby do wstecznego
analizowania protoko³u i ustalania, które kody realizuj¹ okreœlone funkcje.

Kontrolery domeny
Kontroler to mózg domeny Windows, podobnie jak serwer NIS jest centralnym
zarz¹dc¹ uniksowych us³ug informacyjnych. Kontrolery domeny s¹ odpowiedzialne za wiele ró¿nych zadañ, z których interesowaæ nas bêdzie zw³aszcza uwierzytelnianie. Uwierzytelnianie to proces zezwalania u¿ytkownikowi na dostêp (lub odmawiania dostêpu) do wspó³dzielonego zasobu, zwykle na podstawie has³a.

* Microsoft nazywa domeny Windows „domenami Windows NT”, zak³adaj¹c, ¿e kontrolerem domeny
musi byæ komputer z Windows NT. Poniewa¿ jednak funkcjê tê mo¿e spe³niaæ tak¿e Samba, bêdziemy je
nazywaæ po prostu „domenami Windows”, aby nie wprowadzaæ niepotrzebnego zamieszania.

18

Rozdzia³ 1: Poznajemy Sambê

Ka¿dy kontroler domeny u¿ywa mened¿era bezpieczeñstwa (security account manager, SAM), który zarz¹dza list¹ kombinacji „nazwa u¿ytkownika – has³o”. Kontroler
domeny jest zatem centraln¹ sk³adnic¹ hase³ zwi¹zanych z nazwami u¿ytkowników
(jedno has³o na jednego u¿ytkownika), co jest wydajniejsze, ni¿ utrzymywanie setek
hase³ do wszystkich wspó³dzielonych zasobów przez ka¿dego klienta.
W domenie Windows, kiedy nieuwierzytelniony klient ¿¹da dostêpu do udzia³ów
serwera, serwer pyta kontroler domeny, czy mo¿na zaufaæ temu klientowi. Jeœli tak,
serwer nawi¹zuje po³¹czenie, nadaj¹c u¿ytkownikowi œciœle okreœlone prawa dostêpu do danej us³ugi. Jeœli nie, klientowi odmawia siê po³¹czenia. Gdy u¿ytkownik zostanie uwierzytelniony przez kontroler domeny, klient otrzymuje specjalny ¿eton
uwierzytelniaj¹cy, aby u¿ytkownik nie musia³ siê ponownie logowaæ, kiedy zechce
skorzystaæ z innych zasobów domeny. W tym momencie u¿ytkownika uwa¿a siê za
„zalogowanego” w samej domenie (patrz rysunek 1.12).

Rysunek 1.12. Uwierzytelnianie za poœrednictwem kontrolera domeny

Podstawowe i zapasowe kontrolery domeny
Nadmiarowoœæ jest jednym z podstawowych za³o¿eñ domeny Windows. Aktywny
kontroler domeny jest nazywany podstawowym kontrolerem domeny (Primary Domain
Controller, PDC). W sieci mo¿e byæ te¿ jeden lub wiêcej zapasowych kontrolerów domeny (Backup Domain Controller, BDC), które przejmuj¹ zadania podstawowego
kontrolera, gdy ten ulega awarii lub jest niedostêpny. Kontrolery BDC regularnie
synchronizuj¹ dane w swoich bazach SAM z kontrolerem PDC, aby w razie potrzeby
podj¹æ œwiadczenie us³ug kontrolera domeny w sposób niezauwa¿alny dla klien tów. Zwróæmy jednak uwagê, ¿e kopie bazy danych SAM w kontrolerach BDC s¹
przeznaczone tylko do odczytu, a ich uaktualnienie jest mo¿liwe tylko przez syn chronizacjê z kontrolerem PDC. Serwer w domenie Windows mo¿e u¿yæ bazy SAM
dowolnego kontrolera podstawowego lub zapasowego w celu uwierzytelnienia
u¿ytkownika, który próbuje skorzystaæ z jego zasobów i zalogowaæ siê w domenie.

Implementacje Microsoftu

19

Zauwa¿my, ¿e pod wieloma wzglêdami domeny i grupy robocze Windows s¹ do
siebie podobne. Podobieñstwo to nie jest przypadkowe. Wynika z faktu, ¿e mechanizm domen wprowadzono dopiero w Windows NT 3.5 i trzeba by³o zapewniæ jego
zgodnoœæ z wczeœniejszymi grupami roboczymi Windows for Workgroups 3.1. Nale¿y zapamiêtaæ, ¿e domena Windows to po prostu grupa robocza, do której dodano
kontroler domeny.
Samba bez ¿adnych problemów mo¿e pe³niæ funkcjê kontrolera domeny dla komputerów Windows 95/98. Jednak¿e dzia³anie Samby 2.0 w charakterze podstawowego
kontrolera domeny ogranicza siê do uwierzytelniania u¿ytkowników – nie mo¿e
spe³niaæ innych zadañ (gdy uka¿e siê ta ksi¹¿ka, byæ mo¿e bêdzie ju¿ dostêpna wersja 2.1 Samby, która bêdzie mog³a dzia³aæ jako kontroler PDC dla klientów NT). Natomiast ze wzglêdu na zamkniêt¹ naturê protoko³u Microsoftu u¿ywanego do synchronizowania danych SAM, Samba nie mo¿e obecnie dzia³aæ jako zapasowy kontroler domeny.

Przegl¹danie
Przegl¹danie to odpowiedŸ na pytanie u¿ytkownika: „Jakie komputery s¹ w mojej
sieci Windows?”. Warto zaznaczyæ, ¿e nie ma to nic wspólnego z przegl¹darkami
WWW, mo¿e oprócz ogólnej koncepcji odkrywania zasobów sieci. Podobnie jak
w WWW, zasoby sieci Windows mog¹ siê zmieniaæ bez ¿adnego ostrze¿enia.
Zanim wymyœlono mechanizm przegl¹dania, u¿ytkownicy musieli znaæ nazwê
komputera, z którym chcieli po³¹czyæ siê przez sieæ i samodzielnie wpisywaæ w aplikacji lub mened¿erze plików adresy UNC podobne do poni¿szego:
\\HYDRA\siec

Dziêki przegl¹daniu mo¿na natomiast zbadaæ zasoby komputera za pomoc¹ standardowego interfejsu graficznego typu „wska¿ i kliknij” – œciœlej, za pomoc¹ okna
Otoczenia sieciowego w kliencie Windows.
Poziomy przegl¹dania
Jak nadmieniliœmy na pocz¹tku tego rozdzia³u, w sieci SMB/CIFS mamy do czynienia z dwoma typami przegl¹dania:
· przegl¹danie listy komputerów (ze wspó³dzielonymi zasobami),
· przegl¹danie wspó³dzielonych zasobów konkretnego komputera.
Przyjrzyjmy siê pierwszemu typowi. W ka¿dej podsieci grupy roboczej Windows
(lub domeny) jeden z komputerów jest odpowiedzialny za utrzymywanie listy komputerów dostêpnych w sieci. Ten komputer jest nazywany g³ówn¹ przegl¹dark¹ lo kaln¹, a zarz¹dzana przez niego lista – list¹ przegl¹dania. Komputery w danej podsieci
u¿ywaj¹ listy przegl¹dania, aby zmniejszyæ ruch sieciowy generowany przez operacjê przegl¹dania. Zamiast u¿ywaæ dynamicznych zapytañ maj¹cych na celu ustalenie listy maszyn dostêpnych w sieci, komputer mo¿e po prostu skontaktowaæ siê
z g³ówn¹ przegl¹dark¹ lokaln¹ i uzyskaæ kompletn¹, aktualn¹ listê.

20

Rozdzia³ 1: Poznajemy Sambê

Aby przejrzeæ zasoby w konkretnym komputerze, u¿ytkownik musi siê z nim
po³¹czyæ; takich informacji nie ma na liœcie przegl¹dania. Listê zasobów komputera
mo¿na przejrzeæ, jeœli kliknie siê jego ikonê w oknie Otoczenia sieciowego w Windows 95/98 lub NT. Na pocz¹tku rozdzia³u pokazaliœmy, ¿e komputer zwraca wówczas listê wspó³dzielonych zasobów, do których u¿ytkownik bêdzie móg³ uzyskaæ
dostêp, jeœli zostanie uwierzytelniony.
Ka¿dy serwer w grupie roboczej Windows musi poinformowaæ o swojej obecnoœci
g³ówn¹ przegl¹darkê lokaln¹ zaraz po zarejestrowaniu nazwy NetBIOS-owej,
i (teoretycznie) og³osiæ, ¿e opuszcza grupê, kiedy jest wy³¹czany. Za rejestrowanie
og³oszeñ serwerów odpowiedzialna jest g³ówna przegl¹darka lokalna. Zauwa¿, ¿e
lokalna przegl¹darka to niekoniecznie ten sam komputer, co serwer nazw Net BIOS-owych (NBNS), o którym mówiliœmy poprzednio.
Otoczenie sieciowe Windows mo¿e zachowywaæ siê doœæ dziwnie: dopóki nie wybierzesz komputera w celu przejrzenia jego zasobów, okno programu mo¿e zawieraæ nieaktualne dane. Oznacza to, ¿e w oknie Otoczenia sieciowego mog¹ widnieæ komputery,
które uleg³y awarii, a mo¿e brakowaæ tych, które jeszcze nie zosta³y zauwa¿one.
Mówi¹c krótko, dopiero po wybraniu serwera i po³¹czeniu siê z nim mo¿esz mieæ pewnoœæ, ¿e udzia³y dyskowe i drukarki rzeczywiœcie istniej¹ w sieci.

W przeciwieñstwie do funkcji, o których mówiliœmy wczeœniej, niemal ka¿dy komputer Windows (NT Server, NT Workstation, 98, 95 lub Windows 3.1 for Workgroups) mo¿e dzia³aæ jako g³ówna przegl¹darka lokalna. Podobnie jak kontroler domeny, g³ówna przegl¹darka lokalna mo¿e mieæ w lokalnej podsieci jedn¹ lub wiêcej
przegl¹darek zapasowych, które przejm¹ jej funkcje, gdyby uleg³a awarii lub sta³a siê
niedostêpna. Aby wszystko dzia³a³o p³ynnie, zapasowe przegl¹darki lokalne czêsto
synchronizuj¹ swoje listy przegl¹dania z przegl¹dark¹ g³ówn¹. Uaktualnijmy teraz
nasz diagram domeny Windows tak, aby uwzglêdnia³ g³ówn¹ i zapasow¹ przegl¹darkê lokaln¹. Rezultat widaæ na rysunku 1.13.

Rysunek 1.13. Domena Windows z g³ówn¹ i zapasow¹ przegl¹dark¹ lokaln¹

Implementacje Microsoftu

21

Oto, jak mo¿na obliczyæ minimaln¹ liczbê zapasowych przegl¹darek dzia³aj¹cych
w grupie roboczej:
· Jeœli w sieci jest od 1 do 32 stacji roboczych Windows NT albo od 1 do 16 komputerów Windows 95/98, g³ówna przegl¹darka lokalna wyznacza jedn¹ przegl¹darkê
zapasow¹.
· Jeœli liczba stacji roboczych Windows NT wynosi od 33 do 64 albo liczba stacji roboczych Windows 95/98 wynosi od 17 do 32, g³ówna przegl¹darka lokalna wyznacza dwie przegl¹darki zapasowe.
· Dla ka¿dej nastêpnej grupy 32 stacji roboczych Windows NT lub 16 komputerów
Windows 95/98 g³ówna przegl¹darka lokalna wyznacza nastêpn¹ przegl¹darkê
zapasow¹.
Obecnie nie ma górnego limitu przegl¹darek zapasowych, które mog¹ zostaæ wy znaczone przez przegl¹darkê g³ówn¹.
Wybory przegl¹darek
Przegl¹danie to bardzo istotny aspekt ka¿dej grupy roboczej Windows. Niestety,
¿adna sieæ nie dzia³a idealnie. Przypuœæmy, ¿e serwer Windows NT na biurku dyrektora niewielkiej firmy jest g³ówn¹ przegl¹dark¹ lokaln¹ – dopóki dyrektor nie
wy³¹czy go z gniazdka, ¿eby pod³¹czyæ swój aparat do masa¿u. W tym momencie
stacja robocza Windows NT w dziale czêœci zamiennych mog³yby przej¹æ jego zadanie. Komputer ten wykonuje jednak du¿y, kiepsko napisany program, który poch³ania ca³y czas procesora. Mora³: przegl¹danie musi byæ bardzo odporne na
w³¹czanie i wy³¹czanie serwerów. Poniewa¿ niemal ka¿dy komputer Windows
mo¿e dzia³aæ jako przegl¹darka, musi istnieæ sposób ustalenia, który przyjmie na
siebie tê odpowiedzialnoœæ. Proces podejmowania tej decyzji nosi nazwê wyborów.
Algorytm wyborów jest wbudowany w niemal wszystkie systemy operacyjne Windows, dziêki czemu mog¹ one uzgodniæ, który komputer stanie siê przegl¹dark¹
g³ówn¹, a który zapasow¹. Wybory mog¹ zostaæ wymuszone w dowolnej chwili.
Za³ó¿my, ¿e dyrektor skoñczy³ masa¿ i ponownie uruchomi³ serwer. Kiedy serwer
w³¹czy siê do sieci, og³osi swoj¹ obecnoœæ i zostan¹ przeprowadzone wybory, które
ustal¹, czy komputer PC w dziale czêœci zamiennych powinien nadal byæ przegl¹dark¹ g³ówn¹.
W czasie trwania wyborów wszystkie komputery rozg³aszaj¹ nastêpuj¹ce informacje:
· wersja u¿ywanego protoko³u elekcyjnego,
· system operacyjny komputera,
· jak d³ugo komputer jest pod³¹czony do sieci,
· nazwa hosta.
Wartoœci te pozwalaj¹ ustaliæ, który system bêdzie pe³ni³ funkcjê g³ównej przegl¹darki lokalnej (proces wyborów opisano bardziej szczegó³owo w rozdziale 5,
Przegl¹danie i zaawansowane udzia³y dyskowe. Algorytmy odpowiedzialne za ten proces s¹ jednak ma³o eleganckie i stanowi¹ zagro¿enie bezpieczeñstwa sieci. Choæ przegl¹danie domeny mo¿na zintegrowaæ z domenowymi funkcjami bezpieczeñstwa, al-

22

Rozdzia³ 1: Poznajemy Sambê

gorytm elekcyjny nie okreœla jasno, który komputer zostanie przegl¹dark¹. Tak wiêc
dowolny komputer z us³ug¹ przegl¹dania mo¿e zg³osiæ swój udzia³ w wyborach i
(po ich wygraniu) dowolnie zmieniaæ listê przegl¹dania. Niemniej jednak
przegl¹danie jest kluczowym aspektem sieci Windows, a koniecznoœæ zapewnienia
wstecznej zgodnoœci wró¿y mu d³ugi ¿ywot.

Czy grupa robocza Windows mo¿e obejmowaæ wiele podsieci?
Tak, ale administratorzy, którzy siê na to decyduj¹, powinni mieæ pod rêk¹ tabletki
od bólu g³owy. Rozci¹ganie grupy roboczej na kilka podsieci nie by³o brane pod
uwagê podczas opracowywania Windows NT 3.5 i Windows for Workgroups. W rezultacie domena Windows obejmuj¹ca kilka podsieci to „sklejenie” kilku grup roboczych o identycznych nazwach. Co prawda nadal mo¿na u¿ywaæ podstawowego
kontrolera domeny do uwierzytelniania klientów we wszystkich podsieciach, ale
przegl¹danie staje siê bardziej skomplikowane.
Jak ju¿ wspomniano, ka¿da podsieæ musi mieæ w³asn¹ g³ówn¹ przegl¹darkê lokaln¹.
Jeœli domena Windows rozci¹ga siê na kilka podsieci, administrator musi wyznaczyæ jeden z komputerów na g³ówn¹ przegl¹darkê domeny. G³ówna przegl¹darka domeny bêdzie przechowywaæ listê przegl¹dania dla ca³ej domeny Windows. Lista ta
jest tworzona dziêki regularnej synchronizacji list przegl¹dania wszystkich g³ów nych przegl¹darek lokalnych z list¹ przegl¹dania g³ównej przegl¹darki domeny. Po
synchronizacji g³ówna przegl¹darka lokalna i g³ówna przegl¹darka domeny powinny dysponowaæ identycznymi listami (patrz rysunek 1.14).
Brzmi nieŸle? Có¿, rozwi¹zanie to nie jest doskona³e, z nastêpuj¹cych przyczyn:
· Podstawowy kontroler domeny, jeœli istnieje, zawsze pe³ni funkcjê g³ównej
przegl¹darki domeny. Microsoft zdecydowa³, ¿e obie us³ugi bêd¹ dzieliæ ten sam
typ zasobu NetBIOS-u & lt; 1B & gt; , wiêc (niestety) nie mo¿na ich rozdzieliæ.
· Komputery Windows 95/98 nie mog¹ zostaæ g³ównymi przegl¹darkami domeny
ani nawet siê z nimi kontaktowaæ. Zespó³ programistów Samby uwa¿a, ¿e jest to marketingowa decyzja Microsoftu, zmuszaj¹ca klientów do kupowania przynajmniej
jednej kopii Windows NT Workstation dla ka¿dej podsieci (na szczêœcie z pomoc¹
przychodzi tu Samba).
G³ówna przegl¹darka lokalna ka¿dej podsieci nadal utrzymuje listê przegl¹dania
dla tej podsieci i sprawuje nad ni¹ kontrolê. Jeœli wiêc komputer chce uzyskaæ listê
serwerów we w³asnej podsieci, skieruje zapytanie do g³ównej przegl¹darki lokalnej
tej podsieci. Jeœli chce uzyskaæ listê serwerów spoza podsieci, te¿ musi skontaktowaæ
siê z przegl¹dark¹ lokaln¹. Jest to mo¿liwe, poniewa¿ w regularnych odstêpach czasu autorytatywna lista przegl¹dania g³ównej przegl¹darki lokalnej jest synchronizowana z list¹ g³ównej przegl¹darki domeny, która z kolei jest zsynchronizowana
z przegl¹darkami lokalnymi pozosta³ych podsieci. Proces ten nosi nazwê rozpowszechniania list przegl¹dania.
Samba w razie potrzeby mo¿e pe³niæ funkcjê g³ównej przegl¹darki domeny Win dows. Oprócz tego mo¿e dzia³aæ jako g³ówna przegl¹darka lokalna podsieci Win dows, synchronizuj¹c swoj¹ listê przegl¹dania z g³ówn¹ przegl¹dark¹ domeny.

Implementacje Microsoftu

23

Rysunek 1.14. Grupa robocza rozci¹gaj¹ca siê na kilka podsieci

Windows Internet Name Service (WINS)
Windows Internet Name Service to implementacja serwera nazw NetBIOS-owych
(NetBIOS Name Server, NBNS) i jako taka dziedziczy wiele charakterystyk NetBIOS-u. Po pierwsze, us³uga nazewnicza WINS jest p³aska; konieczne jest stosowanie
nazw komputerów typu franek albo nazw grup roboczych typu KANADA lub
USA. Po drugie, WINS jest us³ug¹ dynamiczn¹: kiedy klient w³¹cza siê do sieci, musi
zg³osiæ swoj¹ nazwê hosta, adres i grupê robocz¹ lokalnemu serwerowi WINS. Serwer zachowuje te informacje tak d³ugo, jak d³ugo klient okresowo odnawia swoj¹ rejestracjê, co oznacza, ¿e jest nadal pod³¹czony do sieci. Warto zauwa¿yæ, ¿e serwery
WINS nie s¹ zwi¹zane z grup¹ robocz¹ ani domen¹; mog¹ znajdowaæ siê w dowolnym miejscu sieci i obs³ugiwaæ wszystkie komputery.
Mo¿na skonfigurowaæ kilka serwerów WINS tak, aby synchronizowa³y swoje dane
w okreœlonych odstêpach czasu. Dziêki temu informacje o komputerach w³¹czaj¹cych
siê do sieci i od³¹czaj¹cych siê mog¹ byæ rozpowszechniane wœród wszystkich
serwerów WINS. Choæ teoretycznie rozwi¹zanie takie wydaje siê efektywne, to

24

Rozdzia³ 1: Poznajemy Sambê

szybko staje siê k³opotliwe, jeœli sieæ obs³uguje kilka serwerów WINS. Poniewa¿ serwery WINS mog¹ œwiadczyæ us³ugi dla kilku podsieci (trzeba albo rêcznie skonfigurowaæ adres serwera WINS w ka¿dym kliencie, albo dostarczaæ go za poœrednictwem DHCP), czêsto wydajniejszym rozwi¹zaniem jest skierowanie wszystkich
klientów do tego samego serwera WINS, niezale¿nie od liczby domen Windows
w sieci. Dziêki temu bêdziemy dysponowaæ jednym autorytatywnym serwerem
WINS zamiast zmagaæ siê z kilkoma serwerami, bezustannie usi³uj¹cymi zsynchronizowaæ czêsto zmieniaj¹ce siê informacje.
Aktywny serwer WINS nazywany jest podstawowym serwerem WINS. Mo¿na zainstalowaæ tak¿e zapasowy serwer WINS, który w razie awarii lub niedostêpnoœci serwera podstawowego przejmie jego funkcjê. Komputery nie wybieraj¹ spomiêdzy siebie
podstawowego i zapasowego serwera WINS – decyzja nale¿y tu do administratora
systemu. Podstawowy i zapasowy serwer WINS synchronizuj¹ swoje informacje
w regularnych odstêpach czasu.
W rodzinie systemów operacyjnych Windows serwerem WINS mo¿e byæ tylko NT
Workstation lub NT Server. Samba mo¿e dzia³aæ jako podstawowy, ale nie jako zapasowy serwer WINS.

Co mo¿e Samba?
Uff! Pewnie nigdy nie s¹dzi³eœ, ¿e sieci Microsoftu s¹ tak skomplikowane. Teraz
podsumujemy wszystkie informacje i przypomnimy, do czego mo¿na wykorzystaæ
Sambê. W tabeli 1.6 wymienione s¹ funkcje, które Samba mo¿e i których nie mo¿e
pe³niæ w domenie lub grupie roboczej Windows. Poniewa¿ wiele protoko³ów domeny NT to firmowe, nieudokumentowane opracowania Microsoftu, Samba nie potrafi
poprawnie synchronizowaæ danych z serwerami Microsoftu i w wiêkszoœci przy padków nie mo¿e dzia³aæ jako serwer zapasowy. Od wersji 2.0.x Samba potrafi jednak w ograniczonym stopniu obs³ugiwaæ protoko³y uwierzytelniaj¹ce podstawowego kontrolera domeny, a jej funkcjonalnoœæ zwiêksza siê z ka¿dym dniem.
Tabela 1.6. Funkcje Samby (w wersji 2.0.4b)
Funkcja

Potrafi pe³niæ?

Serwer plików
Serwer wydruku
Podstawowy kontroler domeny
Zapasowy kontroler domeny
Uwierzytelnianie klientów Windows 95/98
G³ówna przegl¹darka lokalna
Zapasowa przegl¹darka lokalna
G³ówna przegl¹darka domeny
Podstawowy serwer WINS
Zapasowy serwer WINS

Tak
Tak
Tak (zaleca siê wersjê 2.1 lub nowsz¹)
Nie
Tak
Tak
Nie
Tak
Tak
Nie

Przegl¹d dystrybucji Samby

25

Przegl¹d dystrybucji Samby
Jak ju¿ wspomniano, Samba to w rzeczywistoœci kilka programów spe³niaj¹cych
ró¿ne, ale komplementarne funkcje. Omówimy krótko ka¿dy z nich i wyjaœnimy, jak
ze sob¹ wspó³pracuj¹. Wiêkszoœæ programów wchodz¹cych w sk³ad dystrybucji
Samby koncentruje siê na jej dwóch demonach. Oto podstawowe zadania demonów
Samby:
smbd
Demon smbd jest odpowiedzialny za zarz¹dzanie zasobami wspó³dzielonymi
przez serwer Samby i jego klientów. Zapewnia on klientom SMB (w jednej lub
kilku sieciach) us³ugi dostêpu do plików i drukarek oraz us³ugi przegl¹dania.
Demon smbd przekazuje wszystkie powiadomienia miêdzy serwerem Samby
a klientami sieciowymi. Oprócz tego odpowiada za uwierzytelnianie u¿ytkowników, blokowanie zasobów i wspó³dzielenie danych przez protokó³ SMB.
nmbd
Demon nmbd to prosty serwer nazw, naœladuj¹cy dzia³anie WINS i serwera nazw
NetBIOS-owych w stylu pakietu LAN Manager. Demon ten oczekuje na ¿¹dania
klientów i dostarcza im odpowiednich informacji. Obs³uguje tak¿e listy przegl¹dania na potrzeby Otoczenia sieciowego i bierze udzia³ w wyborach przegl¹darek.
Dystrybucja Samby zawiera tak¿e niewielki zbiór narzêdzi uruchamianych
z uniksowej linii poleceñ:
smbclient
Uniksowy klient, przypominaj¹cy klienta FTP, który umo¿liwia po³¹czenie
z udzia³ami Samby.
smbtar
Program s³u¿¹cy do sporz¹dzania zapasowych kopii udzia³ów, podobny do
uniksowego polecenia tar.
nmblookup
Program umo¿liwiaj¹cy sprawdzanie nazw NetBIOS-owych.
smbpasswd
Program umo¿liwiaj¹cy administratorowi zmianê zaszyfrowanych hase³ u¿ywanych przez Sambê.
smbstatus
Program wyœwietlaj¹cy bie¿¹ce po³¹czenia sieciowe z udzia³ami w serwerze
Samby.
testparm
Prosty program sprawdzaj¹cy poprawnoœæ pliku konfiguracyjnego Samby.
testprns
Program umo¿liwiaj¹cy sprawdzenie, czy ró¿ne drukarki s¹ rozpoznawane
przez demona smbd.

26

Rozdzia³ 1: Poznajemy Sambê

Ka¿de znacz¹ce wydanie Samby przechodzi przez szczegó³owe testy, zanim zostanie oficjalnie udostêpnione. Jest te¿ szybko uaktualniane w razie odkrycia problemów lub efektów ubocznych. Najnowsz¹ stabiln¹ dystrybucj¹ w czasie pisania tej
ksi¹¿ki by³a Samba 2.0.5, d³ugo oczekiwana wersja produkcyjna Samby 2.0. Niniejsza ksi¹¿ka skupia siê na funkcjach oferowanych przez Sambê 2.0, a nie przez wersje
1.9.x, które obecnie s¹ przestarza³e.

Sk¹d wzi¹æ Sambê?
Samba jest dostêpna zarówno w postaci binarnej, jak i Ÿród³owej w wielu witrynach
internetowych. G³ówna witryna Samby znajduje siê pod adresem http://www.samba.org. Jeœli jednak nie chcesz czekaæ na pakiety podró¿uj¹ce a¿ z Australii, mo¿esz
skorzystaæ z kilku witryn bliŸniaczych, których listê mo¿na znaleŸæ na stronie g³ównej Samby.
Jeœli wczeœniej nie u¿ywa³eœ Samby, zachêcamy do skorzystania z CD-ROM-u
do³¹czonego do tej ksi¹¿ki. Zamieœciliœmy na nim programy binarne i kody
Ÿród³owe a¿ do wersji 2.0.5 Samby, a oprócz tego kilka wygodnie spakowanych narzêdzi diagnostycznych, o których jest mowa w ksi¹¿ce.

Co nowego w Sambie 2.0?
Samba 2.0 by³a bardzo oczekiwanym pakietem. Najwa¿niejsze dodatki w wersji 2.0
to lepsza obs³uga domen NT oraz nowe narzêdzie administracyjne – Samba Web
Administration Tool (SWAT), które umo¿liwia konfigurowanie Samby za pomoc¹
przegl¹darki WWW. Oprócz tego pakiet zawiera wiele drobnych usprawnieñ,
wprowadzonych w drugiej po³owie 1998 roku.

Domeny NT
Obs³uga domen NT w Sambie (od wersji 2.0.x) jest istotnym ulepszeniem: pozwala
serwerom SMB na u¿ywanie mechanizmów uwierzytelniania, co jest niezbêdne do
zapewnienia przysz³ej zgodnoœci z Windows NT, oraz na stosowanie logowañ domenowych NT. Dziêki temu u¿ytkownik mo¿e zalogowaæ siê w domenie Windows NT i
u¿ywaæ wszystkich komputerów bez indywidualnego logowania siê na ka¿dym z
nich. We wczeœniejszych wersjach Samba obs³ugiwa³a us³ugi logowania Windows
95/98, ale nie logowania domenowe NT. Obs³uga logowañ domenowych w wersji
2.0 Samby jest ju¿ zaimplementowana, choæ jeszcze niekompletna.

£atwoœæ administrowania
SWAT, czyli Samba Web Based Administration Tool, u³atwia ustawianie serwera
i zmienianie jego konfiguracji, bez zmuszania u¿ytkownika do rezygnacji z prostego, tekstowego pliku konfiguracyjnego. SWAT to interfejs graficzny umo¿liwiaj¹cy
konfigurowanie zasobów, które Samba dzieli z klientami. SWAT oszczêdza administratorowi eksperymentowania i pracy pamiêciowej podczas ustalania i zmieniania

Co nowego w Sambie 2.0?

27

konfiguracji sieci. Mo¿na nawet utworzyæ pocz¹tkow¹ konfiguracjê za pomoc¹ programu SWAT, a nastêpnie zmodyfikowaæ plik rêcznie lub vice versa. Samba nie bêdzie siê skar¿yæ.
Jeœli chodzi o kompilacjê, obecnie stosowany jest program GNU autoconf, który
u³atwia wstêpne kompilowanie i konfigurowanie programu, dziêki czemu szybciej
mo¿na skorzystaæ z pomocy oferowanej przez program SWAT.

WydajnoϾ
Znacznie wzros³a wydajnoœæ i skalowalnoœæ Samby. Kod programu zosta³ zreorganizowany, a nmbd (demon us³ug nazewniczych Samby) – w du¿ej mierze przepisany:
· Us³ugi nazewnicze i przegl¹dania mog¹ teraz jednoczeœnie obs³ugiwaæ nawet 35 000
klientów.
· Us³ugi plikowe i drukowania mog¹ obs³ugiwaæ 500 u¿ytkowników jednoczeœnie
(dzia³aj¹c w serwerze o œredniej wydajnoœci) bez zauwa¿alnego pogorszenia
sprawnoœci.
· Linux z Samb¹ na identycznym sprzêcie dzia³a teraz wydajniej od serwera NT,
a co najlepsze, Samba wci¹¿ jest udoskonalana.
· Ulepszone „oportunistyczne” blokady pozwalaj¹ klientom na lokalne buforowanie plików, co znacznie przyspiesza operacje dyskowe bez ryzyka przypadkowego nadpisania buforowanych plików.

Inne cechy
Samba 2.0 ma kilka dodatkowych funkcji. Obecnie mo¿na skonfigurowaæ kilka aliasów dla Samby na jednym komputerze, z których ka¿dy udaje osobny serwer – ta
funkcja przypomina wirtualne hosty znane z nowoczesnych serwerów WWW. Dziêki temu serwer mo¿e obs³ugiwaæ kilka wydzia³ów firmy lub grup albo udostêpniaæ
udzia³y plikowe ze zwyk³ymi zabezpieczeniami przez nazwê u¿ytkownika i has³o,
natomiast drukarki bez ¿adnych zabezpieczeñ. Zmieniono obs³ugê drukowania,
aby u³atwiæ ¿ycie u¿ytkownikom Uniksów typu System V: Samba mo¿e teraz automatycznie odszukaæ dostêpne drukarki, podobnie jak czyni to w Uniksach typu Berkeley. Oprócz tego Samba mo¿e teraz u¿ywaæ wielu stron kodowych, dziêki czemu
obs³uguje jêzyki nieeuropejskie, oraz protoko³u Secure Sockets Layer (SSL) do szyfrowania wszystkich przesy³anych danych, a nie tylko hase³*.

Lepsza kompatybilnoϾ
Wraz ze wzrostem funkcjonalnoœci Samba staje siê tak¿e coraz bardziej zgodna
z Windows NT. Samba od pocz¹tku obs³ugiwa³a szyfrowanie hase³ metod¹ Microsoftu. Obecnie zawiera narzêdzia i opcje umo¿liwiaj¹ce przejœcie na szyfrowanie
* W Stanach Zjednoczonych istniej¹ pewne prawa i przepisy federalne dotycz¹ce zaawansowanej kryptografii. Omówimy je w dodatku A, Konfigurowanie Samby do obs³ugi SSL.

28

Rozdzia³ 1: Poznajemy Sambê

Microsoftu z synchronizacj¹ plików hase³ Uniksa i Microsoftu. Wreszcie, Samba jako
g³ówna przegl¹darka mo¿e teraz wyszukiwaæ serwery SMB w innych sieciach lokalnych i synchronizowaæ siê z nimi, dziêki czemu SMB dzia³a bez problemów w œrodowisku wielosieciowym. Samba u¿ywa w tym celu innej metody ni¿ nieudokumentowany protokó³ Microsoftu.

Smbwrapper
Istnieje te¿ zupe³nie nowa wersja uniksowego klienta o nazwie smbwrapper. Za miast modu³u j¹dra, dziêki któremu Linux mo¿e dzia³aæ jako klient Samby, obecnie mo¿na u¿yæ polecenia ³aduj¹cego bibliotekê, która udostêpnia pe³ny system
plików SMB w niektórych odmianach Uniksa. Po za³adowaniu tej biblioteki polecenie ls /smb wyœwietli listê wszystkich komputerów w grupie roboczej, a polecenie cd /smb/nazwa_serwera/nazwa_udzia³u przejdzie do okreœlonego udzia³u
(wspó³dzielonego katalogu), co przypomina dzia³aniem Network File System (NFS).
Kiedy pisaliœmy tê ksi¹¿kê, program smbwrapper dzia³a³ w Linuksie, Solarisie, Su nOS 4, IRIX-ie i OSF/1, a w niedalekiej przysz³oœci mia³ pracowaæ tak¿e w kilku innych systemach operacyjnych.

To nie wszystko...
Samba jest doskona³ym narzêdziem, wartym zastosowania nawet w najmniejszej
sieci SMB/CIFS. Ten rozdzia³ szczegó³owo pokaza³ czym jest Samba, a co wa¿niejsze – jakie jest jej miejsce w sieci Windows. W nastêpnych rozdzia³ach zajmiemy siê
zarówno ustawianiem Samby po stronie uniksowego serwera, w którym rezyduj¹ jej
dwa demony, jak i konfigurowaniem klientów Windows 95, 98 i NT do wspó³pracy
z Samb¹. Ju¿ nied³ugo wszelkie problemy z heterogeniczn¹ sieci¹ odejd¹ w prze sz³oœæ. Witaj we wspania³ym œwiecie Samby!

Instalowanie Samby
w Uniksie

2

Rozdzia³ 2: Instalowanie Samby w Uniksie

Kiedy wiesz ju¿, co Samba ma do zaoferowania tobie i u¿ytkownikom, mo¿esz przyst¹piæ do skonfigurowania swojej sieci. Zacznijmy od zainstalowania Samby
w Uniksie. ¯eby zatañczyæ sambê, trzeba uczyæ siê jej krok po kroku. To samo odnosi
siê do instalowania Samby, a ten rozdzia³ pomo¿e ci zacz¹æ od w³aœciwej nogi.
W celach demonstracyjnych bêdziemy instalowaæ wersjê 2.0.4 serwera Samby
w Linuksie* z j¹drem w wersji 2.0.31, ale poszczególne etapy instalacji s¹ takie same
na wszystkich platformach, na których mo¿e dzia³aæ Samba. Typowa instalacja zajmuje oko³o godziny, wliczaj¹c w to pobieranie plików Ÿród³owych, kompilowanie
ich, tworzenie plików konfiguracyjnych i testowanie serwera.
Oto przegl¹d etapów instalacji:
1. Pobieranie plików Ÿród³owych lub binarnych.
2. Czytanie dokumentacji instalacyjnej.
3. Konfigurowanie pliku makefile.
4. Kompilowanie kodu serwera.
5. Instalowanie plików serwera.
6. Tworzenie pliku konfiguracyjnego Samby.
7. Testowanie pliku konfiguracyjnego.
8. Uruchamianie demonów Samby.
9. Testowanie demonów Samby.

Pobieranie dystrybucji Samby
Jeœli chcesz szybko przyst¹piæ do rzeczy, na do³¹czonym CD-ROM-ie znajduj¹ siê
Ÿród³a i binaria Samby, które by³y dostêpne w momencie oddawania ksi¹¿ki do druku. CD-ROM to dok³adny obraz plików i katalogów serwera dystrybucyjnego Samby: ftp.samba.org.
* Jeœli jeszcze nie s³ysza³eœ o Linuksie, czeka ciê mi³a niespodzianka. Linux to rozpowszechniany bezp³atnie, uniksopodobny system operacyjny, dzia³aj¹cy na platformach x86 Intela, PowerPC Motoroli i Sparc
Suna. Linux jest w miarê ³atwy w konfiguracji, naprawdê niezawodny i zdobywa coraz wiêksz¹ popularnoœæ. Wiêcej informacji o Linuksie znajdziesz pod adresem http://www.linux.org/.

30

Rozdzia³ 2: Instalowanie Samby w Uniksie

Jeœli jednak wola³byœ pobraæ najnowsz¹ wersjê pakietu, zajrzyj na stronê g³ówn¹
Samby pod adresem http://www.samba.org. Po otworzeniu tej strony zobaczysz ³¹cza
do kilku witryn bliŸniaczych na ca³ym œwiecie – zarówno standardowych stron Samby, jak i serwisów poœwiêconych wy³¹cznie pobieraniu pakietu. Aby pobieranie
przebieg³o sprawnie, wybierz serwis po³o¿ony najbli¿ej ciebie.
Na standardowych stronach WWW Samby znajduje siê dokumentacja i samouczki,
archiwa list wysy³kowych, najnowsze informacje o Sambie oraz Ÿród³owe i binarne
dystrybucje pakietu. Serwisy poœwiêcone pobieraniu Samby (nazywane serwisami
FTP) zawieraj¹ tylko dystrybucje binarne i Ÿród³owe. Jeœli nie masz specjalnych powodów do pobierania starszej wersji pakietu i nie zamierzasz instalowaæ dystrybucji
binarnej, pobierz najnowsz¹ dystrybucjê Ÿród³ow¹ z najbli¿szej witryny bliŸniaczej.
Dystrybucja ta zawsze nosi nazwê:
samba-latest.tar.gz

Jeœli zechcesz u¿yæ wersji Samby umieszczonej na CD-ROM-ie do³¹czonym do tej
ksi¹¿ki, najnowsz¹ wersjê pakietu znajdziesz w katalogu g³ównym.

Pakiet binarny czy Ÿród³owy?
Dla wielu platform uniksowych dostêpne s¹ tak¿e prekompilowane pakiety. Pakiety
te zawieraj¹ wszystkie pliki wykonywalne Samby w postaci binarnej oraz standardow¹ dokumentacjê programów. Choæ zainstalowanie dystrybucji binarnej mo¿e
oszczêdziæ ci wielu problemów i sporo czasu, podejmuj¹c decyzjê powinieneœ mieæ
na uwadze nastêpuj¹ce kwestie:
· Pakiety binarne mog¹ pozostawaæ w tyle za najnowszymi wersjami oprogramowania o jedno lub dwa (czasem wiêcej) pomniejsze wydania, zw³aszcza po serii
drobnych zmian i dla mniej popularnych platform. Porównaj noty wydawnicze
w pakiecie Ÿród³owym i binarnym, aby upewniæ siê, czy nie pojawi³y siê nowe
funkcje, które mog³yby siê okazaæ przydatne na twojej platformie. Dotyczy to
zw³aszcza pakietów Ÿród³owych i binarnych na CD-ROM-ie: kiedy ksi¹¿kê oddawano do druku, oba pochodzi³y z najnowszego wydania produkcyjnego Samby.
Rozwój jednak wci¹¿ trwa, wiêc w Internecie bêdzie mo¿na znaleŸæ nowsze wersje beta.
· Jeœli u¿ywasz prekompilowanych programów, bêdziesz musia³ sprawdziæ, czy
masz w³aœciwe wersje bibliotek wymaganych przez pliki wykonywalne. Dla niektórych platform pliki te s¹ konsolidowane statycznie, wiêc nie stanowi to problemu, ale w nowoczesnych odmianach Uniksa (jak na przyk³ad Linux, SGI Irix,
Solaris, HP-UX) biblioteki s¹ czêsto konsolidowane dynamicznie. Oznacza to, ¿e
plik binarny szuka w systemie odpowiedniej wersji biblioteki, któr¹ byæ mo¿e bêdziesz musia³ zainstalowaæ. Plik README lub makefile towarzysz¹cy wersji binarnej powinien wymieniaæ tego rodzaju wymagania*.
* Dotyczy to zw³aszcza programów u¿ywaj¹cych biblioteki glibc-2.1 (standardowej w Linuksie Red Hat
6.0). Biblioteka ta wywo³a³a spor¹ konsternacjê w œrodowisku programistów, kiedy po jej wydaniu oka za³o siê, ¿e jest niezgodna z poprzednimi wersjami glibc.

Pakiet binarny czy Ÿród³owy?

31

Wiele systemów ze wspó³dzielonymi bibliotekami jest wyposa¿onych w przy datne narzêdzie o nazwie ldd. Program ten informuje, jakich bibliotek wymaga
dany plik binarny i które biblioteki zainstalowane w systemie spe³niaj¹ te wymagania. Na przyk³ad sprawdzenie programu smbd na testowym komputerze da³o
nastêpuj¹ce wyniki:
$ ldd smbd
libreadline.so.3 = & gt; /usr/lib/libreadline.so.3
libdl.so.2 = & gt; /lib/libdl.so.2
libcrypt.so.1 = & gt; /lib/libcrypt.so.1
libc.so.6 = & gt; /lib/libc.so.6
libtermcap.so.2 = & gt; /lib/libtermcap.so.2
/lib/ld-linux.so.2 = & gt; /lib/ld-linux.so.2

Jeœli istniej¹ niezgodnoœci miêdzy Samb¹ i pewnymi bibliotekami w twoim systemie, powinna je wyjaœniæ dokumentacja do³¹czona do dystrybucji systemu.
· Pamiêtaj, ¿e ka¿da dystrybucja binarna przyjmuje pewne za³o¿enia co do docelowej
platformy, dotycz¹ce na przyk³ad domyœlnych katalogów i wartoœci opcji konfiguracyjnych. Warto zajrzeæ wiêc do dokumentacji i pliku makefile w katalogu Ÿród³owym,
aby sprawdziæ, jakich dyrektyw i zmiennych u¿yto podczas kompilacji. W niektórych przypadkach wartoœci te bêd¹ nieadekwatne do twojej konfiguracji systemu.
Niektóre parametry konfiguracyjne mo¿na ustaliæ za pomoc¹ opcji linii polecenia
w czasie wykonywania, a nie kompilacji programu. Jeœli na przyk³ad twój plik binarny próbuje umieœciæ pliki dziennika, blokady i statusu w „z³ym” miejscu (na
przyk³ad w katalogu /usr/local), mo¿esz to zmieniæ bez rekompilowania programu.
Warto tu wspomnieæ, ¿e Ÿród³a Samby wymagaj¹ kompilatora ANSI C. Jeœli u¿y wasz systemu, którego kompilator jest niezgodny z tym standardem (jak na
przyk³ad kompilator cc z Sun OS 4), bêdziesz musia³ najpierw zainstalowaæ kompilator zgodny z ANSI, na przyk³ad gcc*. Jeœli nie poci¹ga ciê perspektywa instalowania kompilatora, mo¿esz zacz¹æ od pakietu binarnego. Jednak dla zapewniania najwiêkszej elastycznoœci i zgodnoœci ze swoim systemem powinieneœ zawsze skompilowaæ najnowsze pliki Ÿród³owe.

Przeczytaj dokumentacjê
Wydaje siê to doœæ oczywist¹ rad¹, ale prawdopodobnie nie raz zdarzy³o ci siê zdekompresowaæ pakiet, wpisaæ na chybcika configure, make oraz make install
i udaæ siê po kolejn¹ fili¿ankê kawy. Przyznajemy, ¿e sami tak robimy, du¿o czêœciej
ni¿ powinniœmy. To jednak kiepski pomys³ – zw³aszcza wtedy, gdy planujesz
oprzeæ na Sambie swoj¹ sieæ.
Samba 2.0 sama konfiguruje siê przed instalacj¹. Zmniejsza to ryzyko wyst¹pienia
problemów zale¿nych od konfiguracji komputera, ale w pliku README mo¿e byæ
wspomniana jakaœ opcja, której bêdzie ci brakowaæ po zainstalowaniu Samby. Zarówno w pakiecie binarnym, jak i Ÿród³owym znajdziesz w katalogu docs wiele dokumentów w ró¿nych formatach. Dwa najwa¿niejsze to:
* Kompilator gcc jest dostêpny w postaci binarnej dla niemal wszystkich wspó³czesnych systemów. Listê
witryn z gcc i innymi programi GNU znajdziesz pod adresem http://www.gnu.org/.

32

Rozdzia³ 2: Instalowanie Samby w Uniksie

WHATSNEW.txt
docs/textdocs/UNIX_INSTALL.txt

Pliki te informuj¹, jakich funkcji mo¿esz oczekiwaæ w danej dystrybucji Samby
i zwracaj¹ uwagê na czêste problemy instalacyjne, z którymi przyjdzie ci siê zmierzyæ. Koniecznie przeczytaj oba te pliki, zanim przyst¹pisz do instalacji.

Konfigurowanie Samby
•ród³owa instalacja Samby 2.0 i nowszych wersji pocz¹tkowo nie zawiera pliku makefile. Nale¿y wygenerowaæ go za pomoc¹ skryptu GNU configure, który jest ulokowany w katalogu samba-2.0.x/source. Skrypt configure, który nale¿y uruchomiæ
z uprawnieniami u¿ytkownika root, konfiguruje opcje instalacyjne zale¿ne od systemu. Jeœli jednak chcia³byœ mieæ wp³yw na pewne parametry globalne, mo¿esz ustawiæ je za pomoc¹ opcji linii polecenia:
# ./configure --with-ssl

Powy¿szy przyk³ad konfiguruje plik makefile Samby do obs³ugi protoko³u szyfruj¹cego Secure Sockets Layer (SSL). Jeœli chcia³byœ wyœwietliæ pe³n¹ listê opcji, wydaj nastêpuj¹ce polecenie:
# ./configure --help

Ka¿da z opcji w³¹cza lub wy³¹cza ró¿ne funkcje Samby. W³¹czenie danej funkcji polega zwykle na dodaniu opcji typu --with-funkcja, która powoduje skompilowanie i zainstalowanie funkcji. Podobnie, jeœli podasz opcjê --without-funkcja,
okreœlona funkcja zostanie wy³¹czona. W wersji 2.0.5 Samby poni¿sze funkcje s¹ domyœlnie wy³¹czone:
--with-smbwrapper
Do³¹cza obs³ugê nak³adki SMB, dziêki której uniksowe programy mog¹ korzystaæ z systemów plików SMB/CIFS tak, jakby by³y to zwyk³e systemy uniksowe.
Zalecamy w³¹czenie tej opcji. Jednak¿e w czasie oddawania tej ksi¹¿ki do druku
istnia³y pewne niezgodnoœci miêdzy pakietem smbwrapper i bibliotek¹ GNU glibc
w wersji 2.1, co uniemo¿liwia³o jego kompilacjê w Red Hacie 6.0. Wiêcej informacji o tych niezgodnoœciach mo¿na znaleŸæ na stronie g³ównej Samby.
--with-afs
Do³¹cza obs³ugê systemu plików Andrew Filesystem, opracowanego na Uniwersytecie Carnegie Mellon. Jeœli nawet zamierzasz udostêpniaæ pliki AFS za poœrednictwem Samby, radzimy wstêpnie skompilowaæ Sambê bez tej opcji i upewniæ siê, ¿e
wszystko dzia³a poprawnie. Nastêpnie mo¿na ponownie skompilowaæ Sambê
z w³¹czon¹ obs³ug¹ AFS i porównaæ ewentualne b³êdy z wczeœniejsz¹ konfiguracj¹.
--with-dfs
Do³¹cza obs³ugê DFS, nowszej wersji AFS u¿ywanej przez OSF/1 (Digital Unix).
Warto podkreœliæ, ¿e jest to zupe³nie inny system plików ni¿ Microsoft DFS. I tym
razem radzimy wstêpnie skompilowaæ Sambê bez tej opcji i upewniæ siê, ¿e
wszystko dzia³a poprawnie, a nastêpnie ponownie skompilowaæ Sambê z t¹
opcj¹ i porównaæ ewentualne b³êdy z wczeœniejsz¹ konfiguracj¹.

Konfigurowanie Samby

33

--with-krb4=katalog-podstawowy
Do³¹cza obs³ugê protoko³u Kerberos w wersji 4.0, jawnie okreœlaj¹c podstawowy
katalog dystrybucji. Kerberos to sieciowy protokó³ bezpieczeñstwa opracowany
w MIT, który wykorzystuje kryptografiê z kluczem prywatnym do zapewnienia
œcis³ej ochrony wêz³ów sieci. Tak na marginesie, Microsoft zapowiedzia³, ¿e Kerberos w wersji 5.0 bêdzie standardowym mechanizmem uwierzytelniaj¹cym
w Windows 2000 (NT 5.0). Mechanizmy uwierzytelniania Kerberosa 5.0 ró¿ni¹
siê jednak znacznie od mechanizmów bezpieczeñstwa Kerberosa 4.0. Jeœli u¿ywasz w swoim systemie Kerberosa 4, zespó³ programistów Samby zaleca uaktualnienie i u¿ycie opcji --with-krb5 (patrz nastêpny punkt). Wiêcej informacji
o Kerberosie znajdziesz pod adresem http://web.mit.edu/kerberos/www.
--with-krb5=katalog-podstawowy
Do³¹cza obs³ugê protoko³u Kerberos w wersji 5.0, jawnie okreœlaj¹c podstawowy
katalog dystrybucji. Microsoft og³osi³, ¿e Kerberos 5.0 bêdzie standardowym mechanizmem uwierzytelniaj¹cym w Windows 2000 (NT 5.0). Jednak¿e nie ma
gwarancji, ¿e w przysz³oœci Microsoft nie wprowadzi do Kerberosa w³asnych poprawek. Obecnie obs³uga Kerberosa w Sambie uwzglêdnia tylko has³a przesy³ane otwartym tekstem, a nie zaszyfrowane. Wiêcej informacji o Kerberosie
znajdziesz na jego stronie g³ównej pod adresem http://web.mit.edu/kerberos/www.
--with-automount
Do³¹cza obs³ugê automatycznego programu montuj¹cego, czêsto u¿ywanego
w sieciach wykorzystuj¹cych NFS.
--with-smbmount
Do³¹cza obs³ugê programu smbmount, dzia³aj¹cego tylko w Linuksie. Kod tego
programu nie jest ju¿ rozwijany, wiêc programiœci Samby zdecydowali, ¿e opcja
ta bêdzie domyœlnie wy³¹czona i w zamian udostêpnili program smbwrapper. Ten
ostatni dzia³a tak¿e w innych odmianach Uniksa, wiêc prawdopodobnie lepiej
bêdzie u¿yæ opcji --with-smbwrapper.
--with-pam
Do³¹cza obs³ugê wymiennych modu³ów uwierzytelniaj¹cych (Pluggable Authentication Modules, PAM), mechanizmu uwierzytelniaj¹cego u¿ywanego w wielu
dystrybucjach Linuksa.
--with-ldap
Do³¹cza obs³ugê protoko³u Lightweight Directory Access Protocol (LDAP).
Przysz³a wersja LDAP bêdzie u¿ywana w systemie operacyjnym Windows 2000
(NT 5.0); obs³uga tego protoko³u w Sambie jest eksperymentalna. LDAP to ela styczny protokó³ katalogowy* typu klient-serwer, który umo¿liwia przenoszenie
informacji o certyfikatach i przynale¿noœci do grup.
--with-nis
Umo¿liwia pozyskiwanie informacji z pliku hase³ NIS (sieciowych „¿ó³tych
stron”).
* Przez katalog nie rozumiemy tutaj katalogu w systemie plików, ale poindeksowany spis (taki jak
ksi¹¿ka telefoniczna). Publiczny system LDAP umo¿liwia ³atwe sk³adowanie i udostêpnia nie informacji.

34

Rozdzia³ 2: Instalowanie Samby w Uniksie

--with-nisplus
Umo¿liwia pozyskiwanie informacji z pliku hase³ NIS+, nastêpcy NIS.
--with-ssl
Do³¹cza eksperymentaln¹ obs³ugê protoko³u Secure Sockets Layer (SSL), u¿ywanego do tworzenia szyfrowanych po³¹czeñ miêdzy klientem i serwerem. Wiêcej
informacji na ten temat znajdziesz w dodatku A, Konfigurowanie Samby do obs³ugi
SSL.
--with-nisplus-home
Umo¿liwia lokalizowanie serwera z katalogiem macierzystym u¿ytkownika
i ³¹czenie klienta z tym serwerem. Wymaga u¿ycia opcji --with-nis i zwykle
--with-automounter.
--with-mmap
Uaktywnia eksperymentalny kod mapowania plików w pamiêci. Opcja ta nie jest
wymagana do zapewnienia szybkich blokad, które i tak u¿ywaj¹ mapowania plików w pamiêci lub pamiêci dzielonej typu System V.
--with-syslog
W³¹cza obs³ugê rejestrowania przez mechanizm SYSLOG informacji generowanych przez serwer Samby. Istnieje kilka opcji konfiguracyjnych Samby, dziêki
którym mo¿na w³¹czyæ rejestrowanie komunikatów serwera przez SYSLOG;
opcje te omówimy w rozdziale 4, Udzia³y dyskowe.
--with-netatalk
W³¹cza eksperymentaln¹ wspó³pracê z (macintoshowym) serwerem plików Netatalk.
--with-quotas
Do³¹cza obs³ugê limitów dyskowych.
Opcje te s¹ domyœlnie wy³¹czone, poniewa¿ ¿adna z nich nie ma zasadniczego
wp³ywu na dzia³anie Samby. Mo¿esz jednak zawsze wróciæ do tego punktu i skompilowaæ zmodyfikowan¹ wersjê Samby, gdyby okaza³o siê, ¿e któraœ z nich jest ci potrzebna.
W tabeli 2.1 wymienione s¹ dodatkowe parametry, które mo¿esz przekazaæ skryptowi configure, jeœli chcia³byœ umieœciæ ró¿ne czêœci dystrybucji Samby w niestandardowych katalogach, na przyk³ad w celu wykorzystania kilku dysków lub partycji. Zauwa¿, ¿e œcie¿ki domyœlne czasem odwo³uj¹ siê do przedrostka okreœlonego za pomoc¹ opcji --prefix.
Tabela 2.1. Dodatkowe opcje konfiguracyjne
Opcja

Opis

Wartoœæ domyœlna

--prefix=katalog

Instaluje pliki niezale¿ne od architektury w okreœlonym katalogu podstawowym
Instaluje pliki zale¿ne od architektury
w okreœlonym katalogu podstawowym

/usr/local/samba

--eprefix=katalog

/usr/local/samba

Konfigurowanie Samby

35

Opcja

Opis

Wartoœæ domyœlna

--bindir=katalog

Instaluje wykonywalne pliki u¿ytkownika w okreœlonym katalogu
Instaluje wykonywalne pliki administratora w okreœlonym katalogu
Instaluje wykonywalne pliki programów w okreœlonym katalogu
Instaluje pliki przeznaczone tylko do
odczytu i niezale¿ne od architektury
w okreœlonym katalogu
Instaluje biblioteki programów w
okreœlonym katalogu
Instaluje pliki nag³ówkowe pakietu w
okreœlonym katalogu
Instaluje dodatkowe pliki konfiguracyjne w okreœlonym katalogu
Instaluje strony man w okreœlonym
katalogu

eprefix/bin

--sbindir=katalog
--libexecdir=katalog
--datadir=katalog

--libdir=katalog
--includedir=katalog
--infodir=katalog
--mandir=katalog

eprefix/bin
eprefix/libexec
prefix/share

eprefix/lib
prefix/include
prefix/info
prefix/man

Zanim uruchomisz skrypt configure, powinieneœ zalogowaæ siê w systemie jako root.
W przeciwnym wypadku prawdopodobnie otrzymasz nastêpuj¹ce ostrze¿enie:
configure: warning: running as non-root will disable some tests

(ostrze¿enie: uruchomienie skryptu bez uprawnieñ roota spowoduje pominiêcie
niektórych testów).
Lepiej nie pomijaæ ¿adnych testów podczas tworzenia pliku makefile Samby; mog³oby
to spowodowaæ b³êdy podczas kompilowania lub uruchamiania ju¿ skompilowanej
Samby.
Oto przyk³adowe wyniki wykonania skryptu configure, który tworzy plik makefile
Samby 2.0.4 do kompilacji w Linuksie. Skrypt configure nale¿y uruchomiæ w katalogu source; w wynikach pominiêto czêœæ linii ze œrodka:
# cd samba-2.0.4b/source
# ./configure | tee mojdziennik
loading cache ./config.cache
checking for gcc... (cached) gcc
checking whether the C compiler (gcc -O ) works... yes
checking whether the C compiler (gcc -O ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for a BSD compatible install... (cached) /usr/bin/install -c
...(pominiêty fragment)...
checking configure summary
configure OK
creating ./config.status
creating include/stamp-h
creating Makefile
creating include/config.h

36

Rozdzia³ 2: Instalowanie Samby w Uniksie

Ogólnie rzecz bior¹c, ka¿dy komunikat skryptu configure nie zaczynaj¹cy siê od s³ów
checking lub creating jest b³êdem; czêsto pomaga przeadresowanie wyjœcia
skryptu do pliku, jak uczyniliœmy to powy¿ej za pomoc¹ polecenia tee. Jeœli
podczas konfiguracji wyst¹pi b³¹d, bardziej szczegó³owe informacje o nim mo¿na
znaleŸæ w pliku config.log, zapisanym w bie¿¹cym katalogu przez skrypt configure.
Jeœli konfiguracja jest poprawna, na ekranie pojawi siê komunikat checking configure summary, a po nim configure OK i cztery lub piêæ komunikatów o tworzeniu plików. Jak dot¹d, wszystko idzie g³adko... Nastêpny etap: kompilacja.

Kompilowanie i instalowanie Samby
W tym momencie powinieneœ byæ gotowy do skompilowania plików wykonywalnych Samby. Kompilowanie jest równie¿ ³atwe: wystarczy wpisaæ polecenie make
w katalogu source. Narzêdzie make wyœwietli mnóstwo informacji i komunikatów
o pomyœlnej kompilacji, zaczynaj¹c od:
Using FLAGS = -O -Iinclude ...

Budowanie programów zaczyna siê od kompilacji smbd i nmbd, a koñczy na poleceniu konsoliduj¹cym bin/make_printerdef. Oto przyk³adowa kompilacja Samby 2.0.4
w serwerze linuksowym:
# make
Using FLAGS = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -DSMBLOGFILE= " /
usr/local/samba/var/log.smb " -DNMBLOGFILE= " /usr/local/samba/var/log.nmb " DCONFIGFILE= " /usr/local/samba/lib/smb.conf " -DLMHOSTSFILE= " /usr/local/samba/lib/
lmhosts "
-DSWATDIR= " /usr/local/samba/swat " -DSBINDIR= " /usr/local/samba/bin " DLOCKDIR= " /usr/local/samba/var/locks " -DSMBRUN= " /usr/local/samba/bin/smbrun " DCODEPAGEDIR= " /usr/local/samba/lib/codepages " -DDRIVERFILE= " /usr/local/samba/lib/
printers.def " -DBINDIR= " /usr/local/samba/bin " -DHAVE_INCLUDES_H -DPASSWD_
PROGRAM= " /bin/passwd " -DSMB_PASSWD_FILE= " /usr/local/samba/private/smbpasswd "
Using FLAGS32 = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper DSMBLOGFILE= " /usr/local/samba/var/log.smb " -DNMBLOGFILE= " /usr/local/samba/var/log.
nmb " -DCONFIGFILE= " /usr/local/samba/lib/smb.conf " -DLMHOSTSFILE= " /usr/local/samba/
lib/lmhosts "
-DSWATDIR= " /usr/local/samba/swat " -DSBINDIR= " /usr/local/samba/bin "
-DLOCKDIR= " /usr/local/samba/var/locks " -DSMBRUN= " /usr/local/samba/bin/smbrun " DCODEPAGEDIR= " /usr/local/samba/lib/codepages " -DDRIVERFILE= " /usr/local/samba/lib/
printers.def " -DBINDIR= " /usr/local/samba/bin " -DHAVE_INCLUDES_H -DPASSWD_
PROGRAM= " /bin/passwd " -DSMB_PASSWD_FILE= " /usr/local/samba/private/smbpasswd "
Using LIBS = -lreadline -ldl -lcrypt -lpam
Compiling smbd/server.c
Compiling smbd/files.c
Compiling smbd/chgpasswd.c
...(pominiêty fragment)...
Compiling rpcclient/cmd_samr.c
Compiling rpcclient/cmd_reg.c
Compiling rpcclient/cmd_srvsvc.c
Compiling rpcclient/cmd_netlogon.c
Linking bin/rpcclient
Compiling utils/smbpasswd.c
Linking bin/smbpasswd
Compiling utils/make_smbcodepage.c
Linking bin/make_smbcodepage

Kompilowanie i instalowanie Samby

37

Compiling utils/nmblookup.c
Linking bin/nmblookup
Compiling utils/make_printerdef.c
Linking bin/make_printerdef

Jeœli napotkasz problemy podczas kompilacji, zajrzyj do dokumentacji Samby – byæ
mo¿e ich rozwi¹zanie oka¿e siê ³atwe. Mo¿esz tak¿e poprosiæ o pomoc w listach
wysy³kowych Samby, których adresy podajemy na koñcu dodatku D, Spis demonów
i poleceñ Samby, lub poszukaæ informacji na stronie g³ównej Samby. Wiêkszoœæ problemów z kompilacj¹ ma zwi¹zek z systemem i z regu³y ³atwo siê z nimi uporaæ.
Po skompilowaniu plików mo¿esz zainstalowaæ je w okreœlonych wczeœniej katalogach za pomoc¹ polecenia:
# make install

Jeœli uaktualniasz program, starsze wersje plików Samby zostan¹ zapisane z rozszerzeniem .old i bêdziesz móg³ przywróciæ poprzedni¹ wersjê za pomoc¹ polecenia
make revert. Po wydaniu polecenia make install, powinieneœ skopiowaæ pliki .old (jeœli takie istniej¹) do innego katalogu. W przeciwnym wypadku podczas nastêpnego instalowania Samby zostan¹ one nadpisane bez ostrze¿enia i utracisz poprzedni¹ wersjê programu. Jeœli skonfigurowa³eœ Sambê tak, aby korzysta³a z domyœlnych lokacji dla plików, nowe pliki zostan¹ zainstalowane w katalogach wymienionych w tabeli 2.2. Pamiêtaj, ¿e musisz przeprowadziæ instalacjê z konta, które ma
prawo do zapisu w docelowych katalogach; zwykle jest to konto u¿ytkownika root.
Tabela 2.2. Katalogi instalacyjne Samby
Katalog

Opis

/usr/local/samba
/usr/local/samba/bin
/usr/local/samba/lib
/usr/local/samba/man
/usr/local/samba/private
/usr/local/samba/swat
/usr/local/samba/var

G³ówne drzewo
Pliki binarne
smb.conf, lmhosts, pliki konfiguracyjne itp.
Dokumentacja Samby
Plik zaszyfrowanych hase³ Samby
Pliki programu SWAT
Pliki dziennika Samby, pliki blokady, informacje o liœcie
przegl¹dania, pliki pamiêci dzielonej, pliki z identyfikatorami
procesów

W nastêpnych rozdzia³ach bêdziemy od czasu do czasu u¿ywaæ skrótu katalog_samby na oznaczenie g³ównego drzewa katalogów Samby. W wiêkszoœci konfiguracji podstawowym katalogiem zainstalowanego pakietu Samby jest /usr/local/samba.
Czy nie skonfigurowa³eœ partycji /usr jako przeznaczonej tylko do odczytu? W takim
przypadku bêdziesz musia³ umieœciæ gdzie indziej pliki dziennika, blokady i hase³.

38

Rozdzia³ 2: Instalowanie Samby w Uniksie

Oto zapis instalacji przeprowadzonej w naszym komputerze. Jak widzisz, wybraliœmy /usr/local/samba (to jest katalog_samby) na podstawowy katalog dystrybucji.
# make install
Using FLAGS = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper - DSMBLOGFILE= " /
usr/local/samba/var/log.smb " -DNMBLOGFILE= " /usr/local/samba/var/log.nmb " DCONFIGFILE= " /usr/local/samba/lib/smb.conf " ...(pominiêty fragment)...
The binaries are installed. You may restore the old binaries (if there
were any) using the command " make revert " . You may uninstall the binaries
using the command " make uninstallbin " or " make uninstall " to uninstall
binaries, man pages and shell scripts.
...(pominiêty fragment)...
======================================================================
The SWAT files have been installed. Remember to read the swat/README
for information on enabling and using SWAT.
======================================================================

Jeœli ostatni komunikat dotyczy³ programu SWAT, uda³o ci siê zainstalowaæ wszystkie pliki. Gratulacje! Samba jest teraz w twoim systemie.

Koñcowe czynnoœci instalacyjne
Do wykonania zosta³o jeszcze kilka koñcowych czynnoœci. Nale¿y dodaæ narzêdzie
Samba Web Administration Tool (SWAT) do plików konfiguracyjnych /etc/services
i /etc/inetd.conf. Program SWAT dzia³a jako demon pod kontrol¹ inetd i udostêpnia
w przegl¹darkach WWW formularze s³u¿¹ce do tworzenia i modyfikowania plików
konfiguracyjnych SMB.
1. Aby dodaæ obs³ugê SWAT, dopisz nastêpuj¹c¹ liniê na koñcu pliku /etc/services:
swat

901/tcp

2. Dopisz poni¿sz¹ liniê do pliku /etc/inetd.conf (zajrzyj na stronê podrêcznika man
dla pliku inetd.conf, jeœli jego format w twoim systemie jest inny ni¿ pokazany
w przyk³adzie poni¿ej). Nie zapomnij zmieniæ œcie¿ki do pliku binarnego SWAT,
jeœli zainstalowa³eœ go w katalogu innym ni¿ domyœlny (/usr/local/samba).
swat

stream tcp

nowait.400 root /usr/local/samba/bin/swat

swat

Na tym instalacja dobiega koñca. Zanim jednak uruchomisz Sambê, musisz utworzyæ jej plik konfiguracyjny.

Podstawowy plik konfiguracyjny Samby
Kluczem do konfigurowania Samby jest jej pojedynczy plik konfiguracyjny: smb.conf.
Plik ten mo¿e byæ zupe³nie prosty albo niezwykle skomplikowany (resztê ksi¹¿ki
poœwiêciliœmy temu, abyœ nabra³ do niego bardzo osobistego stosunku). Na razie poka¿emy ci, jak skonfigurowaæ jedn¹ us³ugê plikow¹, abyœ móg³ uruchomiæ demony
Samby i upewniæ siê, ¿e wszystko dzia³a tak, jak powinno. W nastêpnych roz-

Podstawowy plik konfiguracyjny Samby

39

dzia³ach dowiesz siê, jak skonfigurowaæ Sambê do bardziej skomplikowanych i interesuj¹cych zadañ.
Plik konfiguracyjny smb.conf nie jest automatycznie tworzony w procesie instalacji,
choæ kilka przyk³adowych plików jest do³¹czonych do dystrybucji Samby. Aby przetestowaæ programy serwera, u¿yjemy jednak poni¿szego pliku. Powinien on nazywaæ siê smb.conf i znajdowaæ w katalogu /usr/local/samba/lib*.
[global]
workgroup = PROSTA_GRUPA
[test]
comment = Tylko w celach testowych, jeœli ³aska
path = /export/samba/test
read only = no
guest ok = yes

Ten krótki plik konfiguracyjny mówi serwerowi Samby, aby udostêpni³ katalog
/export/samba/test jako udzia³ SMB/CIFS o nazwie test. Serwer staje siê tak¿e czêœci¹ grupy roboczej o nazwie PROSTA_GRUPA, której cz³onkiem musi byæ tak¿e ka¿dy klient (u¿yj zamiast tego nazwy w³asnej grupy roboczej, jeœli wiesz ju¿, jak bêdzie brzmia³a). Udzia³u [test] u¿yjemy w nastêpnym rozdziale, demonstruj¹c
konfigurowanie klientów Windows. Teraz dokoñcz konfigurowanie Samby, wprowadzaj¹c nastêpuj¹ce polecenia w uniksowym serwerze jako u¿ytkownik root:
# mkdir /export/samba/test
# chmod 777 /export/samba/test

Winniœmy nadmieniæ, ¿e z punktu widzenia bezpieczeñstwa systemu jest to najgorsza z mo¿liwych konfiguracji. Na razie chcemy jednak tylko przetestowaæ Sambê,
wiêc tymczasowo pominiemy kwestie bezpieczeñstwa. Co wiêcej, niebawem zapoznamy siê z pewnymi zagadnieniami dotycz¹cymi szyfrowania hase³ przez klien tów Windows, a taka konfiguracja przysporzy nam najmniej k³opotów.
Jeœli u¿ywasz Windows 98 lub Windows NT z dodatkiem Service Pack 3 lub nowszym,
musisz dodaæ nastêpuj¹cy wpis do sekcji [global] pliku konfiguracyjnego Samby:
encrypt passwords = yes. Oprócz tego musisz u¿yæ programu smbpassword (zwykle umieszczonego w katalogu /usr/local/samba/bin), aby wprowadziæ do zaszyfrowanej
bazy danych klientów Samby kombinacje „nazwa u¿ytkownika-has³o” dla tych
u¿ytkowników uniksowego serwera, którzy powinni mieæ dostêp do udzia³ów. Jeœli
chcia³byœ na przyk³ad pozwoliæ uniksowemu u¿ytkownikowi stefan na dostêp do
udzia³ów serwera z klienta SMB, wpisa³byœ polecenie smbpassword -a stefan. Kiedy dodasz pierwszego u¿ytkownika, program wyœwietli komunikat o b³êdzie, informuj¹c, ¿e baza hase³ nie istnieje. Nie martw siê – program automatycznie utworzy tê
bazê danych. Upewnij siê, ¿e kombinacje „nazwa u¿ytkownika-has³o” dodawane do
zaszyfrowanej bazy danych odpowiadaj¹ nazwom i has³om, które bêd¹ u¿ywane
w klientach Windows.

* Jeœli nie kompilowa³eœ Samby, lecz pobra³eœ pakiet binarny, sprawdŸ w dokumentacji, gdzie nale¿y
umieœciæ plik smb.conf. Jeœli Samba zosta³a zainstalowana wraz z systemem, plik ten prawdopodobnie znajduje siê ju¿ w którymœ katalogu.

40

Rozdzia³ 2: Instalowanie Samby w Uniksie

Korzystanie z programu SWAT
Od wersji 2.0 Samby nie trzeba pisaæ rêcznie pliku konfiguracyjnego. Mo¿esz uruchomiæ przegl¹darkê WWW, po³¹czyæ siê z adresem http://localhost:901 i zalogowaæ
siê na koncie roota, co przedstawia rysunek 2.1.

Rysunek 2.1. Logowanie siê w programie SWAT

Po zalogowaniu siê kliknij przycisk GLOBALS na górze ekranu. Powinieneœ zobaczyæ stronê Global Variables, przedstawion¹ na rysunku 2.2.

Rysunek 2.2. Strona Global Variables w programie SWAT

Wpisz PROSTA_GRUPA w pole workgroup i ustaw pole security na USER. W tym
menu musisz zmieniæ jeszcze jedn¹ opcjê, okreœlaj¹c¹, który system w sieci lokalnej
odwzorowuje adresy NetBIOS-u; system ten nazywany jest serwerem WINS. Na samym dole strony ustaw pole WINS support na Yes, chyba ¿e w twojej sieci jest ju¿
serwer WINS. W takim przypadku wpisz adres IP serwera WINS w pole wins se rver. Nastêpnie wróæ na górê ekranu i kliknij przycisk Commit Changes, aby zapisaæ
zmiany w pliku smb.conf.

Podstawowy plik konfiguracyjny Samby

41

Rysunek 2.3. Strona Share Creation programu SWAT

Nastêpnie kliknij ikonê SHARES. Powinieneœ zobaczyæ stronê tak¹ jak na rysunku
2.3. Wybierz nazwê test z listy obok przycisku Choose Share. Zobaczysz stronê Share Parameters, przypominaj¹c¹ tê z rysunku 2.4. Wczeœniej dopisaliœmy w pliku
smb.conf komentarz, który przypomina³, ¿e jest to tylko udzia³ testowy. SWAT skopiowa³ wszystkie te informacje.

Rysunek 2.4. Strona Share Parameters programu SWAT

42

Rozdzia³ 2: Instalowanie Samby w Uniksie

Jeœli klikniesz przycisk View, SWAT wyœwietli nastêpuj¹cy plik smb.conf:
# Samba config file created using SWAT
# from localhost (127.0.0.1)
# Date: 1998/11/27 15:42:40
# Global parameters
workgroup = PROSTA_GRUPA
[test]
comment = Tylko w celach testowych, jeœli ³aska
path = /export/samba/test
read only = No
guest ok = Yes

Kiedy plik konfiguracyjny bêdzie gotowy, mo¿esz pomin¹æ nastêpny etap, poniewa¿ dane wyjœciowe programu SWAT s¹ na pewno poprawne pod wzglêdem syntaktycznym.

Testowanie pliku konfiguracyjnego
Jeœli nie tworzy³eœ pliku konfiguracyjnego za pomoc¹ programu SWAT, prawdopodobnie powinieneœ przetestowaæ go i upewniæ siê, ¿e jest poprawny pod wzglêdem syntaktycznym. Pomys³ sprawdzania oœmiowierszowego pliku konfiguracyjnego programem
testuj¹cym mo¿e wydawaæ siê œmieszny, ale robimy to, aby nabraæ wprawy przed
sprawdzaniem prawdziwych plików konfiguracyjnych, które bêdziemy pisaæ póŸniej.
Analizator sk³adniowy, program testparm, sprawdza plik smb.conf pod k¹tem b³ê dów syntaktycznych i informuje o wszystkich znalezionych uchybieniach, wyœwietlaj¹c zarazem listê us³ug udostêpnianych przez serwer. Poni¿ej podajemy przyk³ad; jak zauwa¿ysz, tak nam by³o spieszno do uruchomienia serwera, ¿e w poœpiechu zamiast workgroup napisaliœmy workgrp (wyniki programu s¹ czêsto doœæ
d³ugie, wiêc radzimy przechwyciæ koñcówkê za pomoc¹ polecenia tee):
Load smb config files from smb.conf
Unknown parameter encountered: " workgrp "
Ignoring unknown parameter " workgrp "
Processing section " [test] "
Loaded services file OK.
Press enter to see a dump of your service definitions
# Global parameters
[global]
workgroup = WORKGROUP
netbios name =
netbios aliases =
server string = Samba 2.0.5a
interfaces =
bind interfaces only = No
...(pominiêty fragment)...
[test]
comment = Tylko w celach testowych, jeœli ³aska
path = /export/samba/test
read only = No
guest ok = Yes

Uruchamianie demonów Samby

43

Interesuj¹ce informacje znajduj¹ siê na pocz¹tku i na koñcu. W pocz¹tkowej czêœci
wyników zaznaczone s¹ wszystkie b³êdy sk³adni, a w czêœci koñcowej widnieje lista
us³ug, które serwer zamierza udostêpniæ. Dobra rada: upewnij siê, ¿e ty i serwer macie takie same pogl¹dy.
Jeœli wszystko jest w porz¹dku, mo¿esz przyst¹piæ do uruchomienia demonów serwera!

Uruchamianie demonów Samby
Aby Samba pracowa³a poprawnie, w systemie musz¹ dzia³aæ dwa procesy: smbd
i nmbd. Istniej¹ trzy sposoby ich uruchomienia:
· rêcznie,
· jako demony autonomiczne,
· za poœrednictwem inetd.

Rêczne uruchamianie demonów
Jeœli siê spieszysz, mo¿esz uruchomiæ demony Samby rêcznie. Wpisz po prostu jako
root nastêpuj¹ce dwa polecenia:
# /usr/local/samba/bin/smbd -D
# /usr/local/samba/bin/nmbd -D

Od tego momentu Samba zacznie dzia³aæ w systemie i bêdzie gotowa na przyjmowanie po³¹czeñ.

Demony autonomiczne
Aby uruchomiæ procesy Samby jako demony autonomiczne, musisz dodaæ powy¿sze polecenia do standardowych skryptów startowych Uniksa. Procedura ta ró¿ni
siê w zale¿noœci od tego, czy u¿ywasz Uniksa typu BSD, czy te¿ typu System V.
Unix BSD
W Uniksach typu BSD musisz dopisaæ poni¿szy kod do pliku rc.local, przechowywanego zwykle w katalogu /etc lub /etc/rc.d:
if [ -x /usr/local/samba/bin/smbd]; then
echo " Uruchamiam smbd... "
/usr/local/samba/bin/smbd -D
echo " Uruchamiam nmbd... "
/usr/local/samba/bin/nmbd -D
fi

Kod jest bardzo prosty: sprawdza, czy plik smbd ma ustawione prawo do wykonania, a jeœli tak, to uruchamia oba demony Samby podczas startu systemu.
Unix System V
W Uniksach typu System V sprawy nieco siê komplikuj¹. System V zwykle u¿ywa
oddzielnych skryptów do uruchamiania i zatrzymywania systemowych demonów.
Dlatego musisz poinstruowaæ Sambê, co ma robiæ, kiedy zaczyna lub koñczy pracê.

44

Rozdzia³ 2: Instalowanie Samby w Uniksie

Mo¿esz w tym celu zmodyfikowaæ zawartoœæ katalogu /etc/rc.d/init.d, umieszczaj¹c
w nim program o nazwie smb podobny do poni¿szego:
#!/bin/sh
# Zawiera funkcjê " killproc " w Linuksie Red Hat
./etc/rc.d/init.d/functions
PATH= " /usr/local/samba/bin:$PATH "
case $1 in
'start')
echo " Uruchamiam smbd... "
smbd -D
echo " Uruchamiam nmbd... "
nmbd -D
;;
'stop')
echo " Zatrzymujê smbd i nmbd... "
killproc smbd
killproc nmbd
rm -f /usr/local/samba/var/locks/smbd.pid
rm -f /usr/local/samba/var/locks/nmbd.pid
;;
*)
echo " sk³adnia: smb {start|stop} "
;;
esac

Dziêki temu skryptowi mo¿esz uruchamiaæ i zatrzymywaæ us³ugi SMB za pomoc¹
nastêpuj¹cych poleceñ:
# /etc/rc.d/init.d/smb start
Uruchamiam smbd...
Uruchamiam nmbd...
# /etc/rc.d/init.d/smb stop
Zatrzymujê smbd i nmbd...

Uruchamianie demonów za poœrednictwem inetd
Demon inetd to internetowy „superdemon” systemów uniksowych, który monitoruje porty TCP zdefiniowane w pliku /etc/services i wykonuje odpowiedni program dla
ka¿dego portu, co jest zdefiniowane w pliku /etc/inetd.conf. Rozwi¹zanie takie ma tê
zaletê, ¿e mo¿esz dysponowaæ znaczn¹ liczb¹ demonów gotowych do œwiadczenia
us³ug, które nie musz¹ byæ uruchomione – demon inetd odbiera ¿¹dania w ich imieniu. Wad¹ jest niewielki narzut zwi¹zany z tworzeniem nowego procesu demona
oraz koniecznoœæ edytowania dwóch plików konfiguracyjnych zamiast jednego.
Metoda ta przydaje siê, jeœli twój komputer ma jednego lub dwóch u¿ytkowników
albo dzia³a w nim zbyt wiele demonów. £atwiej jest te¿ przeprowadziæ uaktualnienie oprogramowania bez zrywania istniej¹cych po³¹czeñ.
Jeœli chcesz uruchamiaæ Sambê za poœrednictwem inetd, najpierw otwórz w edytorze
plik /etc/services. Jeœli nie ma w nim jeszcze poni¿szych linii, dopisz je:
netbios-ssn
netbios-ns

139/tcp
137/udp

Testowanie demonów Samby

45

Nastêpnie zmodyfikuj plik /etc/inetd.conf. Poszukaj w nim poni¿szych dwóch linii,
a jeœli ich nie znajdziesz, dopisz je. Jeœli linie dla demonów smbd i nmbd s¹ ju¿ w pliku, zmodyfikuj je tak, aby wskazywa³y na katalog, w którym zainstalowa³eœ oba demony. Twoja odmiana Uniksa mo¿e u¿ywaæ nieco innej sk³adni tego pliku; kieruj siê
ju¿ istniej¹cymi wpisami i stron¹ podrêcznika man dla pliku inetd.conf:
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
netbios-ns dgram udp wait
root /usr/local/samba/bin/nmbd nmbd

Wreszcie usuñ wszystkie procesy smbd i nmbd i wyœlij sygna³ HUP procesowi inetd (demon inetd ponownie wczytuje swój plik konfiguracyjny po otrzymaniu
tego sygna³u). W tym celu u¿yj polecenia ps, aby ustaliæ identyfikator procesu,
i wyœlij sygna³ za pomoc¹ polecenia:
# kill -HUP identyfikator_procesu

Od tego momentu Samba powinna dzia³aæ.

Testowanie demonów Samby
Trudno w to uwierzyæ, ale niemal skoñczyliœmy ju¿ konfigurowanie serwera Samby. Pozosta³o tylko sprawdziæ, czy wszystko dzia³a tak, jak powinno. Najwygodniejszym sposobem bêdzie u¿ycie programu smbclient w celu sprawdzenia, jakie us³ugi
serwer oferuje w sieci. Jeœli wszystko jest skonfigurowane prawid³owo, powinieneœ
móc wykonaæ nastêpuj¹ce polecenie:
# smbclient -U% -l localhost
Added interface ip=192.168.220.100 bcast=192.168.220.255 nmask=255.255.255.0
Domain=[PROSTA_GRUPA] OS=[Unix] Server=[Samba 2.0.5a]
Sharename
--------test
IPC$

Type
---Disk
IPC

Comment
------Tylko w celach testowych, jeœli ³aska
IPC Service (Samba 2.0.5a)

Server
--------HYDRA

Comment
------Samba 2.0.5a

Workgroup
--------PROSTA_GRUPA

Master
------HYDRA

Jeœli pojawi³ siê jakiœ problem, nie panikuj! Spróbuj uruchomiæ demony rêcznie
i sprawdŸ komunikaty systemowe lub plik diagnostyczny /usr/local/samba/var/log.smb,
aby ustaliæ przyczynê niepowodzenia. Jeœli uwa¿asz, ¿e problem jest powa¿niejszy,
zajrzyj do rozdzia³u 7, Drukowanie i odwzorowywanie nazw, gdzie znajdziesz wskazówki dotycz¹ce diagnozowania demonów Samby.
Jeœli wszystko dzia³a, gratulujemy! Uda³o ci siê skonfigurowaæ serwer Samby
z udzia³em dyskowym. Jest to doœæ prosty serwer, ale mo¿emy go wykorzystaæ do
skonfigurowania i przetestowania klientów Windows 95 i NT w nastêpnym rozdziale. Bêdziemy stopniowo rozszerzaæ jego mo¿liwoœci, dodaj¹c us³ugi, takie jak dostêp
do katalogów macierzystych, drukowanie i mechanizmy bezpieczeñstwa, a wreszcie integruj¹c go z domen¹ Windows.

Konfigurowanie
klientów Windows

3

Rozdzia³ 3: Konfigurowanie klientów Windows

Z pewnoœci¹ ucieszy ciê wiadomoœæ, ¿e konfigurowanie klientów Windows do
wspó³pracy z serwerem Samby jest bardzo proste. Protokó³ SMB to rodzimy jêzyk
Microsoftu u¿ywany do wspó³dzielenia zasobów w sieci lokalnej, wiêc wiêksza czêœæ
instalacji i konfiguracji po stronie Windows zosta³a ju¿ przeprowadzona. Podstawowe kwestie, którymi zajmiemy siê w tym rozdziale, to komunikacja i koordynacja
miêdzy Windows a Uniksem, dwoma zupe³nie ró¿nymi systemami operacyjnymi.
Samba u¿ywa TCP/IP do porozumiewania siê z klientami w sieci. Jeœli nie korzystasz jeszcze z protoko³u TCP/IP w komputerach Windows, w tym rozdziale wyjaœnimy, jak go zainstalowaæ. Nastêpnie bêdziesz musia³ skonfigurowaæ komputery
Windows do pracy w sieci TCP/IP. Kiedy te dwa wymagania bêd¹ spe³nione, poka¿emy, jak uzyskaæ dostêp do wspó³dzielonego dysku w serwerze Samby.
Rozdzia³ ten podzielony jest na trzy czêœci. W pierwszej zajmiemy siê konfigurowaniem komputerów Windows 95/98, a w drugiej – Windows NT 4.0. Ostatnia czêœæ
zawiera pewne wstêpne informacje o nawi¹zywaniu po³¹czeñ SMB przez klienty
Windows i serwery. Wiadomoœci te przydadz¹ siê w dalszych rozdzia³ach ksi¹¿ki.

Konfigurowanie komputerów Windows 95/98
Niestety, systemy Windows 95/98 nie zosta³y zaprojektowane jako platformy dla
wielu u¿ytkowników, w przeciwieñstwie do Uniksa albo Windows NT. Systemy te
mog¹ jednak do pewnego stopnia obs³ugiwaæ wielu u¿ytkowników: jeœli zechcesz,
system operacyjny bêdzie przechowywa³ oddzielny profil (uk³ad pulpitu) oraz plik
hase³ dla ka¿dego u¿ytkownika, choæ jest to tylko blade odbicie œrodowiska prawdziwie wielodostêpnego. Innymi s³owy, Windows 95/98 nie przeszkodzi ci w zniszczeniu pracy innego u¿ytkownika zapisanej na lokalnym dysku, jak to czyni Unix,
ale od czegoœ trzeba zacz¹æ.

Konta i has³a
Najpierw musimy poinformowaæ Windows, ¿e nale¿y przechowywaæ oddzielne
profile u¿ytkowników i gromadziæ nazwy u¿ytkowników i has³a w celu uwierzytelniania osób próbuj¹cych skorzystaæ z zasobów Samby. S³u¿y do tego aplet Has³a

48

Rozdzia³ 3: Konfigurowanie klientów Windows

w Panelu sterowania. Jeœli jeszcze nie pos³ugiwa³eœ siê Panelem sterowania Win dows, mo¿esz go otworzyæ, wybieraj¹c pozycjê Ustawienia z menu otwieranego
przez klikniêcie przycisku Start w lewym dolnym rogu ekranu. Znajdziesz go te¿
jako folder w oknie, które otworzy siê po klikniêciu ikony reprezentuj¹cej komputer,
umieszczonej zwykle w lewym górnym rogu ekranu i oznaczonej napisem Mój komputer.
Po wybraniu ikony Has³a w Panelu sterowania, kliknij kartê Profile u¿ytkownika.
Powinieneœ zobaczyæ okno dialogowe pokazane na rysunku 3.1. Nastêpnie kliknij
pole opcji oznaczone napisem zaczynaj¹cym siê od s³ów „U¿ytkownicy mog¹ dostosowaæ preferencje...”. Spowoduje to, ¿e system Windows bêdzie przechowywa³ oddzielny profil dla ka¿dego u¿ytkownika i zapisze wprowadzon¹ przez ciebie nazwê
u¿ytkownika i has³o, których u¿yje podczas ³¹czenia siê z serwerem SMB/CIFS.
Wreszcie zaznacz oba pola wyboru w ramce Ustawienia profilu u¿ytkownika, jak pokazano na rysunku.

Rysunek 3.1. Okno dialogowe W³aœciwoœci: Has³a

Teraz wybierz kartê Zmieñ has³o po lewej stronie okna dialogowego. Aby Samba pozwoli³a ci na dostêp do swoich zasobów, nazwa u¿ytkownika i has³o, które podajesz
podczas logowania siê w Windows, musz¹ odpowiadaæ nazwie konta i has³u na serwerze Samby. Jeœli w oknie dialogowym nie ma tej zak³adki, nie martw siê – prawdopodobnie nie nada³eœ sobie jeszcze nazwy u¿ytkownika Windows i has³a. Po prostu kliknij przycisk OK na dole okna i odpowiedz Tak na pytanie o ponowne uruchomienie systemu. Pomiñ nastêpny podrozdzia³ i przeczytaj ten zatytu³owany „Pierwsze logowanie”.

Konfigurowanie komputerów Windows 95/98

49

Zmiana has³a Windows
Po wybraniu karty Zmieñ has³o uka¿e siê okno dialogowe z rysunku 3.2.

Rysunek 3.2. Karta Zmieñ has³o

Kliknij przycisk Zmieñ has³o systemu Windows. Powinno ukazaæ siê okno dialogowe Zmieñ has³o systemu Windows z rysunku 3.3. Tutaj mo¿esz zmieniæ swoje has³o
tak, aby odpowiada³o has³u konta w serwerze Samby, przez które zamierzasz siê logowaæ.

Rysunek 3.3. Okno dialogowe Zmieñ has³o systemu Windows

Pierwsze logowanie
Jeœli w twoim oknie W³aœciwoœci: Has³a nie by³o karty Zmieñ has³o, to po ponownym uruchomieniu Windows zostaniesz poproszony o wprowadzenie nazwy u¿ytkownika i has³a. Skorzystaj z nazwy i has³a, które masz na serwerze Samby. Nastêpnie je potwierdŸ. Teraz, po potwierdzeniu, lub od razu, jeœli mia³eœ ju¿ wprowadzon¹ nazwê i has³o, Windows powinien zapytaæ, czy chcesz mieæ swój profil, wyœwietlaj¹c okno dialogowe z rysunku 3.4.
Odpowiedz Tak. Windows utworzy dla ciebie oddzielny profil i plik hase³, w którym zapisze kopiê twojego has³a. Kiedy bêdziesz ³¹czy³ siê z Samb¹, Windows wyœle
do niej has³o, które pos³u¿y do uwierzytelnienia twojego dostêpu do wszystkich

50

Rozdzia³ 3: Konfigurowanie klientów Windows

udzia³ów. Chwilowo nie bêdziemy zajmowaæ siê profilami; wrócimy do nich w rozdziale 6, U¿ytkownicy, bezpieczeñstwo i domeny. Powinniœmy jednak ostrzec, ¿e istnieje
tu pewne niebezpieczeñstwo: ktoœ mo¿e wykraœæ plik z has³ami i rozszyfrowaæ je,
poniewa¿ nie s¹ one silnie zaszyfrowane. Niestety, problemu tego nie da siê roz wi¹zaæ w Windows 95/98. W Windows 2000 (NT 5.0) szyfrowanie hase³ ma opieraæ
siê na znacznie lepszym algorytmie.

Rysunek 3.4. Profile sieci Windows

Konfigurowanie sieci
Teraz powinieneœ sprawdziæ, czy protokó³ sieciowy TCP/IP jest prawid³owo skonfigurowany. W tym celu kliknij dwukrotnie ikonê Sieæ w Panelu sterowania. Powinieneœ zobaczyæ okno dialogowe s³u¿¹ce do konfigurowania sieci, pokazane na rysunku 3.5.

Rysunek 3.5. Okno dialogowe Sieæ w Windows 95/98

Dzia³anie sieci Microsoftu opiera siê na wi¹zaniu okreœlonych protoko³ów, takich
jak IPX lub TCP/IP, z konkretnymi urz¹dzeniami sprzêtowymi, na przyk³ad z kart¹
Ethernetu lub po³¹czeniem dial-up. Przesy³aj¹c dane okreœlonego protoko³u przez

Konfigurowanie komputerów Windows 95/98

51

wskazane urz¹dzenie sprzêtowe, komputer mo¿e dzia³aæ jako klient lub serwer dla
okreœlonego typu sieci. W przypadku Samby powinniœmy powi¹zaæ protokó³ TCP/IP
z urz¹dzeniem sieciowym, czyni¹c komputer klientem sieci Microsoft. Kiedy wiêc
uka¿e siê okno dialogowe, w komputerze powinien byæ zainstalowany przynajmniej Klient sieci Microsoft Networks, a tak¿e urz¹dzenie sieciowe (najlepiej karta Ethernetu) powi¹zane z protoko³em TCP/IP. Jeœli w komputerze jest tylko jedno
urz¹dzenie sieciowe, protokó³ TCP/IP bêdzie wymieniony pod nim. Jeœli twoje
okno przypomina to z rysunku 3.5, protokó³ jest powi¹zany z urz¹dzeniem.
Byæ mo¿e zobaczysz te¿ przydatn¹ us³ugê udostêpniania plików i drukarek w sieciach Microsoft Networks. Oprócz tego mo¿e pojawiæ siê protokó³ NetBEUI lub protoko³y Novella, które s¹ standardowo instalowane w Windows, ale niepo¿¹dane
podczas pracy z TCP/IP. Usuñ protokó³ NetBEUI, jeœli to mo¿liwe – jest niepotrzebny i utrudnia diagnozowanie przegl¹dania zasobów sieci. Jeœli w twojej sieci nie ma
¿adnych serwerów Novella, mo¿esz usun¹æ równie¿ obs³ugê protoko³ów Novella
(IPX/SPX).
Dodawanie protoko³u TCP/IP
Jeœli protokó³ TCP/IP w ogóle nie jest wymieniony, bêdziesz musia³ go zainstalowaæ. Jeœli masz ju¿ TCP/IP, pomiñ ten etap i przyst¹p do lektury podrozdzia³u
„Ustawianie nazwy komputera i grupy roboczej”.
Instalowanie TCP/IP nie jest trudne, poniewa¿ Microsoft dystrybuuje w³asn¹ wersjê
protoko³u na instalacyjnym CD-ROM-ie. Protokó³ mo¿esz dodaæ, klikaj¹c przycisk
Dodaj w oknie sk³adników sieci. Zaznacz, ¿e chcesz dodaæ nowy protokó³, wybieraj¹c z listy pozycjê Protokó³ i klikaj¹c przycisk Dodaj... w wyœwietlonym oknie dialogowym, które powinno wygl¹daæ tak jak na rysunku 3.6.

Rysunek 3.6. Wybieranie protoko³u do zainstalowania

Nastêpnie zaznacz protokó³ TCP/IP producenta Microsoft, jak pokazano na rysunku 3.7 i kliknij przycisk OK. Wrócisz do okna dialogowego Sieæ. Kliknij OK, aby zamkn¹æ okno dialogowe, po czym Windows zainstaluje niezbêdne sk³adniki i po nownie uruchomi komputer.

52

Rozdzia³ 3: Konfigurowanie klientów Windows

Rysunek 3.7. Wybieranie protoko³u do zainstalowania

Konfigurowanie TCP/IP
Jeœli masz wiêcej ni¿ jedno urz¹dzenie sieciowe (na przyk³ad kartê Ethernetu i modem), powinny byæ one powi¹zane z protoko³em TCP/IP, co jest oznaczone strza³k¹
(patrz rysunek 3.8). Zaznacz protokó³ TCP/IP powi¹zany z urz¹dzeniem sieciowym, przez które bêdziesz ³¹czy³ siê z sieci¹ Samby, i kliknij przycisk W³aœciwoœci.

Rysunek 3.8. Zaznaczanie w³aœciwego protoko³u TCP/IP

Konfigurowanie komputerów Windows 95/98

53

Powinno ukazaæ siê okno w³aœciwoœci tego urz¹dzenia, pokazane na rysunku 3.9.

Rysunek 3.9. Okno W³aœciwoœci Protokó³ TCP/IP

Na górze okna widnieje siedem kart. Bêdziesz musia³ zmieniæ parametry na czterech
nastêpuj¹cych kartach:
· Adres IP,
· Konfiguracja DNS,
· Konfiguracja WINS,
· Powi¹zania.
Karta Adres IP
Karta Adres IP jest pokazana na rysunku 3.9. Kliknij pole opcji Podaj adres IP i wprowadŸ adres klienta oraz maskê podsieci w odpowiednie pola. Ty albo administrator
sieci powinniœcie wczeœniej wybraæ adres komputera. Wartoœci nale¿y dobraæ tak,
aby komputer znajdowa³ siê w tej samej podsieci, co serwer Samby. Jeœli na przyk³ad
adres serwera to 192.168.236.86, a jego maska podsieci to 255.255.255.0, móg³byœ
przypisaæ komputerowi Windows 98 adres 192.168.236.10 (jeœli jest wolny) i tak¹
sam¹ maskê podsieci, jak¹ ma serwer Samby. Jeœli w swojej sieci u¿ywasz serwera
DHCP do przydzielania adresów IP komputerom Windows, zaznacz pole opcji Automatycznie uzyskaj adres IP z serwera DHCP.

54

Rozdzia³ 3: Konfigurowanie klientów Windows

Karta Konfiguracja DNS
Us³uga Domain Name Service (DNS) jest odpowiedzialna za t³umaczenie internetowych nazw komputerów, takich jak finta.przyklad.com, na czytelne dla komputerów
adresy IP, takie jak 192.168.236.10. Istniej¹ dwa sposoby na dokonanie tego
w komputerze Windows: mo¿esz okreœliæ serwer, który zajmie siê t³umaczeniem, albo
przechowywaæ lokaln¹ listê par nazwa-adres, do której bêd¹ odwo³ywaæ siê programy.
Sieci pod³¹czone do Internetu u¿ywaj¹ zwykle serwera DNS, poniewa¿ plik z adresami hostów mia³by ogromne rozmiary. W sieci lokalnej (bez dostêpu do Internetu)
lista hostów jest krótka i dobrze znana; w komputerze uniksowym mo¿na j¹ przechowywaæ w pliku /etc/hosts. Jeœli nie jesteœ pewien, czy sieæ korzysta z serwera DNS
albo jaki jest jego adres, zajrzyj do pliku /etc/resolv.conf w serwerze uniksowym.
Wszystkie komputery u¿ywaj¹ce DNS bêd¹ mia³y ten plik. Wygl¹da on nastêpuj¹co:
#resolv.conf
domain przyklad.com
nameserver 127.0.0.1
nameserver 192.168.236.20

W podanym wy¿ej przyk³adzie druga linia nameserver zawiera adres IP innego
komputera w sieci lokalnej: 192.168.236.20. To dobry kandydat na serwer DNS*.
Musisz wpisaæ w³aœciwy adres IP jednego lub kilku serwerów DNS (zauwa¿, ¿e nie
mo¿esz u¿yæ jego internetowej nazwy, takiej jak dns.oreilly.com) w odpowiednie pole
(patrz rysunek 3.10). Nie wpisuj adresu 127.0.0.1 – to z pewnoœci¹ nie jest poprawny
adres serwera DNS!
Spróbuj wybraæ adres z w³asnej sieci. Dzia³aæ bêd¹ wszystkie serwery wymienione
w pliku /etc/resolv.conf, ale korzystaj¹c z pobliskiego serwera osi¹gniesz lepsz¹ wydajnoœæ (jeœli nie znalaz³eœ pliku /etc/resolv.conf w uniksowych komputerach, po prostu wy³¹cz DNS, dopóki nie poznasz adresu przynajmniej jednego serwera).
Za³ó¿my, ¿e masz tylko jeden serwer DNS, a jego adres to 192.168.236.20. Kliknij
pole opcji W³¹cz DNS, jak pokazano na rysunku 3.10, i wpisz adres serwera w górne
pole KolejnoϾ przeszukiwania serwera DNS.
Wpisz te¿ nazwê komputera Windows 95/98 i swojej domeny internetowej. Jeœli
chodzi o wspó³pracê z Samb¹, mo¿esz zignorowaæ pole Kolejnoœæ przeszukiwania
sufiksów domeny.

* Mo¿emy pomin¹æ drugi adres, poniewa¿ ka¿dy uniksowy komputer ma adres lokalnego hosta
127.0.0.1, czy jest pod³¹czony do sieci, czy te¿ nie. Adres ten jest potrzebny do poprawnego dzia³ania
niektórych narzêdzi systemowych.

Konfigurowanie komputerów Windows 95/98

55

Rysunek 3.10. Karta Konfiguracja DNS

Karta Konfiguracja WINS
Windows Internet Name Service (WINS) to wersja serwera nazw NetBIOS-owych
opracowana przez Microsoft. Jeœli w³¹czy³eœ us³ugê WINS w Sambie, musisz poinformowaæ Windows o adresie serwera Samby. Jeœli u¿ywasz równie¿ serwerów
WINS dzia³aj¹cych w komputerach Windows NT, podaj tak¿e ich adresy. Okno dialogowe wyœwietlane po wybraniu karty Konfiguracja WINS jest pokazane na rysunku 3.11.
Nie podawaj serwera WINS Samby i serwera Windows NT jako kombinacji serwer
podstawowy-serwer zapasowy w oknie dialogowym Konfiguracja WINS. Powsta³yby
b³êdy w odwzorowywaniu nazw, poniewa¿ serwery te nie mog¹ replikowaæ swoich
baz danych.

Zaznacz pole opcji W³¹cz rozpoznawanie WINS i wprowadŸ adres serwera WINS
w odpowiednie pole, a nastêpnie kliknij przycisk Dodaj. Nie wpisuj niczego w pole
Identyfikator zakresu.

56

Rozdzia³ 3: Konfigurowanie klientów Windows

Rysunek 3.11. Karta Konfiguracja WINS

Plik hostów
Jeœli nie u¿ywasz DNS ani WINS i nie chcesz korzystaæ z rozg³oszeniowego odwzorowywania nazw, bêdziesz musia³ utworzyæ tabelê adresów IP i nazw hostów
w standardowym formacie uniksowego pliku /etc/hosts. W komputerach Windows
tabelê tê nale¿y umieœciæ w pliku \WINDOWS\HOSTS na tym dysku, na którym
zainstalowa³eœ Windows (zwykle C:\). Oto przyk³adowy plik hostów:
# 127.0.0.1
192.168.236.1
192.168.236.2
192.168.236.3
192.168.236.4
192.168.236.10

localhost
sztych.przyklad.com sztych
riposta.przyklad.com riposta
garda.przyklad.com garda
touche.przyklad.com touche
finta.przyklad.com finta

Mo¿esz skopiowaæ ten plik bezpoœrednio z pliku /etc/hosts dowolnego komputera
uniksowego – format jest identyczny. Jednak do odwzorowywania nazw w Win dows za pomoc¹ pliku hostów powinieneœ uciekaæ siê tylko w ostatecznoœci.
Sprawdzenie powi¹zañ
Do sprawdzenia pozosta³a jeszcze karta Powi¹zania (patrz rysunek 3.12).
Pole obok pozycji Klient sieci Microsoft Networks powinno byæ zaznaczone, wskazuj¹c, ¿e us³uga klienta korzysta z TCP/IP. Jeœli w oknie dialogowym znajduje siê
pozycja Udostêpnianie plików i drukarek w sieciach Microsoft Networks, równie¿
ona powinna byæ zaznaczona, jak pokazano na rysunku.

Konfigurowanie komputerów Windows 95/98

57

Rysunek 3.12. Karta Powi¹zania

Ustawianie nazwy komputera i grupy roboczej
Naciœnij teraz przycisk OK w oknie W³aœciwoœci Protokó³ TCP/IP, a wrócisz do
okna Sieæ. Wybierz kartê Identyfikacja, co spowoduje wyœwietlenie okna dialogowego z rysunku 3.13.
Tutaj po raz drugi wprowadzisz nazwê komputera. Tym razem jednak okreœlasz nie
nazwê hosta i domenê DNS, ale NetBIOS-ow¹ nazwê komputera. Najlepiej bêdzie
wybraæ tak¹ sam¹ nazwê, jak nazwa hosta DNS. Uwa¿aj, ¿eby nie zrobiæ b³êdu w pisowni: konfigurowanie komputera mo¿e byæ k³opotliwe, kiedy TCP/IP myœli, ¿e ma
do czynienia z fredem, a SMB s¹dzi, ¿e komputer nosi nazwê ferd!
W tym oknie okreœlasz tak¿e nazwê grupy roboczej. W naszym przypadku bêdzie to
PROSTA_GRUPA, ale jeœli w rozdziale 2, Instalowanie Samby w Uniksie, wybra³eœ
inn¹ nazwê podczas tworzenia pliku konfiguracyjnego Samby, u¿yj jej tak¿e tutaj.
Nie wybieraj nazwy WORKGROUP, gdy¿ w takim przypadku znajdziesz siê w tej
samej grupie, co wszystkie nieskonfigurowane (lub Ÿle skonfigurowane) komputery
na œwiecie.

58

Rozdzia³ 3: Konfigurowanie klientów Windows

Rysunek 3.13. Karta Identyfikacja

Uzyskiwanie dostêpu do serwera Samby
Kliknij przycisk OK, aby zakoñczyæ konfiguracjê. Bêdziesz musia³ ponownie uru chomiæ komputer, aby zmiany zosta³y uwzglêdnione.
Nadesz³a wielka chwila. Serwer Samby dzia³a, a ty skonfigurowa³eœ klienta Win dows 95/98 do wspó³pracy z nim. Po ponownym uruchomieniu Windows zaloguj
siê i kliknij dwukrotnie ikonê Otoczenia sieciowego na pulpicie. Powinieneœ zobaczyæ serwer Samby jako cz³onka swojej grupy roboczej (patrz rysunek 3.14).

Rysunek 3.14. Otoczenie sieciowe w Windows

Dwukrotne klikniêcie nazwy serwera spowoduje wyœwietlenie zasobów udostêpnianych przez niego w sieci, co pokazano na rysunku 3.15 (w tym przypadku jest to
drukarka i katalog test).

Konfigurowanie komputerów Windows NT 4.0

59

Rysunek 3.15. Udzia³y w serwerze
Jeœli pojawi siê okno dialogowe z proœb¹ o podanie has³a dostêpu do zasobu IPC$, oznacza to, ¿e Samba nie zaakceptowa³a has³a przes³anego przez klienta. Pamiêtaj, ¿e nazwa
u¿ytkownika i has³o ustawione w kliencie musi odpowiadaæ nazwie u¿ytkownika i has³u
w serwerze Samby. Jeœli u¿ywasz Windows 98 lub Windows NT z Service Pack 3 lub
nowsz¹ wersj¹ poprawek, prawdopodobnie dzieje siê tak dlatego, ¿e klient wysy³a has³o
w postaci zaszyfrowanej, a nie otwartym tekstem. Mo¿esz uporaæ siê z tym problemem,
wykonuj¹c dwie czynnoœci w serwerze Samby. Po pierwsze, do sekcji [global] w pliku
konfiguracyjnym Samby dodaj wpis encrypt passwords=yes. Po drugie, znajdŸ program smbpasswd w serwerze Samby (domyœlnie jest on przechowywany w katalogu
/usr/local/samba/bin) i dodaj za jego pomoc¹ nowy wpis do bazy zaszyfrowanych hase³
Samby. Aby na przyk³ad dodaæ u¿ytkownika stefan, do bazy wpisz smbpasswd -a
stefan. Kiedy bêdziesz wprowadza³ pierwsze has³o, program wyœwietli komunikat
o b³êdzie, informuj¹c, ¿e baza hase³ nie istnieje, a nastêpnie utworzy bazê danych (zwykle
w katalogu /usr/local/samba/private/smbpasswd).

Jeœli serwer nie pojawi siê na liœcie, uruchom Eksploratora Windows (nie Internet
Explorera!) i wybierz polecenie Mapuj dysk sieciowy z menu Narzêdzia. Pojawi siê
okno dialogowe, w którym bêdziesz móg³ wpisaæ nazwê serwera i udzia³u test
w notacji UNC Windows: \\serwer\test, jak robiliœmy to w pierwszym rozdziale. Powinno to doprowadziæ do po³¹czenia z serwerem Samby i naszym tymczasowym udzia³em. Jeœli to równie¿ nie zadzia³a, zajrzyj do rozdzia³u 9, Rozwi¹zywanie
problemów, gdzie znajdziesz wskazówki dotycz¹ce diagnozowania b³êdów.

Konfigurowanie komputerów Windows NT 4.0
Konfigurowanie Windows NT przebiega nieco odmiennie od konfigurowania Windows 95/98. Do u¿ywania Samby z Windows NT bêdziesz potrzebowa³ zarówno
us³ugi stacji roboczej, jak i protoko³u TCP/IP. Oba te sk³adniki s¹ standardowymi
elementami Windows NT, ale opiszemy ich instalowanie i konfigurowanie, poniewa¿ mog¹ byæ skonfigurowane nieprawid³owo.
Oto szeœæ g³ównych etapów:
1. Nadanie nazwy komputerowi.
2. Zainstalowanie us³ugi stacji roboczej.
3. Zainstalowanie protoko³u TCP/IP.
4. Ustawienie nazwy i adresu IP komputera.
5. Skonfigurowanie us³ug DNS i WINS.
6. Powi¹zanie protoko³u i us³ug.

60

Rozdzia³ 3: Konfigurowanie klientów Windows

Podstawowa konfiguracja
W tym podrozdziale przedstawimy czynnoœci, które umo¿liwi¹ wspó³pracê Windows
NT i Samby. Jeœli potrzebujesz wiêcej informacji o administrowaniu systemem Windows NT, zajrzyj do doskona³ej ksi¹¿ki Craiga Hunta i Roberta Bruce'a Thompsona
Windows NT TCP/IP – administracja systemu, wydanej przez Wydawnictwo RM. Wszystkie opisane czynnoœci powinieneœ wykonaæ jako u¿ytkownik „Administrator”.
Nadawanie nazwy komputerowi
Najpierw musisz nadaæ komputerowi NetBIOS-ow¹ nazwê. Kliknij dwukrotnie ikonê Sieæ w Panelu sterowania. Na ekranie pojawi siê okno dialogowe Sieæ. Pierwsz¹
kart¹ w tym oknie powinna byæ karta Identyfikacja, jak na rysunku 3.16.

Rysunek 3.16. Karta Identyfikacja okna dialogowego Sieæ

Tutaj musisz zidentyfikowaæ swój komputer, nadaj¹c mu nazwê (my u¿yliœmy nazwy Floret) i zmieniæ domyœln¹ nazwê grupy roboczej na tak¹, jak¹ poda³eœ w pliku
smb.conf w serwerze Samby. W tym przypadku nazwa grupy roboczej to PROSTA_GRUPA. Nie mo¿esz jednak zmieniæ obu nazw na tej karcie (jak w Windows
95/98). Musisz najpierw klikn¹æ przycisk Zmieñ pod polami tekstowymi, co spowoduje wyœwietlenie okna dialogowego Zmiany identyfikacji, w którym mo¿esz podaæ
now¹ nazwê komputera i grupy roboczej (patrz rysunek 3.17).
S³owo ostrze¿enia: bêdziesz musia³ ponownie ustaliæ nazwê komputera podczas
konfigurowania TCP/IP, wiêc upewnij siê, ¿e obie nazwy s¹ takie same. Nazwa,
któr¹ ustawiasz tutaj, to nazwa NetBIOS-owa. Mo¿e ona siê ró¿niæ od nazwy hosta
TCP/IP, ale z regu³y nie jest to po¿¹dane. Nie przejmuj siê, ¿e Windows NT wymu-

Konfigurowanie komputerów Windows NT 4.0

61

sza u¿ycie du¿ych liter w nazwie komputera i grupy; system bêdzie wiedzia³, o co ci
chodzi³o, kiedy w³¹czy siê do sieci.

Rysunek 3.17. Zmienianie danych identyfikacyjnych

Instalowanie protoko³u TCP/IP
Nastêpnie wybierz kartê Protoko³y w oknie dialogowym Sieæ i sprawdŸ, czy masz
zainstalowany protokó³ TCP/IP (patrz rysunek 3.18).

Rysunek 3.18. Karta Protoko³y

62

Rozdzia³ 3: Konfigurowanie klientów Windows

Jeœli protokó³ nie jest zainstalowany, bêdziesz musia³ go dodaæ. Kliknij przycisk Dodaj, co spowoduje wyœwietlenie okna dialogowego Wybierz: Protokó³ sieciowy
(patrz rysunek 3.19). W przeciwieñstwie do Windows 95/98, powinieneœ od razu zobaczyæ protokó³ TCP/IP na dole listy.

Rysunek 3.19. Okno dialogowe Wybierz: Protokó³ sieciowy

Zaznacz protokó³ TCP/IP i potwierdŸ swój wybór. Jeœli to mo¿liwe, zainstaluj tylko
TCP/IP. Zwykle nie ma sensu instalowaæ NetBEUI, poniewa¿ w takim przypadku
komputer szuka us³ug, korzystaj¹c z dwóch ró¿nych protoko³ów, z których zapewne tylko jeden jest u¿ywany*.
Instalowanie us³ugi stacji roboczej
Po zainstalowaniu TCP/IP kliknij kartê Us³ugi w oknie dialogowym Sieæ i sprawdŸ,
czy masz zainstalowan¹ us³ugê stacji roboczej, któr¹ widaæ na dole listy z rysunku
3.20.
Ta us³uga to w istocie klient sieci Microsoft, który pozwala komputerowi na korzystanie z zasobów SMB. Us³uga stacji roboczej jest niezbêdna. Jest ona instalowana
domyœlnie zarówno w Windows NT Workstation 4.0, jak i w Server 4.0. Jeœli nie ma
jej na liœcie, mo¿esz zainstalowaæ j¹ niemal tak samo, jak protokó³ TCP/IP. Tym razem bêdziesz musia³ klikn¹æ przycisk Dodaj i zaznaczyæ us³ugê Stacja robocza, jak
pokazano na rysunku 3.21.

* Czêsto spotykany objaw: po chwili sprawdzania nieu¿ywanego protoko³u up³ywa limit czasu, po czym
komputer próbuje u¿yæ tego w³aœciwego. To bezproduktywne wyszukiwanie jest przyczyn¹ obni¿enia
wydajnoœci i tajemniczych opóŸnieñ.

Konfigurowanie komputerów Windows NT 4.0

63

Rysunek 3.20. Karta Us³ugi w oknie dialogowym Sieæ

Rysunek 3.21. Okno dialogowe Wybierz: Us³uga sieciowa

Konfigurowanie TCP/IP
Po zainstalowaniu us³ugi stacji roboczej wróæ do karty Protoko³y i zaznacz na liœcie
pozycjê Protokó³ TCP/IP. Nastêpnie kliknij umieszczony pod list¹ przycisk
W³aœciwoœci. Pojawi siê okno dialogowe W³aœciwoœci: Microsoft TCP/IP. Okno to zawiera piêæ kart, z których trzy wymagaj¹ zmodyfikowania:
· Adres IP,
· DNS,
· Adres WINS.

64

Rozdzia³ 3: Konfigurowanie klientów Windows

Karta Adres IP
Karta Adres IP jest pokazana na rysunku 3.22.

Rysunek 3.22. Okno dialogowe W³aœciwoœci: Microsoft TCP/IP w Windows NT

Zaznacz pole opcji Podaj adres IP i wpisz adres oraz maskê podsieci dla odpowiedniego interfejsu sieciowego (karty Ethernetu). Ty albo administrator sieci powinniœcie wczeœniej wybraæ adres komputera tak, aby znajdowa³ siê w tej samej podsieci, co
serwer Samby. Jeœli na przyk³ad adres serwera to 192.168.236.86, a jego maska podsieci to 255.255.255.0, móg³byœ przypisaæ komputerowi Windows NT Workstation
adres 192.168.236.10 (jeœli jest wolny) i tak¹ sam¹ maskê podsieci. Jeœli w swojej sieci
u¿ywasz serwera DHCP, zaznacz pole opcji Uzyskaj adres IP z serwera DHCP.
Jeœli nie masz przydzielonego adresu IP, a twoja sieæ nie jest po³¹czona z Internetem,
u¿yj naszego adresu. Podsieæ 192.168.x.x jest specjalnie zarezerwowana przez organizacjê InterNIC na potrzeby prywatnych sieci lokalnych. W przeciwnym wypadku
skontaktuj siê z administratorem sieci i dowiedz siê, jakie adresy s¹ dostêpne.

Pole Brama domyœlna odnosi siê do komputera nazywanego zwykle ruterem. Jeœli
masz pod opiek¹ kilka sieci po³¹czonych ruterami, powinieneœ umieœciæ tu adres
tego rutera, który znajduje siê w twojej podsieci.

Konfigurowanie komputerów Windows NT 4.0

65

Karta DNS
Teraz przejdŸ do karty DNS, pokazanej na rysunku 3.23.

Rysunek 3.23. Karta DNS

Domain Name System (DNS) to us³uga odpowiedzialna za t³umaczenie u¿ywanych
przez ludzi nazw komputerów, takich jak floret.przyklad.com, na adresy IP, takie jak
192.168.236.10. Komputer Windows NT mo¿e dokonywaæ takiego t³umaczenia na
dwa sposoby. Mo¿esz podaæ adres serwera DNS, który bêdzie zajmowa³ siê odwzorowywaniem nazw na adresy, albo utworzyæ lokaln¹ listê par nazwa-adres, do których bêdzie siê odwo³ywaæ twoja stacja robocza.
W przypadku sieci lokalnej nie pod³¹czonej do Internetu, lista jest zwykle krótka
i mo¿e byæ przechowywana w lokalnym pliku. Sieci pod³¹czone do Internetu korzystaj¹ zwykle z us³ug DNS, poniewa¿ nie da siê z góry przewidzieæ, z którymi adresami internetowymi bêd¹ ³¹czyæ siê u¿ytkownicy. Jeœli nie jesteœ pewien, czy sieæ korzysta z serwera DNS albo jaki jest jego adres, zajrzyj do pliku /etc/resolv.conf w serwerze Samby: wszystkie komputery u¿ywaj¹ce DNS bêd¹ mia³y taki plik. Wygl¹da
on nastêpuj¹co:
#resolv.conf
domain przyklad.com
nameserver 127.0.0.1
nameserver 192.168.236.20

66

Rozdzia³ 3: Konfigurowanie klientów Windows

W tym przyk³adzie pierwsza linia nameserver zawiera adres 127.0.0.1, co wskazuje, ¿e serwer Samby jest zarazem serwerem DNS dla tej sieci lokalnej*. W takim przypadku powinieneœ u¿yæ sieciowego adresu serwera Samby (a nie jego adresu lokalnego hosta, 127.0.0.1) podczas wype³niania karty DNS. Mo¿esz u¿yæ tak¿e innych
adresów wymienionych w liniach zaczynaj¹cych siê od s³owa nameserver. Spróbuj wybraæ takie, które znajduj¹ siê w twojej sieci. Dzia³aæ bêd¹ wszystkie serwery
wymienione w pliku /etc/resolv.conf, ale korzystaj¹c z pobliskiego serwera osi¹gniesz
lepsz¹ wydajnoœæ.
Teraz musisz wprowadziæ jeszcze raz nazwê komputera, upewniaj¹c siê, ¿e jest ona
taka sama jak ta, która widnieje na karcie Identyfikacja okna dialogowego Sieæ (nazwa NetBIOS-owa). Wpisz tak¿e nazwê domeny DNS, w której rezyduje komputer.
Jeœli nazw¹ domeny jest przyklad.com, wpisz j¹ tutaj. Mo¿esz zignorowaæ pozosta³e
opcje.
Karta Adres WINS
Jeœli nie u¿ywasz serwera DNS, bêdziesz i tak potrzebowa³ mechanizmu t³umaczenia nazw NetBIOS-owych na adresy i odwrotnie. Zalecamy skonfigurowanie zarówno DNS, jak i WINS. Windows NT preferuje u¿ycie WINS, a WINS mo¿e korzystaæ
z DNS w sytuacji awaryjnej, kiedy nie potrafi odwzorowaæ nazwy któregoœ komputera. Karta Adres WINS jest pokazana na rysunku 3.24.

Rysunek 3.24. Karta Adres WINS
* Adres 127.0.0.1 jest znany jako adres lokalnego hosta, a za jego pomoc¹ komputer zawsze odwo³uje siê do
samego siebie. Jeœli na przyk³ad wpiszesz ping 127.0.0.1 na uniksowym serwerze, powinieneœ zawsze
otrzymaæ odpowiedŸ, poniewa¿ sprawdzasz w³asny komputer.

Konfigurowanie komputerów Windows NT 4.0

67

Jeœli w twojej sieci jest serwer WINS, wpisz jego adres w pole oznaczone napisem
Podstawowy serwer WINS. Jeœli us³ugi WINS œwiadczy Samba (innymi s³owy,
w pliku smb.conf serwera Samby znajduje siê linia wins service = yes), wpisz tutaj adres IP serwera Samby. W przeciwnym wypadku podaj adres innego serwera
WINS w twojej sieci.
Prawdopodobnie zauwa¿y³eœ pole umo¿liwiaj¹ce wybór karty sieciowej. Musi
w nim widnieæ nazwa tej karty, z któr¹ powi¹zany jest protokó³ TCP/IP, aby komputer korzysta³ z us³ug nazewniczych WINS we w³aœciwej sieci. Jeœli masz zarówno
kartê sieciow¹, jak i modemow¹, upewnij siê, ¿e w polu tym widnieje nazwa karty
sieciowej.
Na zakoñczenie zaznacz pole wyboru W³¹cz rozpoznawanie nazw DNS dla Win dows, aby us³uga WINS korzysta³a z pomocy DNS, jeœli nie zdo³a odszukaæ nazwy.
Mo¿esz zignorowaæ pozosta³e opcje.
Plik hostów
Jeœli nie u¿ywasz DNS ani WINS i nie chcesz korzystaæ z rozg³oszeniowego odwzorowywania nazw, bêdziesz musia³ utworzyæ tabelê adresów IP i nazw hostów
w standardowym formacie uniksowego pliku /etc/hosts. Odradzamy takie rozwi¹zanie, poniewa¿ uaktualnianie takiego pliku w dynamicznej sieci jest mocno k³opotliwe, ale mimo to je opiszemy. Plik HOSTS w Windows powinien znajdowaæ siê w katalogu \WINDOWS na tym dysku, na którym zainstalowano system. Oto przyk³ad:
127.0.0.1
192.168.236.1
192.168.236.2
192.168.236.3
192.168.236.4
192.168.236.5
192.168.236.6
192.168.236.7

localhost
sztych
riposta
garda
touche
floret
szabla
rapier

sztych.przyklad.com
riposta.przyklad.com
garda.przyklad.com
touche.przyklad.com
floret.przyklad.com
szabla.przyklad.com
rapier.przyklad.com

Mo¿esz skopiowaæ ten plik bezpoœrednio z pliku /etc/hosts serwera Samby – format
jest identyczny. Bêdzie on spe³nia³ tê sam¹ funkcjê, co plik hostów w uniksowym
serwerze. Jednak¿e pliku hostów w Windows nale¿y u¿ywaæ tylko w ostatecznoœci.
Powi¹zania
Termin powi¹zany oznacza mniej wiêcej tyle, co „po³¹czony z czymœ w czasie konfiguracji”. Oznacza on, ¿e protokó³ TCP/IP bêdzie przep³ywa³ przez kartê Ethernetu
(a nie na przyk³ad przez po³¹czenie modemowe) i ¿e jest poprawnie skonfigurowany. Jeœli klikniesz kartê Powi¹zania okna dialogowego Sieæ, wybierzesz z listy opcjê
wszystkie us³ugi i klikniesz znaki plus w drzewie us³ug, powinieneœ zobaczyæ konfiguracjê tak¹ jak na rysunku 3.25.
Oznacza ona, ¿e us³ugi stacji roboczej, serwera i interfejsu NetBIOS s¹ po³¹czone
z klientem WINS. S¹ to poprawne powi¹zania dla protoko³u Microsoft TCP/IP.

68

Rozdzia³ 3: Konfigurowanie klientów Windows

Rysunek 3.25. Powi¹zania us³ug

£¹czenie siê z serwerem Samby
Na innych kartach okna dialogowego Sieæ mo¿esz pozostawiæ wartoœci domyœlne.
Kliknij przycisk OK, aby zakoñczyæ konfiguracjê. Po za³adowaniu potrzebnych plików (jeœli bêdzie to konieczne) bêdziesz musia³ ponownie uruchomiæ komputer, aby
zmiany zosta³y uwzglêdnione.
Nadesz³a wielka chwila. Serwer Samby dzia³a, a ty skonfigurowa³eœ klienta Win dows NT do wspó³pracy z nim. Po ponownym uruchomieniu Windows zaloguj siê
i kliknij dwukrotnie ikonê Otoczenia sieciowego na pulpicie. Powinieneœ zobaczyæ
serwer Samby jako cz³onka swojej grupy roboczej (patrz rysunek 3.26).

Rysunek 3.26. Otoczenie sieciowe w Windows NT

Dwukrotne klikniêcie nazwy serwera spowoduje wyœwietlenie zasobów udostêpnianych przez niego w sieci, co pokazano na rysunku 3.27 (w tym przypadku jest to
drukarka i katalog test). Wiêcej informacji znajdziesz w ostrze¿eniu w podrozdziale
„Uzyskiwanie dostêpu do serwera Samby” wczeœniej w tym rozdziale.

Wprowadzenie do protoko³u SMB/CIFS

69

Rysunek 3.27. Udzia³y w serwerze
Jeœli pojawi siê okno dialogowe z proœb¹ o podanie has³a dostêpu do zasobu IPC$,
oznacza to, ¿e Samba nie zaakceptowa³a has³a przes³anego przez klienta. Pamiêtaj, ¿e
nazwa u¿ytkownika i has³o ustawione w kliencie musi odpowiadaæ nazwie u¿ytkownika i has³u w serwerze Samby. Jeœli u¿ywasz Windows 98 lub Windows NT z Service
Pack 3 lub nowsz¹ wersj¹ poprawek, prawdopodobnie dzieje siê tak dlatego, ¿e klient
wysy³a has³o w postaci zaszyfrowanej, a nie otwartym tekstem. Mo¿esz uporaæ siê
z tym problemem, wykonuj¹c dwie czynnoœci w serwerze Samby. Po pierwsze, do sekcji [global] w pliku konfiguracyjnym Samby dodaj wpis encrypt passwords=yes. Po drugie, znajdŸ program smbpasswd w serwerze Samby (domyœlnie
jest on przechowywany w katalogu /usr/local/samba/bin) i dodaj za jego pomoc¹ nowy
wpis do bazy zaszyfrowanych hase³ Samby. Aby na przyk³ad dodaæ do bazy u¿ytkownika stefan, wpisz smbpasswd -a stefan. Kiedy bêdziesz wprowadza³ pierwsze
has³o, program wyœwietli komunikat o b³êdzie, informuj¹c, ¿e baza hase³ nie istnieje,
a nastêpnie utworzy bazê danych (zwykle w katalogu /usr/local/samba/private/smbpasswd).

Jeœli serwer nie pojawi siê na liœcie, nie wpadaj w panikê. Uruchom Eksploratora Windows NT (nie Internet Explorera!) i wybierz polecenie Mapuj dysk sieciowy z menu
Narzêdzia. Pojawi siê okno dialogowe, w którym bêdziesz móg³ wpisaæ w notacji
UNC nazwê serwera i jego udzia³u. Jeœli twój serwer ma nazwê „serwer”, wpisa³byœ
tutaj \\serwer\test. Jeœli to równie¿ nie zadzia³a, zajrzyj do podrozdzia³u „Drzewo b³êdów” w rozdziale 9 i sprawdŸ, czy pomo¿e ci on w zdiagnozowaniu problemu.
Jeœli operacja siê powiod³a, gratulujemy! Spróbuj zapisaæ plik w serwerze i przes³aæ
dane do drukarki sieciowej. Bêdziesz mi³o zdziwiony, ¿e wszystko dzia³a tak
g³adko. Teraz, kiedy skonfigurowa³eœ ju¿ Sambê i jej klienty, mo¿emy omówiæ
dzia³anie Samby i zacz¹æ dostosowywaæ j¹ do twoich potrzeb.

Wprowadzenie do protoko³u SMB/CIFS
Zakoñczymy ten rozdzia³ krótkim przewodnikiem po protokole SMB/CIFS. W³aœnie tego protoko³u u¿ywaj¹ komputery Windows 95/98 i NT do porozumiewania
siê z serwerem Samby i miêdzy sob¹. Z perspektywy korzystaj¹cych z niego aplikacji zestaw protoko³ów SMB jest wzglêdnie prosty. Zawiera polecenia dla wszystkich
operacji, które wykonuje siê na lokalnych plikach i drukarkach, miêdzy innymi:
· otwierania i zamykania plików,
· tworzenia i usuwania plików i katalogów,
· czytania i zapisywania plików,
· wyszukiwania plików,
· kolejkowania plików w buforze wydruku i usuwania ich z kolejki.

70

Rozdzia³ 3: Konfigurowanie klientów Windows

Ka¿d¹ z tych operacji mo¿na zakodowaæ w komunikacie SMB i przes³aæ do serwera.
Sama nazwa protoko³u pochodzi od formatu komunikatów: s¹ one sieciow¹ wersj¹
standardowych struktur danych u¿ywanych w wywo³aniach systemowych DOS-a,
czyli blokami komunikatów serwera, przystosowanymi do transmisji miêdzy komputerami w sieci.

Format komunikatu SMB
Richard Sharpe z zespo³u Samby definiuje SMB jako protokó³ typu ¿¹danie-odpowiedŸ*. Oznacza to, ¿e klient wysy³a ¿¹danie do serwera, a serwer odsy³a odpowiedŸ
SMB klientowi. Serwer rzadko wysy³a komunikaty nie bêd¹ce odpowiedzi¹ na
¿¹danie klienta.
Komunikat SMB nie jest szczególnie skomplikowany. Przyjrzyjmy siê bli¿ej jego wewnêtrznej strukturze. Mo¿na podzieliæ go na dwie czêœci: nag³ówek o sta³ej wielkoœci
i ³añcuch polecenia, którego wielkoœæ mo¿e byæ bardzo ró¿na, w zale¿noœci od treœci
komunikatu.
Format nag³ówka SMB
Tabela 3.1 przedstawia format nag³ówka SMB. Polecenia SMB nie musz¹ wykorzystywaæ wszystkich pól nag³ówka. Kiedy na przyk³ad klient próbuje po³¹czyæ siê
z serwerem, nie dysponuje jeszcze tak zwanym identyfikatorem drzewa (tree identifier, TID) – zostanie on mu przyznany dopiero po nawi¹zaniu po³¹czenia – wiêc
w odpowiednim polu nag³ówka klient umieszcza pusty TID (0xFFFF). Inne pola,
kiedy nie s¹ u¿ywane, mog¹ byæ wype³nione zerami.
Pola nag³ówka SMB s¹ wymienione w tabeli 3.1.
Tabela 3.1. Pola nag³ówka SMB
Pole

Rozmiar
(bajty)

Opis

0xFF 'SMB'
COM
RCLS
REH
ERR
REB
RES
TID

1
1
1
1
2
1
14
2

PID
UID
MID

2
2
2

Identyfikator protoko³u
Kod polecenia, od 0x00 do 0xFF
Klasa b³êdu
Zarezerwowane
Kod b³êdu
Zarezerwowane
Zarezerwowane
Identyfikator drzewa; niepowtarzalny identyfikator zasobu
u¿ywanego przez klienta
Identyfikator wywo³uj¹cego procesu
Identyfikator u¿ytkownika
Identyfikator multipleksowy; u¿ywany do kojarzenia ró¿nych
¿¹dañ i odpowiedzi w ramach jednego procesu

* Pod adresem http://anu.samba.org/cifs/docs/what-is-smb.html znajduje siê doskona³y opis SMB autorstwa
Richarda.

Wprowadzenie do protoko³u SMB/CIFS

71

Format poleceñ SMB
Zaraz za nag³ówkiem nastêpuje zmienna liczba bajtów tworz¹cych polecenie lub odpowiedŸ SMB. Ka¿de polecenie, takie jak Open File (otwórz plik, identyfikator
w polu COM: SMBopen) albo Get Print Queue (pobierz kolejkê wydruku, SMBsplretq), ma w³asny zestaw parametrów i danych. Podobnie jak pola nag³ówka SMB,
nie wszystkie pola polecenia musz¹ byæ wype³nione, zale¿y to od konkretnego polecenia. Na przyk³ad polecenie Get Server Attributes (pobierz atrybuty serwera,
SMBdskattr) ustawia pola WCT i BCC na zero. Pola segmentu polecenia s¹ wymienione w tabeli 3.2.
Tabela 3.2. Zawartoœæ poleceñ SMB
Pole

Rozmiar (bajty)

Opis

WCT
VWV
BCC
DATA

1
zmienny
2
zmienny

Liczba s³ów
S³owa parametrów (ich ³¹czny rozmiar okreœla pole WCT)
Liczba bajtów danych
Dane (ich ³¹czny rozmiar okreœla pole BCC)

Nie martw siê, jeœli nie rozumiesz znaczenia niektórych pól; nie jest to potrzebne do
u¿ywania Samby na poziomie administracyjnym. Ich znajomoœæ mo¿e siê jednak
przydaæ podczas przegl¹dania komunikatów systemowych. Dalej w tym rozdziale
poka¿emy komunikaty SMB wysy³ane przez klienty i serwery, przechwycone za pomoc¹ zmodyfikowanej wersji programu tcpdump. (Jeœli wola³byœ u¿ywaæ sniffera
z interfejsem graficznym, wypróbuj program „ethereal”, korzystaj¹cy z bibliotek
GTK. Wiêcej informacji o tym narzêdziu znajduje siê na stronie g³ównej Samby).
Jeœli chcia³byœ dowiedzieæ siê wiêcej o poszczególnych poleceniach protoko³u SMB, zajrzyj do dokumentacji SMB/CIFS pod adresem ftp://ftp.microsoft.com/developr/drg/CIFS/.

Odmiany SMB
Od swojego powstania protokó³ SMB by³ kilkakrotnie rozszerzany o nowe polecenia. Ka¿da nowa wersja jest zgodna wstecz ze starszymi, co sprawia, ¿e w sieciach
lokalnych czêsto mo¿na spotkaæ ró¿ne klienty i serwery pos³uguj¹ce siê odmiennymi wersjami protoko³u SMB.
W tabeli 3.3 wymienione s¹ g³ówne wersje protoko³u SMB. Ka¿dy „dialekt” SMB
mo¿e mieæ wersje poboczne, które zawieraj¹ polecenia obs³uguj¹ce poszczególne
wydania systemu operacyjnego. £añcuch identyfikacyjny jest stosowany przez
klienty i serwery do uzgodnienia wariantu protoko³u, który bêdzie u¿ywany do
wzajemnej komunikacji.
Samba u¿ywa specyfikacji NT LM 0.12 dla NT LAN Managera 1.0. Jest ona zgodna
z wszystkimi wczeœniejszymi wersjami SMB. Specyfikacja CIFS to w istocie LAN
Manager 0.12 z kilkoma specyficznymi dodatkami.

72

Rozdzia³ 3: Konfigurowanie klientów Windows

Tabela 3.3. Dialekty protoko³u SMB
Nazwa protoko³u

£añcuch identyfikacyjny

U¿ywany przez

Core
Core Plus
LAN Manager 1.0
LAN Manager 2.0
LAN Manager 2.1
NT LAN Manager 1.0
Samba NT LM 0.12
Common Internet File System

PC NETWORK PROGRAM 1.0
MICROSOFT NETWORKS 1.03
LANMAN1.0
LM1.2X002
LANMAN2.1
NT LM 0.12
Samba
CIFS 1.0

Windows NT 4.0
Sambê
Windows 2000

Klienty i serwery SMB
Jak ju¿ wspomniano, SMB to protokó³ typu klient-serwer. Zgodnie z klasyczn¹ definicj¹ oznacza to, ¿e klient wysy³a ¿¹danie do serwera, który przetwarza ¿¹danie
i zwraca odpowiedŸ klientowi. Jednak role klienta i serwera mog¹ zostaæ odwrócone, czasem w kontekœcie jednej sesji SMB. Rozwa¿my na przyk³ad dwa komputery
Windows 95/98 z rysunku 3.28. Komputer o nazwie FINTA udostêpnia w sieci drukarkê, a komputer o nazwie GARDA udostêpnia katalog dysku. FINTA wystêpuje
w roli klienta, kiedy korzysta ze stacji sieciowej GARDY, a w roli serwera, kiedy wykonuje zadanie wydruku na rzecz FINTY.

Rysunek 3.28. Dwa komputery udostêpniaj¹ce swoje zasoby

Doszliœmy w ten sposób do wa¿nej kwestii w terminologii Samby:
· Serwer to komputer udostêpniaj¹cy wspó³dzielony zasób.
· Klient to komputer, który u¿ywa tego zasobu.
· Serwer mo¿e w ka¿dym momencie byæ klientem (u¿ywaæ zasobu innego komputera).
Zauwa¿, ¿e nie mo¿na okreœliæ ¿adnej granicy, od której komputer stawa³by siê serwerem – nieistotna jest iloœæ udostêpnianych zasobów, wielkoœæ dysku czy szybkoœæ
procesora. Serwerem mo¿e wiêc byæ stary komputer 486 z do³¹czon¹ drukark¹ albo
nowoczesna stacja UltraSparc z dziesiêcioma gigabajtami udostêpnianej przestrzeni
dyskowej.

Wprowadzenie do protoko³u SMB/CIFS

73

Systemy operacyjne Microsoft Windows zawieraj¹ wbudowane programy klienta
i serwera SMB. Windows NT 4.0 u¿ywa nowszego protoko³u SMB ni¿ Windows for
Workgroups i zawiera ulepszone mechanizmy bezpieczeñstwa sieciowego, o któ rych bêdziemy mówiæ w rozdziale 6. Oprócz tego istnieje wiele komercyjnych wersji
serwera SMB, opracowanych przez firmy, takie jak Sun, Compaq, SCO, Hewlett-Packard, Syntax i IBM. Niestety, po stronie klienta wybór jest du¿o mniejszy – w grê
wchodzi w³aœciwie tylko pakiet Pathworks firmy Digital Equipment i, oczywiœcie,
Samba.

Proste po³¹czenie SMB
Zanim przejdziemy do nastêpnego rozdzia³u, przyjrzyjmy siê prostemu po³¹czeniu
SMB. S¹ to zagadnienia natury technicznej – w³aœciwie niepotrzebne do zarz¹dzania
Samb¹ – wiêc jeœli chcesz, mo¿esz pomin¹æ ten fragment. Zamieszczamy tutaj te informacje g³ównie po to, aby zaznajomiæ ciê ze sposobem, w jaki protokó³ SMB negocjuje po³¹czenia z innymi komputerami w sieci.
Po³¹czenie miêdzy klientem a zasobem serwera odbywa siê w czterech etapach:
1. Nawi¹zanie po³¹czenia wirtualnego.
2. Negocjacja odmiany protoko³u.
3. Ustawienie parametrów sesji.
4. Nawi¹zanie po³¹czenia z zasobem.
Zbadamy wszystkie cztery etapy za pomoc¹ przydatnego narzêdzia, o którym
wspomnieliœmy wczeœniej: zmodyfikowanej wersji programu tcpdump dostêpnej na
witrynie WWW Samby.
Program ten znajdziesz w serwerze samba.org w katalogu samba/ftp/tcpdumb-smb. W czasie pisania tej ksi¹¿ki najnowsza wersja mia³a numer 3.4-5. Mo¿esz korzystaæ z niego
tak, jak ze zwyk³ego programu tcpdump, ale dodaj opcjê -s 1500, aby przechwytywaæ
ca³e pakiety, a nie tylko kilka pierwszych bajtów.

Nawi¹zywanie po³¹czenia wirtualnego
Kiedy u¿ytkownik wysy³a pierwsze ¿¹danie dostêpu do dysku sieciowego lub zdalnej drukarki, NetBIOS jest odpowiedzialny za nawi¹zanie po³¹czenia w warstwie sesji. W rezultacie powstaje dwukierunkowy kana³ komunikacyjny miêdzy klientem
i serwerem. W rzeczywistoœci klient i serwer potrzebuj¹ tylko dwóch komunikatów
do nawi¹zania po³¹czenia. Widaæ to w poni¿szym przyk³adzie ¿¹dania nawi¹zania
sesji i odpowiedzi na to ¿¹danie, przechwyconych przez program tcpdump:
& gt; & gt; & gt; NBT Packet
NBT Session Request
Flags=0x81000044
Destination=FINTA
Source=GARDA
& gt; & gt; & gt; NBT Packet
NBT Session Granted
Flags=0x82000000

NameType=0x20 (Server)
NameType=0x00 (Workstation)

74

Rozdzia³ 3: Konfigurowanie klientów Windows

Negocjowanie wariantu protoko³u
W tym momencie istnieje ju¿ otwarty kana³ miêdzy klientem i serwerem. Nastêpnie
klient wysy³a do serwera komunikat negocjuj¹cy wariant protoko³u SMB. Jak wspomniano wczeœniej, klient ustawia swój identyfikator drzewa (TID) na zero, poniewa¿ nie wie jeszcze, jakiej wartoœci TID powinien u¿yæ. Identyfikator drzewa to numer
reprezentuj¹cy po³¹czenie z udzia³em w serwerze.
Polecenie zawarte w komunikacie to SMBnegprot, ¿¹danie negocjacji wariantu protoko³u, który bêdzie u¿ywany w trakcie ca³ej sesji. Zauwa¿, ¿e to klient wysy³a do serwera
listê wszystkich rozumianych przez siebie wariantów protoko³u, a nie odwrotnie.
Serwer odpowiada na ¿¹danie SMBnegprot indeksem do listy wariantów nades³anych przez klienta (pierwszy wariant ma indeks 0) albo wartoœci¹ 0xFF, jeœli nie
akceptuje ¿adnego wariantu. W tym przyk³adzie serwer zwraca indeks 5, co oznacza, ¿e podczas tej sesji bêdzie u¿ywany dialekt NT LM 0.12.
& gt; & gt; & gt; NBT Packet
NBT Session Packet
Flags=0x0
Length=154
SMB PACKET: SMBnegprot (REQUEST)
SMB Command
= 0x72
Error class
= 0x0
Error code
= 0
Flags1
= 0x0
Flags2
= 0x0
Tree ID
= 0
Proc ID
= 5371
UID
= 0
MID
= 385
Word Count
= 0
Dialect=PC NETWORK PROGRAM 1.0
Dialect=MICROSOFT NETWORKS 3.0
Dialect=DOS LM1.2X002
Dialect=DOS LANMAN2.1
Dialect=Windows for Workgroups 3.1a
Dialect=NT LM 0.12
& gt; & gt; & gt; NBT Packet
NBT Session Packet
Flags=0x0
Length=69
SMB PACKET: SMBnegprot (REPLY)
SMB Command
= 0x72
Error class
= 0x0
Error code
= 0
Flags1
= 0x0
Flags2
= 0x1
Tree ID
= 0
Proc ID
= 5371
UID
= 0
MID
= 385
Word Count
= 02
[000] 05 00

Wprowadzenie do protoko³u SMB/CIFS

75

Ustawianie parametrów sesji i logowania
W kolejnym etapie przesy³ane s¹ parametry sesji i logowania. Jest to nazwa konta
i has³o (jeœli jakieœ jest), nazwa grupy roboczej, maksymalny rozmiar transmitowanych danych i liczba zaleg³ych ¿¹dañ, które jednoczeœnie mog¹ byæ buforowane
w kolejce.
Przedstawione w poni¿szym przyk³adzie polecenie Session Setup (konfiguruj sesjê)
pozwala na do³¹czenie do niego kolejnego polecenia SMB. Wskazuje na to litera X na
koñcu nazwy polecenia; szesnastkowy kod drugiego polecenia jest podany w polu
Com2. W tym przypadku drugim poleceniem jest 0x75, czyli Tree Connect and X
(po³¹cz z drzewem i X). Polecenie SMBtconX szuka nazwy zasobu w buforze
smb_buf (jest to ostatnie pole ¿¹dania). W tym przyk³adzie bufor smb_buf zawiera
³añcuch \\FINTA\PUBL, co jest pe³n¹ œcie¿k¹ do wspó³dzielonego katalogu w komputerze FINTA. Takie u¿ycie poleceñ „i X” przyspiesza wszystkie transakcje, poniewa¿ serwer nie musi czekaæ, a¿ klient wyœle drugie ¿¹danie.
Zauwa¿, ¿e pole TID nadal zawiera zero. Serwer dostarczy identyfikator klientowi
dopiero po otwarciu sesji i nawi¹zaniu po³¹czenia z ¿¹danym zasobem. Zwróæ te¿
uwagê, ¿e has³o jest przesy³ane otwartym tekstem. Zmienimy to póŸniej, w³¹czaj¹c
obs³ugê zaszyfrowanych hase³.
& gt; & gt; & gt; NBT Packet
NBT Session Packet
Flags=0x0
Length=139
SMB PACKET: SMBsesssetupX (REQUEST)
SMB Command
= 0x73
Error class
= 0x0
Error code
= 0
Flags1
= 0x10
Flags2
= 0x0
Tree ID
= 0
Proc ID
= 5371
UID
= 1
MID
= 385
Word Count
= 13
Com2=0x75
Res1=0x0
Off2=106
MaxBuffer=2920
MaxMpx=2
VcNumber=0
SessionKey=0x1FF2
CaseInsensitivePasswordLength=1
CaseSensitivePasswordLength=1
Res=0x0
Capabilities=0x1
Pass1 & Pass2 & Account & Domain & OS & LanMan=
KRISTIN PARKSTR Windows 4.0 Windows 4.0
PassLen=2
Passwd & Path & Device=
smb_bcc=22
smb_buf[]=\\FINTA\PUBL

76

Rozdzia³ 3: Konfigurowanie klientów Windows

Nawi¹zywanie po³¹czenia z zasobem
W koñcowym etapie serwer przesy³a klientowi identyfikator TID, wskazuj¹c tym samym, ¿e klient zosta³ uwierzytelniony, a zasób jest gotowy do u¿ycia. Ustawia tak¿e
pole ServiceType na „A”, co oznacza, ¿e jest to us³uga plikowa. Dostêpne typy us³ug
to:
· „A”: dysk lub plik,
· „LPT1”: buforowana drukarka,
· „COMM”: bezpoœrednio do³¹czona drukarka lub modem,
· „IPC”: nazwany potok.
Pakiet wygl¹da nastêpuj¹co:
& gt; & gt; & gt; NBT Packet
NBT Session Packet
Flags=0x0
Length=78
SMB PACKET: SMBsesssetupX (REPLY)
SMB Command
= 0x73
Error class
= 0x0
Error code
= 0
Flags1
= 0x80
Flags2
= 0x1
Tree ID
= 121
Proc ID
= 5371
UID
= 1
MID
= 385
Word Count
= 3
Com2=0x75
Off2=68
Action=0x0
[000] Unix Samba 1.9.1
[010] PARKSTR
SMB PACKET: SMBtconX (REPLY) (CHAINED)
smbvwv[]=
Com2=0xFF
Off2=78
smbbuf[]=
ServiceType=A:

Po przydzieleniu identyfikatora TID klient mo¿e u¿ywaæ wszystkich poleceñ, których u¿y³by w odniesieniu do lokalnego dysku. Mo¿e otwieraæ pliki, czytaæ je, zapisywaæ, usuwaæ i tworzyæ, wyszukiwaæ pliki o okreœlonych nazwach i tak dalej.

Udzia³y dyskowe

4

Rozdzia³ 4: Udzia³y dyskowe

W poprzednich trzech rozdzia³ach pokazaliœmy, jak zainstalowaæ Sambê na uniksowym serwerze i jak skonfigurowaæ klienty Windows do korzystania z prostego
udzia³u dyskowego. W tym rozdziale spróbujemy przydzieliæ Sambie wiêcej funkcji
do pe³nienia w twojej sieci.
Demony Samby, smbd i nmbd, s¹ kontrolowane przez jeden plik ASCII, smb.conf, który mo¿e zawieraæ ponad 200 ró¿nych opcji. Opcje te definiuj¹ reakcje Samby na otaczaj¹c¹ j¹ sieæ, zaczynaj¹c od prostych praw dostêpu, a koñcz¹c na zaszyfrowanych
po³¹czeniach i domenach NT. W nastêpnych piêciu rozdzia³ach zapoznasz siê z tym
plikiem i u¿ywanymi w nim opcjami. Niektóre opcje bêdziesz wykorzystywa³ i modyfikowa³ bardzo czêsto, innych zapewne nie u¿yjesz nigdy – wszystko zale¿y od
tego, jak dalece funkcjonalne maj¹ byæ klienty Samby.
W tym rozdziale opiszemy strukturê pliku konfiguracyjnego Samby i przedstawimy
opcje s³u¿¹ce do tworzenia i modyfikowania udzia³ów dyskowych. W kolejnych
rozdzia³ach omówimy przegl¹danie, konfigurowanie u¿ytkowników, bezpieczeñstwa, domen i drukarek oraz mnóstwa innych us³ug, które dziêki Sambie udostêpnisz w swojej sieci.

Poznajemy plik konfiguracyjny Samby
Oto przyk³adowy plik konfiguracyjny Samby. Jeœli pracowa³eœ z plikami .INI
w Windows, jego struktura zapewne wyda ci siê znajoma:
[global]
log level = 1
max log size = 1000
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest ok = no
[homes]
browseable = no
map archive = yes
[printers]
path = /usr/tmp
guest ok = yes
printable = yes
min print space = 2000

78

Rozdzia³ 4: Udzia³y dyskowe

[test]
browseable = yes
read only = yes
guest ok = yes
path = /export/samba/test

Na razie zapewne nie rozumiesz wszystkich opcji, ale mo¿esz wykorzystaæ ten plik,
jeœli naprawdê ci siê spieszy (jeœli nie, za chwilê bêdziemy tworzyæ nowy plik od
podstaw). Mówi¹c w skrócie, plik ten ustawia podstawowy poziom komunikatów
diagnostycznych, które bêd¹ rejestrowane w domyœlnym pliku dziennika o rozmiarze nie przekraczaj¹cym 1 megabajta, optymalizuje po³¹czenia TCP/IP miêdzy serwerem Samby i klientami SMB oraz pozwala Sambie na dynamiczne tworzenie
udzia³ów dyskowych dla wszystkich u¿ytkowników, którzy maj¹ standardowe
konta uniksowe na serwerze. Udostêpnia te¿ publicznie wszystkie drukarki zarejestrowane w serwerze oraz przeznaczony tylko do odczytu udzia³ plikowy, odpowiadaj¹cy katalogowi /export/samba/test. Ostatnia czêœæ tego pliku przypomina
udzia³ dyskowy, którego u¿yliœmy do przetestowania Samby w rozdziale 2, Instalowanie Samby w Uniksie.

Struktura pliku konfiguracyjnego
Spójrzmy jeszcze raz na ten plik konfiguracyjny, tym razem z wy¿szego poziomu:
[global]
...
[homes]
...
[printers]
...
[test]
...

Nazwy wewn¹trz nawiasów kwadratowych wydzielaj¹ sekcje pliku smb.conf; ka¿da
sekcja przyjmuje nazwê udzia³u (lub us³ugi), którego parametry s¹ opisane w tej sekcji. Na przyk³ad sekcje [test] i [homes] to niepowtarzalne udzia³y dyskowe – zawieraj¹ opcje odwo³uj¹ce siê do konkretnych katalogów w serwerze Samby. Udzia³
[printers] zawiera opcje odwo³uj¹ce siê do drukarek serwera. Wszystkie sekcje
zdefiniowane w pliku smb.conf, z wyj¹tkiem sekcji [globals], bêd¹ dostêpne jako
udzia³ dyskowy lub drukarka dla ka¿dego klienta ³¹cz¹cego siê z serwerem Samby.
Pozosta³e linie zawieraj¹ indywidualne opcje konfiguracyjne odnosz¹ce siê do okreœlonego udzia³u. Opcje te rozci¹gaj¹ siê a¿ do pocz¹tku nastêpnej sekcji albo do koñca pliku. Wszystkie opcje konfiguracyjne maj¹ prosty format:
opcja = wartoϾ

Opcje w pliku smb.conf ustawia siê przez przypisanie im wartoœci. Powinniœmy
z góry ciê ostrzec, ¿e nazwy niektórych opcji s¹ dobrane nie najlepiej. Na przyk³ad
opcja read only (tylko do odczytu) jest oczywista, podobnie jak wiele nowszych
opcji Samby, ale starsza opcja public ma doϾ niejasne znaczenie, dlatego obecnie
mo¿na u¿ywaæ jej synonimu guest ok (z udzia³u mog¹ korzystaæ goœcie). Niektóre
czêsto u¿ywane, choæ ju¿ przestarza³e nazwy, opiszemy w podrozdzia³ach poœwiê-

Poznajemy plik konfiguracyjny Samby

79

conych g³ównym czynnoœciom konfiguracyjnym. W dodatku C, Spis opcji konfiguracyjnych Samby, znajdziesz alfabetyczny indeks wszystkich opcji konfiguracyjnych
i ich znaczenia.
Odstêpy, cudzys³owy i przecinki
Nale¿y pamiêtaæ, ¿e wszystkie odstêpy w wartoœciach opcji konfiguracyjnych
maj¹ znaczenie. Rozwa¿my na przyk³ad nastêpuj¹c¹ opcjê:
volume = Wielki Grozny Dysk Twardy Numer 3543

Samba usuwa spacje miêdzy koñcow¹ liter¹ e w s³owie volume i pocz¹tkow¹ liter¹ W
w s³owie Wielki. Te odstêpy nie s¹ znacz¹ce. Inne odstêpy maj¹ jednak znaczenie
i zostan¹ rozpoznane oraz zachowane przez Sambê podczas wczytywania pliku. Spacje nie maj¹ znaczenia w nazwach opcji (takich jak guest ok), ale zalecamy stosowanie siê do konwencji i zachowywanie spacji miêdzy poszczególnymi s³owami opcji.
Jeœli czujesz siê bezpieczniej, wpisuj¹c znak cudzys³owu na pocz¹tku i na koñcu wartoœci opcji, mo¿esz tak robiæ – Samba zignoruje te znaki. Nie umieszczaj jednak w cudzys³owie nazwy opcji, poniewa¿ Samba potraktuje to jako b³¹d sk³adni.
Mo¿esz te¿ u¿ywaæ zamiennie odstêpów i przecinków do oddzielania poszczególnych wartoœci na liœcie. Te dwie opcje s¹ równowa¿ne:
netbios aliases = sprzedaz, ksiegowosc, place
netbios aliases = sprzedaz ksiegowosc place

W pewnych wartoœciach wolno ci jednak u¿ywaæ tylko jednego rodzaju separatora –
albo spacji, albo przecinków.
WielkoϾ liter
Wielkoœæ liter w pliku konfiguracyjnym Samby nie ma znaczenia, oprócz tych
miejsc, w których mog³aby kolidowaæ z zasadami obowi¹zuj¹cymi w systemie operacyjnym Samby. Przypuœæmy, ¿e wpisa³eœ nastêpuj¹c¹ opcjê konfiguracyjn¹
w udziale dyskowym wskazuj¹cym na katalog /export/samba/test:
PATH = /EXPORT/SAMBA/TEST

Samba zaakceptowa³aby opcjê konfiguracyjn¹ zapisan¹ du¿ymi literami. Kiedy jednak spróbowa³aby po³¹czyæ siê ze wskazanym katalogiem, próba by³aby nieudana,
poniewa¿ system plików Uniksa rozró¿nia wielkoœæ liter. W rezultacie katalog nie
zosta³by znaleziony, a klienci nie mogliby ³¹czyæ siê z tym udzia³em.
Kontynuowanie linii
Mo¿esz przenosiæ tekst do nastêpnej linii pliku konfiguracyjnego, u¿ywaj¹c odwrotnego ukoœnika, jak w przyk³adzie poni¿ej:
comment = Pierwszy udzia³ przechowuj¹cy podstawowe kopie \
nowego programu firmy Teamworks.

Ze wzglêdu na u¿ycie odwrotnego ukoœnika Samba traktuje te dwie linie jak jedn¹.
Druga linia zaczyna siê od pierwszego znaku nie bêd¹cego odstêpem; w tym przypadku od litery n w s³owie nowego.

80

Rozdzia³ 4: Udzia³y dyskowe

Komentarze
Do pliku smb.conf mo¿esz wstawiaæ komentarze, zaczynaj¹c liniê od znaku hash (#)
lub œrednika (;). Oba znaki s¹ równowa¿ne. W poni¿szym przyk³adzie trzy pierwsze
linie zostan¹ uznane za komentarz:
# To jest sekcja drukarek. Przydzieliliœmy minimaln¹ przestrzeñ
; drukowania równ¹ 2000, aby zapobiec pewnym b³êdom, które
; pojawiaj¹ siê, kiedy programowi buforuj¹cemu zabraknie pamiêci
[printers]
public = yes
min print space = 2000

Samba ignoruje wszystkie linie komentarza w pliku konfiguracyjnym. Nie ma ¿adnych ograniczeñ co do znaków, które mo¿na wpisaæ w linii komentarza po
pocz¹tkowym hashu lub œredniku. Zauwa¿, ¿e znak kontynuacji linii (\) w komentarzu nie zostanie rozpoznany. Jest ignorowany, podobnie jak ca³a reszta linii.
Zmiany w czasie wykonania
Mo¿na modyfikowaæ plik konfiguracyjny smb.conf i wszystkie zawarte w nim opcje
nawet podczas pracy demonów Samby. Domyœlnie Samba sprawdza co 60 sekund,
czy plik konfiguracyjny nie zosta³ zmodyfikowany. Jeœli wykryje jakieœ zmiany, natychmiast wprowadza je w ¿ycie. Jeœli nie chcesz czekaæ tak d³ugo, mo¿esz wymusiæ
prze³adowanie pliku, wysy³aj¹c sygna³ SIGHUP do procesów smnd i nmbd albo po
prostu restartuj¹c demony.
Jeœli na przyk³ad proces smbd ma identyfikator 893, mo¿esz wymusiæ prze³adowanie
pliku konfiguracyjnego za pomoc¹ nastêpuj¹cego polecenia:
# kill -SIGHUP 893

Nie wszystkie zmiany zostan¹ natychmiast zauwa¿one przez klienty. Na przyk³ad
zmiany dotycz¹ce u¿ywanego udzia³u nie zostan¹ zarejestrowane, dopóki klient nie
od³¹czy siê od zasobu i nie po³¹czy siê z nim ponownie. Równie¿ pewne zmiany parametrów serwera, na przyk³ad jego nazwy NetBIOS-owej i nazwy grupy roboczej,
nie zostan¹ od razu zarejestrowane. Dziêki temu w trakcie danej sesji klienci nie zostan¹ nagle od³¹czeni i nie spotkaj¹ siê z nieoczekiwan¹ odmow¹ dostêpu.

Zmienne
Samba przechowuje obszerny zbiór zmiennych okreœlaj¹cych charakterystykê ser wera i po³¹czonych z nim klientów. Ka¿da zmienna zaczyna siê od znaku procentu,
po którym nastêpuje pojedyncza du¿a lub ma³a litera. Zmiennych mo¿na u¿ywaæ
tylko po prawej stronie opcji konfiguracyjnej (to znaczy po znaku równoœci).
[pub]
path=/home/ftp/pub/%a

Zmienna %a oznacza architekturê klienta (na przyk³ad WinNT dla Windows NT,
Win95 dla Windows 95 lub 98 lub WfWg dla Windows for Workgroups). Z tej przyczyny Samba udostêpni inn¹ œcie¿kê do udzia³u [pub] klientom pracuj¹cym pod
kontrol¹ Windows NT, inn¹ dla klientów Windows 95, a jeszcze inn¹ dla klientów

Poznajemy plik konfiguracyjny Samby

81

Windows for Workgroups. Innymi s³owy, œcie¿ki do udzia³u widziane przez po szczególne klienty bêd¹ ró¿niæ siê w zale¿noœci od architektury:
/home/ftp/pub/WinNT
/home/ftp/pub/Win95
/home/ftp/pub/WfWg

Takie wykorzystanie zmiennych przydaje siê wtedy, gdy chcesz, aby ró¿ni u¿yt kownicy otrzymywali odmienn¹ konfiguracjê, uzale¿nion¹ od ich cech lub innych
okolicznoœci. Samba dysponuje 19 zmiennymi, wymienionymi w tabeli 4.1.
Tabela 4.1. Zmienne Samby
Zmienna Definicja
Zmienne klienta
%a
%I
%m
%M

Architektura klienta (na przyk³ad Samba, WfWg, WinNT, Win95 lub UNKNOWN)
Adres IP klienta (na przyk³ad 192.168.220.100)
NetBIOS-owa nazwa klienta
Nazwa DNS klienta

Zmienne u¿ytkownika
%g
%G
%H
%u
%U

Podstawowa grupa %u
Podstawowa grupa %U
Katalog macierzysty %u
Bie¿¹ca uniksowa nazwa u¿ytkownika
¯¹dana nazwa u¿ytkownika (nie zawsze u¿ywana przez Sambê)

Zmienne udzia³u
%p
%P
%S

Œcie¿ka do g³ównego katalogu udzia³u u¿ywana przez program montuj¹cy,
jeœli ró¿ni siê od %P
Katalog g³ówny bie¿¹cego udzia³u
Nazwa bie¿¹cego udzia³u

Zmienne serwera
%d
%h
%L
%N
%v

Bie¿¹cy identyfikator procesu serwera
Nazwa DNS serwera Samby
Nazwa NetBIOS-owa serwera Samby
Serwer katalogów macierzystych, ustalony na podstawie mapy programu
montuj¹cego
Wersja Samby

Pozosta³e zmienne
%R
%T

Wynegocjowany wariant protoko³u SMB
Bie¿¹ca data i czas

Oto kolejny przyk³ad u¿ycia zmiennych: przypuœæmy, ¿e w twojej sieci jest piêæ
klientów, ale jeden z nich, fred, wymaga za³adowania nieco innej konfiguracji
udzia³u [homes], kiedy ³¹czy siê z serwerem Samby. Samba pozwala ³atwo uporaæ
siê z tym problemem:

82

Rozdzia³ 4: Udzia³y dyskowe

[homes]
...
include = /usr/local/samba/lib/smb.conf.%m
...

U¿yta tu opcja include powoduje wczytanie pliku konfiguracyjnego dla komputera o okreœlonej nazwie NetBIOS-owej (%m). Jeœli nazwa klienta to fred, a w katalogu
katalog_samby/lib/ (lub tym, którego nazwê poda³eœ w pliku konfiguracyjnym) znajduje siê plik smb.conf.fred, Samba do³¹czy jego zawartoœæ do domyœlnego
pliku konfiguracyjnego. Jeœli plik smb.conf.fred modyfikuje któr¹œ zmienn¹ konfiguracyjn¹, to zmieniona wartoœæ bêdzie mia³a pierwszeñstwo przed wartoœci¹ zdefiniowan¹ wczeœniej. Zwróæ uwagê, ¿e piszemy „wczeœniej”. Jeœli któraœ opcja konfiguracyjna zostanie zmodyfikowana w g³ównym pliku ju¿ po opcji include, Samba
przyjmie jej now¹ wartoœæ dla udzia³u, w którym zosta³a zdefiniowana.
Co najwa¿niejsze: jeœli nie ma takiego pliku, Samba nie zg³osi ¿adnego b³êdu. W rzeczywistoœci nie podejmie w ogóle ¿adnego dzia³ania. Dziêki temu wystarczy utworzyæ tylko jeden plik konfiguracyjny dla komputera fred, a nie po jednym dla ka¿dego NetBIOS-owego komputera w sieci.
Pliki konfiguracyjne przeznaczone dla konkretnych komputerów mog¹ pos³u¿yæ
nie tylko do dostosowania us³ug Samby, ale i do diagnozowania jej dzia³ania. Jeœli
mamy na przyk³ad jednego klienta, który sprawia problemy, mo¿emy utworzyæ dla
niego oddzielny plik dziennika o bardziej szczegó³owym poziomie diagnostycznym. Mo¿emy dziêki temu sprawdziæ, co robi Samba, nie spowalniaj¹c innych
klientów i nie wype³niaj¹c dysku bezu¿ytecznymi dziennikami. Pamiêtaj, ¿e w du¿ych
sieciach restartowanie Samby w celach diagnostycznych nie zawsze bêdzie mo¿liwe!
Mo¿esz u¿yæ dowolnej zmiennej z tabeli 4.1 do nadania dostosowanych wartoœci
ró¿nym opcjom Samby. W nastêpnych rozdzia³ach wspomnimy o kilku takich
opcjach.

Sekcje specjalne
Kiedy wiemy ju¿ co nieco o zmiennych, powinniœmy zaj¹æ siê kilkoma specjalnymi
sekcjami pliku konfiguracyjnego Samby. Nie przejmuj siê, jeœli i tutaj nie wszystkie
opcje bêd¹ dla ciebie zrozumia³e; omówimy ka¿d¹ z nich w nastêpnych rozdzia³ach.

Sekcja [globals]
Sekcja [globals]* pojawia siê w niemal ka¿dym pliku konfiguracyjnym Samby,
mimo ¿e jej definiowanie nie jest obowi¹zkowe. Ka¿da opcja zdefiniowana w tej sekcji pliku bêdzie odnosiæ siê do wszystkich pozosta³ych udzia³ów – tak, jakby zawartoœæ sekcji zosta³a skopiowana do samego udzia³u. Jeœli jednak w innej sekcji opcja
zostanie zdefiniowana ponownie, nowa wartoœæ bêdzie mia³a pierwszeñstwo przed
wartoœci¹ z sekcji [globals].
Zilustrujmy to przyk³adem, który pojawi³ siê ju¿ na pocz¹tku rozdzia³u:
*

Mo¿na zamiennie stosowaæ nazwy [globals] i [global] (–przyp. t³um).

Sekcje specjalne

83

[global]
log level = 1
max log size = 1000
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest ok = no
[homes]
browseable = no
map archive = yes
[printers]
path = /usr/tmp
guest ok = yes
printable = yes
min print space = 2000
[test]
browseable = yes
read only = yes
guest ok = yes
path = /export/samba/test

Jeœli chcielibyœmy po³¹czyæ klienta z udzia³em [test], Samba najpierw wczyta³aby
sekcjê [globals]. W tym momencie ustawi³aby opcjê guest ok = no dla wszystkich udzia³ów zdefiniowanych w pliku konfiguracyjnym. Dotyczy to udzia³ów
[homes] i [printers]. Kiedy jednak Samba wczyta sekcjê [test], znajdzie
opcjê guest ok = yes i zast¹pi domyœln¹ wartoœæ no z sekcji [globals] wartoœci¹ yes, ale tylko w kontekœcie udzia³u [test].
Ka¿da opcja, która wystêpuje poza sekcj¹ (przed pierwsz¹ z oznaczonych sekcji), jest
równie¿ uwa¿ana za opcjê globaln¹.

Sekcja [homes]
Jeœli klient stara siê po³¹czyæ z udzia³em, który nie figuruje w pliku smb.conf, Samba
spróbuje odszukaæ sekcjê [homes]. Jeœli taka sekcja istnieje, niezidentyfikowana nazwa udzia³u zostanie uznana za uniksow¹ nazwê u¿ytkownika, a Samba sprawdzi,
czy taka nazwa wystêpuje w bazie hase³ serwera. Jeœli tak jest w istocie, Samba
za³o¿y, ¿e klient jest uniksowym u¿ytkownikiem, próbuj¹cym po³¹czyæ siê ze swoim katalogiem macierzystym w serwerze.
Przypuœæmy, ¿e klient ³¹czy siê po raz pierwszy z serwerem Samby o nazwie hydra
i próbuje uzyskaæ dostêp do udzia³u o nazwie [alicja]. W pliku smb.conf nie ma
zdefiniowanego udzia³u o takiej nazwie, ale jest sekcja [homes], wiêc Samba przeszukuje bazê hase³ i ustala, ¿e w systemie jest konto u¿ytkownika o nazwie alicja.
Samba sprawdza nastêpnie has³o dostarczone przez klienta i porównuje je z uniksowym has³em alicji, korzystaj¹c albo z systemowego pliku hase³ (jeœli w u¿yciu s¹
niezaszyfrowane has³a), albo z pliku smbpasswd (jeœli w u¿yciu s¹ has³a zaszyfrowane). Jeœli has³a s¹ zgodne, Samba wie, ¿e odgad³a poprawnie: alicja próbuje
po³¹czyæ siê ze swoim katalogiem macierzystym. Samba tworzy wiêc dla niej specjalny udzia³ o nazwie [alicja].
Proces tworzenia udzia³ów u¿ytkowników za pomoc¹ sekcji [homes] jest omówiony szczegó³owo w rozdziale 6, U¿ytkownicy, bezpieczeñstwo i domeny.

84

Rozdzia³ 4: Udzia³y dyskowe

Sekcja [printers]
Trzecia sekcja specjalna nosi nazwê [printers] i przypomina sekcjê [homes]. Jeœli klient próbuje po³¹czyæ siê z udzia³em, który nie jest zdefiniowany w pliku
smb.conf, a jego nazwy nie mo¿na znaleŸæ w pliku hase³, Samba sprawdza, czy nie
chodzi o udzia³ drukarki. Odczytuje w tym celu plik parametrów drukarek (zwykle
/etc/printcap) i sprawdza, czy wystêpuje w nim nazwa udzia³u*. Jeœli tak jest, Samba
tworzy udzia³ o nazwie drukarki.
Podobnie jak w przypadku sekcji [homes], oznacza to, ¿e nie musisz tworzyæ w pliku smb.conf udzia³u dla ka¿dej z systemowych drukarek. Jeœli odpowiednio poinstruujesz Sambê, bêdzie ona odwo³ywaæ siê do uniksowego rejestru drukarek i udostêpniaæ je klientom. Istnieje jednak oczywiste ograniczenie: jeœli masz konto u¿ytkownika fred i drukarkê o takiej samej nazwie, Samba zawsze znajdzie najpierw
konto u¿ytkownika, nawet wtedy, gdy klient próbuje po³¹czyæ siê z drukark¹.
Proces konfigurowania udzia³u [printers] jest szczegó³owo opisany w rozdziale 7,
Drukowanie i odwzorowywanie nazw.

Opcje konfiguracyjne
Opcje w pliku konfiguracyjnym Samby dziel¹ siê na dwie kategorie: globalne i dotycz¹ce udzia³ów. Przynale¿noœæ do kategorii warunkuje miejsca, w których mo¿e pojawiæ siê dana opcja.
Opcje globalne
Opcje globalne mog¹ wystêpowaæ tylko w sekcji [global] i nigdzie indziej. S¹
to z regu³y opcje, które wp³ywaj¹ na zachowanie samego serwera Samby, a nie
udostêpnianych przez niego udzia³ów.
Opcje udzia³ów
Opcje udzia³ów mog¹ wystêpowaæ w poszczególnych udzia³ach albo w sekcji
[global]. Jeœli s¹ umieszczone w sekcji [global], wówczas definiuj¹ domyœlnie zachowanie wszystkich udzia³ów, chyba ¿e udzia³ przypisze danej opcji
now¹ wartoœæ.
Mo¿na te¿ wyró¿niæ cztery kategorie wartoœci, które mog¹ przyjmowaæ opcje konfiguracyjne. S¹ to:
Wartoœci logiczne (boole'owskie)
S¹ to po prostu wartoœci typu „tak-nie”. Mo¿na je reprezentowaæ za pomoc¹ symboli: yes, no, true, false, 0, 1. Wielkoœæ liter nie ma znaczenia: YES i yes to ta
sama wartoϾ.
Wartoœci liczbowe
Liczby dziesiêtne, szesnastkowe lub ósemkowe. Standardowa sk³adnia 0xnn
oznacza liczbê szesnastkow¹, a 0nnn – ósemkow¹.
* W twoim systemie plik ten mo¿e mieæ inne po³o¿enie lub nazwê. Mo¿esz u¿yæ dostarczanego wraz
z Samb¹ polecenia testparm, aby sprawdziæ wartoœæ opcji konfiguracyjnej printcap name; jest to domyœlna wartoœæ, wybrana podczas kompilacji Samby.

Opcje pliku konfiguracyjnego

85

£añcuchy
£añcuchy znaków, takie jak nazwy plików lub u¿ytkowników, w których wielkoœæ liter jest rozró¿niana.
Listy wyliczane
Skoñczone listy znanych wartoœci. Wartoœæ logiczna jest w istocie list¹ wyliczan¹
tylko o dwóch wartoœciach.

Opcje pliku konfiguracyjnego
Samba oddaje do dyspozycji u¿ytkownika ponad 200 opcji. Zacznijmy od tych, które
pozwalaj¹ na modyfikowanie samego pliku konfiguracyjnego.
Jak ju¿ wspomnieliœmy w tym rozdziale, pliki konfiguracyjne wcale nie musz¹ byæ
statyczne. Mo¿esz nakazaæ Sambie do³¹czenie, a nawet zast¹pienie opcji konfiguracyjnych w trakcie ich przetwarzania. S³u¿¹ce do tego opcje s¹ wymienione w tabeli 4.2.
Tabela 4.2. Opcje pliku konfiguracyjnego
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

config file

£añcuch (pe³na
nazwa ze œcie¿k¹)

Okreœla po³o¿enie pliku
konfiguracyjnego, który
nale¿y wczytaæ zamiast
bie¿¹cego

Brak

Globalny

include

£añcuch (pe³na
nazwa ze œcie¿k¹)

Okreœla dodatkowy plik
z opcjami, który nale¿y
do³¹czyæ w tym punkcie
pliku konfiguracyjnego

Brak

Globalny

copy

£añcuch (nazwa
udzia³u)

Umo¿liwia powielenie
opcji innego udzia³u
w bie¿¹cym udziale

Brak

Udzia³

config file
Globalna opcja config file okreœla zastêpczy plik konfiguracyjny, który nale¿y
za³adowaæ w miejsce przetwarzanego obecnie. Jeœli istnieje plik docelowy, pozosta³a
czêœæ bie¿¹cego pliku konfiguracyjnego i wszystkie wczytane dot¹d opcje zostan¹
odrzucone; Samba skonfiguruje siê wy³¹cznie na podstawie opcji z nowego pliku.
W opcji config file mo¿na korzystaæ z opisanych wy¿ej zmiennych, co bywa
przydatne w sytuacji, gdy chcesz za³adowaæ specjalny plik konfiguracyjny w oparciu o nazwê komputera lub u¿ytkownika, który ³¹czy siê z serwerem.
Na przyk³ad poni¿sza linia nakazuje Sambie u¿ycie pliku konfiguracyjnego wyznaczonego przez NetBIOS-ow¹ nazwê ³¹cz¹cego siê klienta, jeœli taki plik istnieje. W takim przypadku opcje okreœlone w pierwotnym pliku konfiguracyjnym zostan¹ zi-

86

Rozdzia³ 4: Udzia³y dyskowe

gnorowane. Poni¿szy przyk³ad próbuje wczytaæ nowy plik konfiguracyjny w oparciu o NetBIOS-ow¹ nazwê klienta:
[global]
config file = /usr/local/samba/lib/smb.conf.%m

Jeœli okreœlony plik konfiguracyjny nie istnieje, opcja zostanie zignorowana, a Samba
skonfiguruje siê na podstawie bie¿¹cego pliku.
include
Opcja ta, opisana szczegó³owo nieco wczeœniej, do³¹cza docelowy plik do bie¿¹cego
pliku konfiguracyjnego w okreœlonym punkcie, co ilustruje rysunek 4.1. W opcji tej
równie¿ mo¿na korzystaæ z opisanych wczeœniej zmiennych, co bywa przydatne w sytuacji, gdy chcesz za³adowaæ opcje konfiguracyjne w oparciu o nazwê komputera lub
u¿ytkownika, który ³¹czy siê z serwerem. Opcjê tê mo¿esz wykorzystaæ nastêpuj¹co:
[global]
include = /usr/local/samba/lib/smb.conf.%m

Jeœli wskazany plik konfiguracyjny nie istnieje, opcja zostanie zignorowana. Pamiêtaj, ¿e zdefiniowane wczeœniej wartoœci opcji zostan¹ zast¹pione nowymi. W przyk³adzie z rysunku 4.1 zmienione zostan¹ wartoœci wszystkich trzech opcji.

Rysunek 4.1. Opcja include w pliku konfiguracyjnym Samby

Opcja include nie rozpoznaje zmiennych %u (u¿ytkownik), %p (katalog g³ówny
bie¿¹cego udzia³u) ani %s (bie¿¹cy udzia³), poniewa¿ zmienne te nie s¹ jeszcze ustawione w momencie odczytywania pliku.
copy
Opcja konfiguracyjna copy umo¿liwia powielenie opcji innego udzia³u z bie¿¹cego
pliku konfiguracyjnego. Wskazany udzia³ musi wystêpowaæ w pliku konfiguracyjnym wczeœniej ni¿ ten, do którego kopiowane s¹ opcje. Na przyk³ad:
[szablon]
writeable = yes

Konfiguracja serwera

87

browsable = yes
valid users = andrzej, dawid, piotr
[dane]
path = /usr/local/samba
copy = szablon

Pamiêtaj, ¿e wszystkie opcje w udziale, w którym umieszczono dyrektywê copy,
bêd¹ mia³y pierwszeñstwo przed powielanymi opcjami, niezale¿nie od tego, czy
wystêpuj¹ przed, czy za t¹ dyrektyw¹.

Konfiguracja serwera
Mo¿emy teraz przyst¹piæ do konfigurowania serwera Samby. Zacznijmy od trzech
podstawowych opcji konfiguracyjnych, które mog¹ pojawiæ siê w sekcji [global]
pliku smb.conf:
[global]
# Parametry konfiguracyjne serwera
netbios name = HYDRA
server string = Samba %v w serwerze (%L)
workgroup = PROSTA_GRUPA

Ten plik konfiguracyjny jest bardzo prosty: og³asza w sieci NBT obecnoœæ serwera
Samby o NetBIOS-owej nazwie hydra. Serwer nale¿y do grupy roboczej
PROSTA_GRUPA i zwraca swoim klientom komunikat zawieraj¹cy numer wersji
Samby i NetBIOS-ow¹ nazwê serwera.
Jeœli poprzednio musia³eœ wprowadziæ do pliku konfiguracyjnego opcjê encrypt
passwords = yes, musisz wpisaæ j¹ tak¿e tutaj.

Wypróbuj ten plik konfiguracyjny. Utwórz plik smb.conf w katalogu /usr/local/samba/lib i wpisz do niego powy¿szy tekst. Nastêpnie zresetuj serwer Samby i zweryfikuj wyniki za pomoc¹ klienta Windows. Upewnij siê, ¿e klienty Windows równie¿
nale¿¹ do grupy PROSTA_GRUPA. Po klikniêciu ikony Otoczenia sieciowego
w kliencie Windows powinieneœ zobaczyæ okno podobne do tego z rysunku 4.2
(komputery feniks i chimera to klienty Windows).

Rysunek 4.2. Otoczenie sieciowe z serwerem Samby

88

Rozdzia³ 4: Udzia³y dyskowe

Mo¿esz zweryfikowaæ opcjê server string, wybieraj¹c szczegó³owy widok
w oknie Otoczenia sieciowego (zaznacz pozycjê Szczegó³y w menu Widok). Powinieneœ teraz zobaczyæ okno podobne do tego z rysunku 4.3.

Rysunek 4.3. Szczegó³owy widok Otoczenia sieciowego

Jeœli klikniesz ikonê Hydry, powinno ukazaæ siê okno z oferowanymi przez ni¹
us³ugami. Na razie okno to jest puste, poniewa¿ w serwerze nie ma jeszcze ¿adnych
udzia³ów.

Opcje konfiguracyjne serwera
W tabeli 4.3 zebraliœmy opisane dotychczas opcje konfiguracyjne serwera. Zauwa¿,
¿e wszystkie trzy opcje maj¹ zasiêg globalny. Oznacza to, ¿e musz¹ wystêpowaæ
w sekcji [global] pliku konfiguracyjnego.
Tabela 4.3. Opcje konfiguracyjne serwera
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

netbios name

£añcuch

Nazwa hosta
DNS

Globalny

server string

£añcuch

Samba %v

Globalny

workgroup

£añcuch

Ustawia podstawow¹
nazwê NetBIOS-ow¹
serwera Samby
Ustawia tekst opisuj¹cy
serwer Samby
Ustawia NetBIOS-ow¹
grupê komputerów, do
której nale¿y serwer

Definiowana
podczas
kompilacji

Globalny

netbios name
Opcja netbios name umo¿liwia ustawienie NetBIOS-owej nazwy serwera. Na
przyk³ad:
netbios name = KRAKOWWM1

Domyœlna wartoœæ tej opcji konfiguracyjnej to nazwa hosta DNS, czyli pierwsza czêœæ
pe³nej nazwy DNS komputera. Na przyk³ad komputer o nazwie DNS rubin.ora.com domyœlnie otrzyma³by NetBIOS-ow¹ nazwê RUBIN. Choæ mo¿na

Konfiguracja serwera

89

u¿yæ tej opcji do zmiany NetBIOS-owej nazwy komputera w pliku konfiguracyjnym
(jak zrobiliœmy to wczeœniej), czêœciej s³u¿y ona do przypisania serwerowi nazwy
NetBIOS-owej ró¿nej od bie¿¹cej nazwy DNS. Pamiêtaj, ¿e podana tu nazwa musi
odpowiadaæ regu³om poprawnoœci okreœlonym w rozdziale 1, Poznajemy Sambê.
Nie zaleca siê zmieniania NetBIOS-owej nazwy komputera, jeœli nie ma po temu wa¿nego powodu. Mo¿e siê zdarzyæ, ¿e nazwa hosta nie jest niepowtarzalna, poniewa¿
sieæ lokalna jest podzielona na dwie lub wiêcej domen DNS. Na przyk³ad nazwa
KRAKOWWM1 mo¿e odró¿niaæ komputer wm1.krakow.przyklad.com od komputera wm1.katowice.przyklad.com, który ma tê sam¹ nazwê hosta, ale jest
w innej domenie DNS.
Inne zastosowanie tej opcji to przenoszenie us³ug SMB z uszkodzonego lub wy³¹czonego komputera. Jeœli na przyk³ad serwer dzia³u sprzeda¿y ma nazwê SPRZEDAZ
i nagle ulegnie awarii, mo¿esz natychmiast ustawiæ opcjê netbios name =
SPRZEDAZ w zapasowym serwerze Samby, który przejmuje funkcje tamtego. Dziêki
temu u¿ytkownicy nie bêd¹ musieli zmieniaæ mapowania dysków – nowe po³¹czenia z serwerem SPRZEDAZ po prostu trafi¹ do nowego komputera.
server string
Parametr server string okreœla ³añcuch komentarza, który pojawia siê obok nazwy serwera w oknie Otoczenia sieciowego (kiedy w³¹czona jest opcja Szczegó³y
w menu Widok) oraz w mened¿erze wydruku Windows. W komentarzu tym
mo¿esz u¿yæ standardowych zmiennych Samby. W naszym wczeœniejszym
przyk³adzie komentarz mia³ postaæ:
server string = Samba %v w serwerze (%L)

Domyœlna wartoœæ tej opcji to po prostu numer wersji Samby; odpowiada to ustawieniu:
server string = Samba %v

workgroup
Parametr workgroup ustawia grupê robocz¹, w której serwer bêdzie og³asza³ swoj¹
obecnoœæ. Klienty chc¹ce skorzystaæ z udzia³ów serwera powinny byæ w tej samej
grupie roboczej NetBIOS-u. Pamiêtaj, ¿e grupy robocze to po prostu NetBIOS-owe
nazwy grup, wiêc musz¹ stosowaæ siê do konwencji nazewniczej opisanej w roz dziale 1. Na przyk³ad:
[global]
workgroup = PROSTA_GRUPA

Domyœlna wartoœæ tej opcji jest ustawiana w czasie kompilacji. Jeœli nie zmieniono odpowiedniego wpisu w pliku makefile, nazw¹ grupy roboczej bêdzie WORKGROUP.
Poniewa¿ jest to nazwa grupy roboczej w niemal ka¿dej nieskonfigurowanej NetBIOS-owej sieci, zalecamy ustawienie tej opcji w pliku konfiguracyjnym Samby*.
* Powinniœmy tak¿e nadmieniæ, ¿e nadawanie grupie roboczej takiej samej nazwy, jak¹ nosi serwer, nie
jest najlepszym pomys³em.

90

Rozdzia³ 4: Udzia³y dyskowe

Konfiguracja udzia³ów dyskowych
W poprzednim podrozdziale wspomnieliœmy, ¿e w serwerze hydra nie ma jeszcze
¿adnych udzia³ów dyskowych. Utwórzmy zatem pusty udzia³ dyskowy o nazwie
[dane]. Oto niezbêdne uzupe³nienia:
[global]
netbios name = HYDRA
server string = Samba %v w serwerze (%L)
workgroup = PROSTA_GRUPA
[dane]
path = /export/samba/dane
comment = Dysk z danymi
volume = Stacja-Sieciowa
writeable = yes
guest ok = yes

Zasób [dane] to typowy udzia³ dyskowy Samby. Udzia³ ten odpowiada katalogowi /export/samba/dane w serwerze Samby. Do³¹czyliœmy tak¿e komentarz, który opisuje udzia³ jako Dysk z danymi, a tak¿e nazwê wolumenu dla samego udzia³u.
Udzia³ jest zapisywalny, dziêki czemu u¿ytkownicy mog¹ zapisywaæ na nim dane;
domyœlnie Samba tworzy udzia³y przeznaczone tylko do odczytu. Musisz zatem jawnie ustawiæ tê opcjê dla ka¿dego udzia³u dyskowego, jeœli chcesz zezwoliæ na zapis.
Prawdopodobnie zauwa¿y³eœ, ¿e ustawiliœmy opcjê guest ok na yes. Nie jest to
zbyt bezpieczne, ale musimy najpierw wyjaœniæ pewne zagadnienia zwi¹zane
z has³ami, zanim zaczniemy konfigurowaæ konta u¿ytkowników i uwierzytelnianie.
Póki co, dziêki tej opcji pominiemy kwestiê hase³ i pozwolimy na ³¹czenie siê
z udzia³em wszystkim u¿ytkownikom.
Dopisz teraz powy¿sze opcje do swojego pliku konfiguracyjnego. Oprócz tego jako
root utwórz katalog /export/samba/dane w serwerze Samby za pomoc¹ poleceñ:
# mkdir /export/samba/dane
# chmod 777 /export/samba/dane

Jeœli znów po³¹czysz siê z serwerem hydra (klikaj¹c jego ikonê w oknie Otoczenia
sieciowego), powinieneœ zobaczyæ udzia³ o nazwie dane, jak na rysunku 4.4. Udzia³
ten powinien umo¿liwiaæ zarówno odczyt, jak i zapis. Spróbuj skopiowaæ do niego
plik lub utworzyæ nowy. Jeœli nie brak ci odwagi, mo¿esz nawet przypisaæ mu literê
dysku!

Rysunek 4.4. Udzia³ dane w serwerze Samby

Konfiguracja udzia³ów dyskowych

91

Opcje konfiguracyjne udzia³ów dyskowych
Opisane poprzednio opcje konfiguracyjne udzia³ów dyskowych s¹ wymienione
w tabeli 4.4.
Tabela 4.4. Podstawowe opcje konfiguracyjne udzia³ów
Opcja

Parametry

path
£añcuch
(directory) (pe³na nazwa
ze œcie¿k¹)

Funkcja

WartoϾ
domyœlna

Zasiêg

Ustawia nazwê uniksowego katalogu, który bêdzie udostêpniany jako
udzia³ dyskowy albo u¿ywany jako
katalog buforowy drukarki

/tmp

Udzia³

guest ok
(public)

WartoϾ
logiczna

Jeœli jest ustawiona na yes, dostêp
do tego udzia³u nie wymaga
uwierzytelnienia

no

Udzia³

comment

£añcuch

Ustawia komentarz pojawiaj¹cy siê
przy nazwie udzia³u

Brak

Udzia³

volume

£añcuch

Ustawia nazwê wolumenu
(DOS-ow¹ nazwê fizycznego dysku)

Nazwa
udzia³u

Udzia³

read only

WartoϾ
logiczna

Jeœli jest ustawiona na yes,
umo¿liwia tylko odczyt udzia³u

yes

Udzia³

writeable
(write ok)

WartoϾ
logiczna

Jeœli jest ustawiona na no,
umo¿liwia tylko odczyt udzia³u

no

Udzia³

path
Opcja ta (i jej synonim directory) okreœla œcie¿kê do g³ównego katalogu udzia³u plikowego lub drukarki. Mo¿esz wybraæ dowolny katalog w serwerze Samby, pod warunkiem, ¿e u¿ytkownik ³¹cz¹cego siê procesu ma prawo do odczytu i zapisu w tym
katalogu. Jeœli œcie¿ka odnosi siê do drukarki, powinna wskazywaæ na katalog tymczasowy, w którym mo¿na zapisaæ pliki na serwerze przed ich wys³aniem do bufora
docelowej drukarki (czêsto u¿ywa siê w tym celu katalogów /tmp lub /var/spool). Jeœli
œcie¿ka odnosi siê do udzia³u dyskowego, zawartoœæ folderu reprezentuj¹cego udzia³
w kliencie bêdzie odpowiadaæ zawartoœci katalogu w serwerze Samby. Jeœli na przyk³ad zdefiniujemy poni¿szy udzia³ dyskowy w naszym pliku konfiguracyjnym:
[siec]
path = /export/samba/siec
writable* = yes
guest ok = yes
* Obie formy zapisu tej opcji: writeable i writable s¹ równowa¿ne; analogicznie: browseable
i browsable (–przyp. t³um.)

92

Rozdzia³ 4: Udzia³y dyskowe

a zawartoœæ uniksowego katalogu /export/samba/siec wygl¹da nastêpuj¹co:
$ ls -al /export/samba/siec
drwxrwxrwx 9 root
nobody
drwxr-xr-x 9 nobody nobody
drwxr-xr-x 9 nobody nobody
drwxr-xr-x 9 nobody nobody
drwxr-xr-x 9 nobody nobody

1024
1024
1024
1024
1024

Feb
Feb
Feb
Feb
Feb

16
16
16
16
16

17:17
17:17
17:17
17:17
17:17

.
..
quicken
podatki98
dokumenty

to po stronie klienta powinniœmy zobaczyæ mniej wiêcej to, co na rysunku 4.5.

Rysunek 4.5. Widok systemu plików okreœlonego opcj¹ path w kliencie Windows

guest ok
Ta opcja (i jej starszy synonim public) umo¿liwia lub uniemo¿liwia „goœcinny” dostêp do udzia³u. Jej domyœlna wartoœæ to no. Jeœli jest ustawiona na yes, oznacza to,
¿e w celu uzyskania dostêpu do udzia³u nie trzeba bêdzie podawaæ nazwy u¿ytkownika ani has³a. Kiedy u¿ytkownik po³¹czy siê z serwerem, jego prawa dostêpu bêd¹
równowa¿ne prawom wyznaczonego u¿ytkownika-goœcia. Domyœlne konto goœcia
to nobody, co mo¿na zmieniæ za pomoc¹ opcji konfiguracyjnej guest account. Na
przyk³ad poni¿sze linie zezwalaj¹ goœciom na dostêp do udzia³u [ksiegowosc]
z prawami konta ftp:
[global]
guest account = ftp
[ksiegowosc]
path = /usr/local/ksieg
guest ok = yes

U¿ytkownicy mog¹ nadal ³¹czyæ siê z udzia³em za pomoc¹ poprawnej kombinacji
nazwa u¿ytkownika-has³o. Jeœli zostan¹ pomyœlnie uwierzytelnieni, uzyskaj¹ prawa dostêpu wynikaj¹ce z uprawnieñ w³asnego konta, a nie konta goœcia. Jeœli jednak
próba zalogowania siê nie powiedzie, u¿ytkownik otrzyma prawa dostêpu wynikaj¹ce z uprawnieñ konta goœcia. U¿ywaj¹c opcji guest only = yes mo¿esz sprawiæ, ¿e ka¿dy u¿ytkownik ³¹cz¹cy siê z udzia³em bêdzie korzysta³ z konta goœcia
(i wobec tego mia³ prawa goœcia).
comment
Opcja comment pozwala na wpisanie komentarza, który bêdzie wysy³any do klientów
próbuj¹cych przejrzeæ zawartoœæ udzia³u. U¿ytkownik mo¿e obejrzeæ ten komentarz
wybieraj¹c szczegó³owy widok folderu odpowiedniego komputera w oknie Otoczenia sieciowego albo wpisuj¹c NET VIEW w oknie MS-DOS. Oto, jak mo¿na dodaæ komentarz do udzia³u [siec]:

Konfiguracja udzia³ów dyskowych

93

[siec]
comment = Stacja sieciowa
path = /export/samba/siec

Po stronie klienta bêdzie mo¿na wówczas zobaczyæ folder podobny do tego z rysunku 4.6. W obecnej konfiguracji Windows komentarz ten nie jest wyœwietlany dla
udzia³ów, które s¹ mapowane na dysk sieciowy.

Rysunek 4.6. Komentarz udzia³u w kliencie Windows

Nie myl opcji comment, która dokumentuje udzia³y serwera Samby, z opcj¹ server
string, która opisuje sam serwer.
volume
Opcja ta umo¿liwia okreœlenie nazwy wolumenu udzia³u zg³aszanej przez SMB.
Zwykle jest ona taka sama, jak nazwa udzia³u zdefiniowana w pliku smb.conf. Jeœli
jednak chcia³byœ nadaæ jej inn¹ nazwê (z dowolnej przyczyny), mo¿esz to zrobiæ za
pomoc¹ tej opcji.
Na przyk³ad program instalacyjny mo¿e sprawdzaæ nazwê wolumenu CD-ROM-u,
aby przed przyst¹pieniem do instalacji upewniæ siê, ¿e w stacji jest w³aœciwy
CD-ROM. Jeœli chcia³byœ skopiowaæ zawartoœæ CD-ROM-u do udzia³u dyskowego
i instalowaæ oprogramowanie z tego udzia³u, opcja ta pozwoli obejœæ zabezpieczenie:
[siec]
comment = Stacja sieciowa
volume = ASVP-102-RTYUIKA
path = /home/samba/siec

read only i writeable
Opcje read only i writeable (lub write ok) to w gruncie rzeczy dwa sposoby
powiedzenia tej samej rzeczy, choæ z przeciwnych pozycji. Mo¿esz wiêc ustawiæ dowoln¹ z poni¿szych dwóch opcji w sekcji [global] albo w którymœ z udzia³ów:
read only = yes
writeable = no

Jeœli dowolna z tych opcji jest ustawiona w taki sposób, mo¿na bêdzie odczytywaæ
dane z udzia³u, ale nie zapisywaæ. Byæ mo¿e myœlisz, ¿e opcje te bêd¹ potrzebne tylko podczas tworzenia udzia³u przeznaczonego tylko do odczytu. Zauwa¿ jednak, ¿e
ów tryb tylko do odczytu jest domyœlnym trybem udzia³ów; jeœli chcesz zapisywaæ
dane na udziale, musisz jawnie podaæ w pliku konfiguracyjnym jedn¹ z poni¿szych
opcji dla ka¿dego udzia³u:
read only = no
writeable = yes

94

Rozdzia³ 4: Udzia³y dyskowe

Jeœli u¿yjesz którejœ z tych opcji wiêcej ni¿ jeden raz, Samba przyjmie ostatni¹ zdefiniowan¹ wartoœæ.

Sieciowe opcje Samby
Gdy Samba dzia³a w serwerze z wieloma kartami sieciowymi (po³¹czonym z ró¿nymi podsieciami), a nawet wtedy, gdy chcesz wdro¿yæ politykê bezpieczeñstwa we
w³asnej podsieci, powinieneœ bli¿ej zainteresowaæ siê sieciowymi opcjami konfiguracyjnymi.
W tym przyk³adzie za³o¿ymy, ¿e serwer Samby jest pod³¹czony do wiêcej ni¿ jednej
podsieci. Mówi¹c œciœlej, komputer ma dostêp do podsieci 192.168.220.* i 134.213.233.*.
Oto, jak mo¿na uzupe³niæ tworzony przez nas plik o opcje konfiguracji sieci:
[global]
netbios name = HYDRA
server string = Samba %v w serwerze (%L)
workgroup = PROSTA_GRUPA
# Opcje konfiguracji sieci
hosts allow = 192.168.220. 134.213.233. localhost
hosts deny = 192.168.220.102
interfaces = 192.168.220.100/255.255.255.0 \
134.213.233.110/255.255.255.0
bind interfaces only = yes
[dane]
path = /export/samba/dane
guest ok = yes
comment = Dysk z danymi
volume = Stacja-Sieciowa
writeable = yes

Zajmijmy siê najpierw opcjami hosts allow i hosts deny. Jeœli ich nazwy wydaj¹ ci siê znajome, prawdopodobnie myœlisz o plikach hosts.allow i hosts.deny znajduj¹cych siê w katalogu /etc wielu systemów uniksowych. Opcje te maj¹ takie samo
zastosowanie: zapewniaj¹ bezpieczeñstwo, pozwalaj¹c hostom o okreœlonych adresach IP na nawi¹zywanie po³¹czeñ lub odmawiaj¹c im dostêpu. Czemu nie mo¿na
po prostu u¿yæ plików hosts.allow i hosts.deny? Poniewa¿ w serwerze mog¹ znajdowaæ siê inne us³ugi, które chcia³byœ oddaæ do dyspozycji innym u¿ytkownikom, nie
daj¹c im dostêpu do udzia³ów dyskowych i drukarek Samby.
W opcji hosts allow powy¿ej podaliœmy obciêty adres IP: 192.168.220. (zauwa¿,
¿e jest w nim trzecia kropka; brakuje tylko czwartej liczby). Jest to równowa¿ne
stwierdzeniu: „wszystkie hosty w podsieci 192.168.220”. Zarazem jawnie okreœliliœmy, ¿e host o adresie 192.168.220.102 nie ma zezwolenia na dostêp.
Byæ mo¿e zastanawiasz siê, dlaczego host 192.168.220.102 nie uzyska zezwolenia na
dostêp, skoro jest w podsieci okreœlonej opcj¹ hosts allow? Oto, w jaki sposób
Samba przetwarza regu³y zawarte w opcjach hosts allow i hosts deny:
1. Jeœli w pliku smb.conf nie ma zdefiniowanych opcji hosts allow i hosts deny,
Samba bêdzie przyjmowaæ po³¹czenia od dowolnego komputera, któremu po zwala na to sam system.

Sieciowe opcje Samby

95

2. Jeœli opcje hosts allow lub hosts deny s¹ zdefiniowane w sekcji [global]
pliku smb.conf, bêd¹ odnosi³y siê do wszystkich udzia³ów, nawet wtedy, gdy
w udziale znajduj¹ siê przedefiniowuj¹ce je opcje.
3. Jeœli w udziale zdefiniowana jest tylko opcja hosts allow, tylko wymienione
hosty bêd¹ mia³y dostêp do udzia³u. Wszystkie inne spotkaj¹ siê z odmow¹ dostêpu.
4. Jeœli w udziale zdefiniowana jest tylko opcja hosts deny, wszystkie hosty nie
wymienione na liœcie bêd¹ mog³y korzystaæ z udzia³u.
5. Jeœli zdefiniowane s¹ opcje hosts allow i hosts deny, host musi wystêpowaæ
na liœcie allow i nie wystêpowaæ na liœcie deny (w dowolnej formie), aby móg³
korzystaæ z udzia³u. W przeciwnym wypadku spotka siê z odmow¹ dostêpu.
Uwa¿aj, aby po jawnym zezwoleniu hostowi na dostêp nie odmówiæ dostêpu ca³ej podsieci, której ten host jej czêœci¹.

Spójrzmy na przyk³ad ilustruj¹cy ostatni punkt. Rozwa¿my nastêpuj¹ce opcje:
hosts allow = 111.222.
hosts deny = 111.222.333.

W tym przypadku tylko hosty nale¿¹ce do podsieci 111.222.*.* bêd¹ mia³y dostêp do
udzia³ów Samby. Jeœli jednak klient nale¿y do podsieci 111.222.333.*, spotka siê z odmow¹ dostêpu, choæ spe³nia wymagania opcji hosts allow. Klient musi wystêpowaæ na liœcie hosts allow i nie mo¿e wystêpowaæ na liœcie hosts deny, aby uzyskaæ dostêp do udzia³u Samby. Jeœli komputer spróbuje po³¹czyæ siê z udzia³em, do
którego nie ma prawa dostêpu, otrzyma komunikat o b³êdzie.
Pozosta³e dwie opcje to interfaces i bind interfaces only. Przyjrzyjmy siê
najpierw opcji interfaces. Domyœlnie Samba wysy³a dane tylko przez podstawowy interfejs sieciowy, który w naszym przypadku znajduje siê w podsieci
192.168.220.100. Jeœli chcielibyœmy, aby dane by³y wysy³ane przez wiêcej ni¿ jeden
interfejs, musielibyœmy podaæ ich pe³n¹ listê w opcji interfaces. W poprzednim
przyk³adzie nakazaliœmy Sambie wspó³pracê z oboma podsieciami (192.168.220
i 134.213.233), w których dzia³a komputer, podaj¹c adres drugiego interfejsu sieciowego: 134.213.233.100. Jeœli w twoim komputerze jest wiêcej ni¿ jeden interfejs, powinieneœ zawsze u¿yæ tej opcji, poniewa¿ nie mo¿na zagwarantowaæ, ¿e podstawowy interfejs wybrany przez Sambê bêdzie tym w³aœciwym.
Wreszcie opcja bind interfaces only instruuje proces nmbd, aby nie akceptowa³ komunikatów rozg³oszeniowych pochodz¹cych z podsieci innych ni¿ te wymienione w opcji interfaces. Zauwa¿, ¿e ró¿ni siê to od dzia³ania opcji hosts allow i hosts deny, które uniemo¿liwiaj¹ nawi¹zanie po³¹czenia z us³ugami, ale nie
zapobiegaj¹ przyjmowaniu komunikatów rozg³oszeniowych. Opcja bind interfaces only sprawia, ¿e serwer Samby nie bêdzie odbiera³ nawet datagramów
z obcych podsieci. Oprócz tego instruuje proces smbd, aby wi¹za³ siê tylko z interfejsami wymienionymi w opcji interfaces, co ogranicza liczbê podsieci obs³ugiwanych przez Sambê.

96

Rozdzia³ 4: Udzia³y dyskowe

Opcje sieciowe
Opisane wy¿ej opcje sieciowe s¹ wymienione w tabeli 4.5.
Tabela 4.5. Opcje konfiguracji sieci
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

hosts allow
(allow hosts)

£añcuch (lista
nazw hostów)

Okreœla komputery,
które mog¹ ³¹czyæ siê
z Samb¹

Brak

Udzia³

hosts deny
(deny hosts)

£añcuch (lista
nazw hostów)

Okreœla komputery,
które nie mog¹ ³¹czyæ
siê z Samb¹

Brak

Udzia³

interfaces

£añcuch (lista
kombinacji adres
IP/maska
sieciowa)

Okreœla interfejsy
sieciowe obs³ugiwane
przez Sambê. Umo¿liwia
skorygowanie domyœlnych
ustawieñ

Zale¿na od Globalny
systemu

Jeœli jest ustawiona na
yes, Samba wi¹¿e siê
tylko z tymi interfejsami,
które podano w opcji
interfaces

no

Globalny

Ustawia adres IP, pod
którym nale¿y czekaæ
na ¿¹dania; u¿ywana
w serwerach z wieloma
wirtualnymi interfejsami

Brak

Globalny

bind
WartoϾ
interfaces only logiczna

socket
address

£añcuch
(adres IP)

hosts allow
Opcja hosts allow (czasem zapisywana tak¿e w postaci allow hosts) okreœla
komputery, które mog¹ korzystaæ z udzia³ów w serwerze Samby. Jej parametrem
jest lista oddzielonych przecinkami nazw komputerów lub adresów IP. Mo¿esz
znacznie podnieœæ poziom bezpieczeñstwa, po prostu umieszczaj¹c w tej opcji adres
swojej lokalnej podsieci. W naszym przyk³adzie u¿yliœmy nastêpuj¹cej opcji:
hosts allow = 192.168.220. localhost

Zauwa¿, ¿e oprócz adresu podsieci uwzglêdniliœmy tak¿e lokalnego hosta. Jedna
z najczêstszych pomy³ek w u¿yciu opcji hosts allow polega na tym, ¿e serwerowi
Samby mo¿na przypadkowo uniemo¿liwiæ komunikacjê z samym sob¹. Program
smbpasswd od czasu do czasu musi po³¹czyæ siê z serwerem Samby jako klient, aby
zmieniæ zaszyfrowane has³o u¿ytkownika. Ponadto dostêp z lokalnego hosta jest

Sieciowe opcje Samby

97

niezbêdny, aby rozpowszechniaæ informacje o przegl¹daniu. Jeœli opcja ta jest
w³¹czona, a nie zawarto w niej adresu lokalnego hosta, wówczas wygenerowane lokalnie pakiety z ¿¹daniem zmiany has³a zostan¹ odrzucone przez Sambê, a rozpowszechnianie informacji o przegl¹daniu bêdzie dzia³aæ b³êdnie. Aby tego unikn¹æ,
nale¿y jawnie zezwoliæ na korzystanie z adresu pêtli zwrotnej (pisz¹c albo localhost, albo 127.0.0.1)*.
W opcji tej mo¿na u¿ywaæ dowolnego z poni¿szych formatów:
· Nazwy hostów, takie jak ftp.przyklad.com.
· Adresy IP, takie jak 130.63.9.252.
· Nazwy domen, które mo¿na odró¿niæ od nazw hostów, poniewa¿ zaczynaj¹ siê
od kropki. Zapis .ora.com oznacza wszystkie komputery w domenie ora.com.
· Grupy sieciowe, których nazwy zaczynaj¹ siê od znaku at, na przyk³ad @hostywydruku. Z grup sieciowych mo¿na korzystaæ praktycznie tylko w systemach
u¿ywaj¹cych NIS lub NIS+. Jeœli twój system obs³uguje grupy sieciowe, powinna
byæ w nim dostêpna strona podrêcznika man netgroups, opisuj¹ca je bardziej
szczegó³owo.
· Podsieci, które koñcz¹ siê kropk¹. Na przyk³ad 136.63.9. oznacza wszystkie
komputery, których adres IP zaczyna siê od 130.63.9.
· S³owo kluczowe ALL, które zezwala na dostêp wszystkim klientom.
· S³owo kluczowe EXCEPT, po którym nastêpuje jedna lub wiêcej nazw komputerów, adresów IP, nazw domen, grup sieciowych albo podsieci. Móg³byœ na
przyk³ad nakazaæ, aby Samba obs³ugiwa³a wszystkie hosty oprócz tych w podsieci 192.168.110, u¿ywaj¹c opcji hosts allow = ALL EXCEPT 192.168.110.
(pamiêtaj o ostatniej kropce).
U¿ywanie s³owa kluczowego ALL jest niemal zawsze niewskazane, poniewa¿ umo¿liwia dowolnemu u¿ytkownikowi dowolnej sieci przegl¹danie twoich plików, jeœli
tylko zdo³a on odgadn¹æ nazwê serwera.
Zauwa¿, ¿e opcja konfiguracyjna hosts allow nie ma wartoœci domyœlnej, choæ
domyœlne dzia³anie w razie nieobecnoœci obu opcji hosts polega na zezwoleniu na
dostêp ze wszystkich Ÿróde³. Oprócz tego, jeœli umieœcisz opcjê hosts allow
w sekcji [global] pliku konfiguracyjnego, bêdzie ona mia³a pierwszeñstwo przed
opcjami hosts allow zdefiniowanymi w udzia³ach.
hosts deny
Opcja hosts deny (tak¿e deny hosts) okreœla komputery, które nie maj¹ zezwolenia na dostêp do udzia³ów. Jej parametrem jest lista oddzielonych przecinkami
nazw komputerów lub adresów IP. Do okreœlania klientów mo¿na u¿yæ tego samego
formatu co w opisanej wy¿ej opcji hosts allow. Aby na przyk³ad zezwoliæ na dostêp do serwera tylko z domeny przyklad.com, móg³byœ u¿yæ opcji:
hosts deny = ALL EXCEPT .przyklad.com
* Od wersji 2.0.5 Samby lokalny host automatycznie uzyskuje prawo dostêpu, o ile jawnie mu siê go nie
odmówi.

98

Rozdzia³ 4: Udzia³y dyskowe

Podobnie jak hosts allow, opcja ta nie ma wartoœci domyœlnej, choæ domyœlne
dzia³anie w razie nieobecnoœci obu opcji hosts polega na zezwoleniu na dostêp ze
wszystkich Ÿróde³. Oprócz tego, jeœli umieœcisz opcjê hosts deny w sekcji [global]
pliku konfiguracyjnego, bêdzie ona mia³a pierwszeñstwo przed opcjami hosts deny
zdefiniowanymi w udzia³ach. Jeœli chcesz ograniczyæ hostom dostêp do konkretnych
udzia³ów, nie umieszczaj opcji hosts allow i hosts deny w sekcji [global].
interfaces
Opcja interfaces wymienia interfejsy sieciowe, które Samba bêdzie rozpoznawaæ
i przez które bêdzie odpowiadaæ. Opcja ta jest przydatna, jeœli twój komputer nale¿y
do wiêcej ni¿ jednej podsieci. Jeœli opcja ta nie jest ustawiona, Samba w trakcie uruchamiania wyszukuje podstawowy interfejs serwera (zwykle pierwsz¹ kartê Ethernetu) i konfiguruje siê do obs³ugi tej jednej podsieci. Jeœli serwer dzia³a nie tylko
w jednej podsieci, a ty nie podasz tej opcji, Samba bêdzie pracowaæ wy³¹cznie
w pierwszej wykrytej podsieci. Musisz pos³u¿yæ siê t¹ opcj¹, aby Samba obs³ugiwa³a
pozosta³e podsieci.
Wartoœci¹ tej opcji jest jedna lub wiêcej par adres IP-maska sieciowa, jak w poni¿szym przyk³adzie:
interfaces = 192.168.220.100/255.255.255.0 192.168.210.30/255.255.255.0

Mo¿na tak¿e podaæ maskê bitow¹ w formacie CIDR, jak ni¿ej:
interfaces = 192.168.220.100/24 192.168.210.30/24

Maska bitowa to liczba pocz¹tkowych bitów, które zostan¹ w³¹czone w masce sieciowej. Na przyk³ad liczba 24 oznacza, ¿e aktywne bêd¹ pierwsze 24 bity (z 32), co
jest równowa¿ne notacji 255.255.255.0. Podobnie, liczba 16 odpowiada masce
255.255.0.0, a 8 – 255.0.0.0.
Jeœli u¿ywasz DHCP, opcja ta mo¿e dzia³aæ nieprawid³owo.

bind interfaces only
Opcja bind interfaces only sprawia, ¿e procesy smbd i nmbd obs³uguj¹ ¿¹dania
pochodz¹ce tylko z tych podsieci, które s¹ wymienione w opcji interfaces. Zwykle proces nmbd jest powi¹zany z interfejsem wszystkich adresów (0.0.0.0) na portach 137 i 138, co pozwala mu na odbieranie rozg³oszeñ z dowolnego Ÿród³a. Mo¿esz
jednak to zmieniæ za pomoc¹ nastêpuj¹cej opcji:
bind interfaces only = yes

Spowoduje to, ¿e oba procesy Samby bêd¹ ignorowaæ wszystkie pakiety, których adres Ÿród³owy nie odpowiada adresom rozg³oszeniowym okreœlonym w opcji interfaces, ³¹cznie z pakietami rozg³oszeniowymi. Jeœli chodzi o proces smbd, opcja
ta sprawi, ¿e Samba nie bêdzie honorowaæ ¿¹dañ dostêpu do plików pochodz¹cych
z podsieci innych ni¿ wymienione w opcji interfaces. Nie powinieneœ u¿ywaæ tej
opcji, jeœli chcesz zezwoliæ na tymczasowe po³¹czenia sieciowe, na przyk³ad tworzo-

Serwery wirtualne

99

ne za poœrednictwem SLIP lub PPP. Opcja ta jest potrzebna bardzo rzadko i powinni
jej u¿ywaæ tylko eksperci.
Jeœli ustawisz opcjê bind interfaces only na yes, powinieneœ dodaæ adres lokalnego hosta (127.0.0.1) do listy interfaces. W przeciwnym wypadku program smbpasswd nie bêdzie móg³ po³¹czyæ siê z serwerem w celu zmiany has³a.

socket address
Opcja socket address okreœla, pod którymi adresami podanymi w opcji interfaces Samba bêdzie czekaæ na po³¹czenia. Samba domyœlnie akceptuje po³¹czenia
kierowane pod wszystkie podane adresy. Jeœli u¿yjesz tej opcji w pliku smb.conf, wymusi ona czekanie pod tylko jednym adresem IP. Na przyk³ad:
interfaces = 192.168.220.100/24 192.168.210.30/24
socket address = 192.168.210.30

Opcja ta jest narzêdziem programistycznym, wiêc radzimy jej nie u¿ywaæ.

Serwery wirtualne
Serwery wirtualne tworz¹ iluzjê obecnoœci wielu serwerów NetBIOS-u w sieci, choæ
w rzeczywistoœci jest tylko jeden taki serwer. Uzyskanie takiego efektu nie jest trudne: komputer po prostu rejestruje wiêcej ni¿ jedn¹ NetBIOS-ow¹ nazwê w po³¹czeniu ze swoim adresem IP. Metoda ta przynosi wymierne korzyœci.
Dzia³ ksiêgowoœci móg³by na przyk³ad dysponowaæ serwerem ksiegowosc, którego klienci widzieliby tylko dyski i drukarki nale¿¹ce do dzia³u ksiêgowoœci. Dzia³
marketingu móg³by mieæ w³asny serwer marketing, przechowuj¹cy sprawozdania tworzone w tym dziale – i tak dalej. Jednak¿e wszystkie us³ugi by³yby œwiadczone przez uniksow¹ stacjê robocz¹ (z pomoc¹ jednego zrelaksowanego administratora), zamiast przez kilka niewielkich serwerów obs³ugiwanych przez niezale¿nych
administratorów.
Samba pozwala przypisaæ kilka nazw NetBIOS-owych uniksowemu serwerowi za
pomoc¹ opcji netbios aliases (patrz tabela 4.6).
Tabela 4.6. Opcje konfiguracji wirtualnych serwerów
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

netbios
aliases

Lista nazw
NetBIOS-owych

Dodatkowe nazwy NetBIOS-owe,
na które powinien reagowaæ
serwer, u¿ywane do utworzenia
„wirtualnych” serwerów Samby

Brak

Globalny

netbios aliases
Dziêki opcji netbios aliases mo¿na nadaæ serwerowi Samby wiêcej ni¿ jedn¹ nazwê NetBIOS-ow¹. Ka¿da podana nazwa NetBIOS-owa zostanie wyœwietlona

100

Rozdzia³ 4: Udzia³y dyskowe

w oknie Otoczenia sieciowego komputera przegl¹daj¹cego zasoby sieci. Kiedy jednak
klient spróbuje nawi¹zaæ po³¹czenie, po³¹czy siê z tym samym serwerem Samby.
Opcja ta mo¿e siê przydaæ na przyk³ad wtedy, gdy przenosisz dane trzech oddzia³ów firmy na jeden serwer uniksowy z nowoczesnym du¿ym dyskiem, rezygnuj¹c ze starych serwerów NT lub przeznaczaj¹c je do innych zadañ. Jeœli serwery
te nosi³y nazwy sprzedaz, ksiegowosc i administracja, Samba mo¿e reprezentowaæ wszystkie trzy dziêki opcjom:
[global]
netbios aliases = sprzedaz ksiegowosc administracja
include = /usr/local/samba/lib/smb.conf.%L

To, co pojawi³oby siê w Otoczeniu sieciowym klientów, pokazuje rysunek 4.7. Kiedy
klient spróbuje po³¹czyæ siê z Samb¹, poda nazwê serwera, z którym chce nawi¹zaæ
po³¹czenie – nazwa ta bêdzie dostêpna w zmiennej %L. Jeœli ¿¹dany serwer to
sprzedaz, Samba do³¹czy plik /usr/local/samba/lib/smb.conf.sprzedaz. Plik ten mo¿e
zawieraæ deklaracje globalne i definicje udzia³ów przeznaczone wy³¹cznie dla dzia³u sprzeda¿y, na przyk³ad:
[global]
workgroup = SPRZEDAZ
hosts allow = 192.168.10.255
[sprzedaz1998]
path = /usr/local/samba/sprzedaz/sprzedaz1998/
...

W tym przyk³adzie ustawiamy tak¿e nazwê grupy roboczej na SPRZEDAZ i okreœlamy adres IP, który zezwala na przyjmowanie po³¹czeñ tylko z podsieci SPRZEDAZ
(192.168.10). Definiujemy tak¿e udzia³y specyficzne dla dzia³u sprzeda¿y.

Rysunek 4.7. Stosowanie aliasów NetBIOS-owych w serwerze Samby

Opcje konfiguracji rejestrowania
Od czasu do czasu musimy sprawdziæ, co w³aœciwie robi Samba, zw³aszcza wtedy,
gdy przeprowadzi ona nieoczekiwan¹ operacjê lub w ogóle przestanie dzia³aæ. Aby
uzyskaæ niezbêdne informacje, musimy przejrzeæ pliki dziennika Samby i spraw dziæ, czemu zrobi³a to, co zrobi³a.
Pliki dziennika Samby mog¹ byæ tak szczegó³owe albo tak zdawkowe, jak sobie tylko za¿yczysz. Oto przyk³ad typowego pliku dziennika Samby:

Opcje konfiguracji rejestrowania

101

[1999/07/21 13:23:25, 3] smbd/service.c:close_cnum(514)
feniks (192.168.220.101) closed connection to service IPC$
[1999/07/21 13:23:25, 3] smbd/connection.c:yield_connection(40)
Yielding connection to IPC$
[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
Transaction 923 of length 49
[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
switch message SMBread (pid 467)
[1999/07/21 13:23:25, 3] lib/doscalls.c:dos_ChDir(336)
dos_ChDir to /home/samba
[1999/07/21 13:23:25, 3] smbd/reply.c:reply_read(2199)
read fnum=4207 num=2820 nread=2820
[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
Transaction 924 of length 55
[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
switch message SMBreadbraw (pid 467)
[1999/07/21 13:23:25, 3] smbd/reply.c:reply_readbraw(2053)
readbraw fnum=4207 start=130820 max=1276 min=0 nread=1276
[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
Transaction 925 of length 55
[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
switch message SMBreadbraw (pid 467)

Wiele z tych zapisów przydaje siê tylko programistom, ale znaczenie niektórych
omówimy nieco dok³adniej w rozdziale 9, Rozwi¹zywanie problemów.
Samba zawiera szeœæ opcji umo¿liwiaj¹cych okreœlenie sposobu i miejsca rejestrowania informacji. Ka¿da z nich ma zasiêg globalny i nie mo¿e pojawiæ siê w definicji
udzia³u. Oto uaktualniony plik konfiguracyjny z omówionymi do tej pory opcjami
udzia³ów i dodanymi opcjami rejestrowania:
[global]
netbios name = HYDRA
server string = Samba %v w serwerze (%L)
workgroup = PROSTA_GRUPA
# Opcje konfiguracji sieci
hosts allow = 192.168.220. 134.213.233. localhost
hosts deny = 192.168.220.102
interfaces = 192.168.220.100/255.255.255.0 \
134.213.233.110/255.255.255.0
bind interfaces only = yes
# Rejestrowanie informacji diagnostycznych
log level = 2
log file = /var/log/samba.log.%m
max log size = 15
debug timestamp = yes
[dane]
path = /export/samba/dane
browseable = yes
guest ok = yes
comment = Dysk z danymi
volume = Stacja-Sieciowa
writeable = yes

Dodaliœmy tutaj w³asny plik dziennika, który uwzglêdnia informacje diagnostyczne
a¿ do poziomu 2. Jest to raczej ma³o szczegó³owy poziom diagnostyczny – poziom

102

Rozdzia³ 4: Udzia³y dyskowe

rejestrowania mo¿na zmieniaæ od 1 do 10, przy czym poziom 1 zapewnia niewiele
informacji, a poziom 10 – bardzo du¿o i bardzo szczegó³owych. Poziom 2 dostarczy
nam po¿ytecznych informacji diagnostycznych bez marnotrawienia przestrzeni
dyskowej serwera. W praktyce powinieneœ unikaæ poziomów rejestrowania wy¿szych ni¿ 3, jeœli nie programujesz Samby.
Plik zostanie umieszczony w katalogu /var/log dziêki opcji konfiguracyjnej log
file. Mo¿emy jednak skorzystaæ z mechanizmu podstawiania zmiennych, aby
utworzyæ pliki konfiguracyjne dla poszczególnych klientów lub u¿ytkowników, jak
w poni¿szej linii ze zmienn¹ %m:
log file = /usr/local/logs/samba.log.%m

Wyizolowanie komunikatów mo¿e byæ niezwykle pomocne podczas tropienia b³êdów w sieci, jeœli wiesz, ¿e problem powoduje konkretny komputer lub u¿ytkownik.
Narzuciliœmy te¿ pewne ograniczenie na pliki dziennika: ¿aden z nich nie mo¿e
mieæ wiêcej ni¿ 50 kilobajtów, co okreœla opcja max log size. Jeœli plik dziennika
przekroczy ten rozmiar, jego zawartoϾ zostanie przeniesiona do pliku o takiej samej
nazwie, ale z przyrostkiem .old. Jeœli plik .old ju¿ istnieje, zostanie nadpisany, a jego
zawartoœæ utracona. Pierwotny plik zostanie opró¿niony i bêdzie czeka³ na nowe komunikaty. Dziêki temu demony Samby nie przepe³ni¹ dysku twardego.
Dla wygody zdecydowaliœmy siê na umieszczanie znaczników czasowych w dziennikach, u¿ywaj¹c opcji debug timestamp. Spowoduje to zapisywanie daty i czasu
obok ka¿dego komunikatu w pliku dziennika. Jeœli informacje te nie by³yby nam potrzebne, moglibyœmy nadaæ tej opcji wartoœæ no.
Korzystanie z rejestratora systemowego
Jeœli oprócz lub zamiast standardowego dziennika Samby chcesz u¿ywaæ systemowego programu rejestruj¹cego (syslog), mo¿esz skorzystaæ z przeznaczonych do
tego opcji. Zanim jednak zdecydujesz siê na u¿ycie programu syslog, musisz upewniæ siê, ¿e Samba zosta³a skompilowana z opcj¹ configure --with-syslog.
Wiêcej informacji o konfigurowaniu i kompilowaniu Samby znajdziesz w rozdziale 2.
Nastêpnie musisz zmodyfikowaæ plik /etc/syslog.conf tak, aby komunikaty Samby
by³y akceptowane przez syslog. Jeœli w pliku /etc/syslog.conf nie ma jeszcze wpisu daemon.*, dopisz poni¿sz¹ liniê:
daemon.*

/var/log/daemon.log

Dziêki temu wszystkie komunikaty od demonów systemowych bêd¹ zapisywane
w pliku /var/log/daemon.log. Tam równie¿ trafi¹ komunikaty Samby. Teraz mo¿esz
umieœciæ nastêpuj¹c¹ opcjê globaln¹ w pliku konfiguracyjnym:
syslog = 2

Okreœla ona, ¿e komunikaty o poziomie 1 bêd¹ wysy³ane zarazem do programu syslog, jak i do plików dziennika Samby (odwzorowania na priorytety programu syslog
s¹ opisane w podrozdziale „syslog”). Za³ó¿my, ¿e ustawiliœmy opisan¹ wczeœniej
opcjê log level na 4. Wszystkie komunikaty o poziomie 2, 3 i 4 bêd¹ wysy³ane do
pliku dziennika Samby, ale nie do dziennika systemowego. Do obu trafi¹ tylko ko-

Opcje konfiguracji rejestrowania

103

munikaty o poziomie 1. Jeœli wartoœæ opcji syslog jest wiêksza ni¿ wartoœæ log
level, program syslog niczego nie zarejestruje.
Jeœli chcesz, aby komunikaty by³y wysy³ane tylko do programu syslog – a nie do standardowych plików dziennika Samby – mo¿esz umieœciæ w pliku konfiguracyjnym
nastêpuj¹c¹ opcjê:
syslog only = yes

Opcje konfiguracji rejestrowania
W tabeli 4.7 wymienione s¹ opcje konfiguracji rejestrowania u¿ywane przez Sambê.
Tabela 4.7. Opcje konfiguracji rejestrowania
Opcja
Parametry
Funkcja
log file

£añcuch (nazwa
pliku wraz z
pe³n¹ œcie¿k¹)

log level
(debug level)

WartoϾ
liczbowa
(od 0 do 10)

max log size

WartoϾ
liczbowa
(rozmiar w KB)

debug
timestamp
(timestamp
logs)

WartoϾ
logiczna

WartoϾ
liczbowa
(0-10)

syslog only

WartoϾ
logiczna

Ustawia nazwê i po³o¿enie
pliku dziennika u¿ywanego
przez Sambê. Rozpoznaje
standardowe zmienne
Okreœla iloœæ komunikatów
informacyjnych i diagnostycznych wysy³anych do
pliku dziennika. WartoϾ 0
oznacza brak komunikatów,
3 – znaczn¹ iloœæ
Ustawia maksymalny rozmiar pliku dziennika. Kiedy
dziennik przekroczy ten
rozmiar, otrzyma rozszerzenie .old i utworzony zostanie
nowy plik dziennika
Jeœli jest ustawiona na no,
nie umieszcza znaczników
czasowych w plikach dziennika, co u³atwia ich czytanie
podczas diagnozowania
problemów
Ustawia poziom komunikatów wysy³anych do
programu syslog. Komunikaty o poziomie nie przekraczaj¹cym wartoœci tej
opcji zostan¹ zapisane w
dzienniku systemowym
Jeœli jest ustawiona na yes,
u¿ywany jest tylko program
syslog, a w standardowych
plikach dziennika Samby nie
s¹ zapisywane ¿adne dane

WartoϾ
domyœlna

Zasiêg

Okreœlona
w pliku
makefile
Samby
1

Globalny

5000

Globalny

yes

Globalny

1

Globalny

no

Globalny

Globalny

104

Rozdzia³ 4: Udzia³y dyskowe

Wówczas komunikaty o poziomie przekraczaj¹cym wartoœæ opcji syslog zostan¹
odrzucone, podobnie jak w przypadku opcji log level.
log file
W naszym serwerze Samba zapisuje komunikaty informacyjne w plikach tekstowych umieszczonych w podkatalogu var g³ównego katalogu Samby, zgodnie z ustawieniami w pliku makefile dokonanymi podczas kompilacji. Dziêki opcji log file
mo¿na okreœliæ inn¹ nazwê i po³o¿enie pliku dziennika. Aby na przyk³ad zmieniæ
jego œcie¿kê i nazwê na /usr/local/logs/samba.log, mo¿na u¿yæ nastêpuj¹cej opcji:
[global]
log file = /usr/local/logs/samba.log

Aby utworzyæ indywidualne pliki dziennika dla poszczególnych u¿ytkowników
lub klientów, mo¿na skorzystaæ z podstawiania zmiennych.
Domyœlne po³o¿enie pliku dziennika mo¿na zmieniæ za pomoc¹ opcji linii polecenia
-l podczas uruchamiania obu demonów, która jednak nie ma pierwszeñstwa przed
opcj¹ log file. Jeœli podasz ten parametr, wówczas pocz¹tkowe komunikaty zostan¹ zapisane w pliku okreœlonym opcj¹ -l (albo w pliku domyœlnym, okreœlonym
w pliku makefile Samby), dopóki demony nie przetworz¹ pliku smb.conf i nie zaczn¹
zapisywaæ swoich komunikatów w nowym pliku dziennika.
log level
Opcja log level okreœla iloœæ rejestrowanych danych. Zwykle nadaje siê jej wartoœæ 0 lub 1. Jeœli jednak masz konkretny problem, mo¿esz ustawiæ j¹ na 3, co spowoduje zapisanie informacji diagnostycznych przydatnych podczas jego rozwi¹zywania. Poziomy powy¿ej 3 zapisuj¹ informacje przydatne g³ównie dla programistów
szukaj¹cych wewnêtrznych usterek w programie i znacznie spowalniaj¹ serwer.
Dlatego nie zalecamy ustawiania tej opcji na wartoœæ wiêksz¹ ni¿ 3.
[global]
log file = /usr/local/logs/samba.log.%m
log level = 3

max log size
Opcja max log size okreœla maksymalny rozmiar (w kilobajtach) diagnostycznego pliku dziennika Samby. Kiedy plik dziennika przekroczy ten rozmiar, zostanie
do niego do³¹czone rozszerzenie .old (jeœli istnieje ju¿ starszy plik o tej nazwie, zostanie usuniêty). Nastêpnie zostanie utworzony nowy plik dziennika o pierwotnej nazwie. Na przyk³ad:
[global]
log file = /usr/local/logs/samba.log.%m
max log size = 1000

W tym przyk³adzie, jeœli plik dziennika przekroczy rozmiar jednego megabajta,
Samba zmieni jego nazwê na samba.log.nazwa-komputera.old i utworzy nowy plik
dziennika. Jeœli istnieje ju¿ plik o rozszerzeniu .old, Samba go usunie. Zalecamy ustawienie tej opcji w pliku konfiguracyjnym, poniewa¿ rejestrowanie informacji dia-

Opcje konfiguracji rejestrowania

105

gnostycznych (nawet o ni¿szych poziomach) mo¿e niezauwa¿alnie poch³on¹æ
znaczn¹ czêœæ przestrzeni dyskowej. Dziêki tej opcji nieuwa¿ny administrator nie
odkryje nagle, ¿e jego dysk jest niemal ca³kiem zajêty przez wielki plik dziennika
Samby.
debug timestamp lub timestamp logs
Jeœli akurat diagnozujesz jakiœ problem sieciowy i przeszkadzaj¹ ci w tym daty i czasy zapisywane w plikach dziennika Samby, mo¿esz wy³¹czyæ ich rejestrowanie, nadaj¹c opcjom debug timestamp lub timestamp logs (synonimy) wartoœæ no.
W zwyk³ym dzienniku Samby informacje s¹ rejestrowane w nastêpuj¹cy sposób:
12/31/98 12:03:34 hydra (192.168.220.101) connect to server siec as daveb

Jeœli nadasz tej opcji wartoœæ no, komunikat zostanie zarejestrowany bez daty i czasu:
hydra (192.168.220.101) connect to server siec as daveb

syslog
Opcja syslog sprawia, ¿e komunikaty Samby s¹ wysy³ane do systemowego pro gramu rejestruj¹cego. Typ wysy³anych informacji jest zdefiniowany przez parametr
tej opcji. Podobnie jak w przypadku opcji log level, mo¿e to byæ liczba od 0 do 10.
Informacje o poziomie ni¿szym od podanej liczby bêd¹ wysy³ane do rejestratora systemowego, natomiast informacje o poziomie równym lub wiêkszym od wartoœci
opcji syslog bêd¹ nadal zapisywane w standardowych dziennikach Samby. Aby
temu zapobiec, mo¿esz u¿yæ opcji syslog only. Na przyk³ad:
[global]
log level = 3
syslog = 1

Przy takich opcjach komunikaty o poziomie 0 bêd¹ wysy³ane do standardowych
dzienników Samby i rejestratora systemowego, natomiast komunikaty o poziomach
1, 2 i 3 bêd¹ wysy³ane tylko do standardowych dzienników Samby. Komunikaty
o poziomie wiêkszym ni¿ 3 w ogóle nie bêd¹ rejestrowane. Zauwa¿, ¿e wszystkie komunikaty wysy³ane do rejestratora s¹ odwzorowywane na priorytet rozpoznawany
przez proces syslog, jak w tabeli 4.8. Domyœlny poziom to 1.
Tabela 4.8. Konwersja na priorytety programu syslog
Poziom
komunikatu

Priorytet syslog

0
1
2
3
4 i wy¿sze

LOG_ERR
LOG_WARNING
LOG_NOTICE
LOG_INFO
LOG_DEBUG

Jeœli chcesz u¿ywaæ programu syslog, bêdziesz musia³ wpisaæ configure -with-syslog podczas kompilowania Samby i odpowiednio skonfigurowaæ plik
/etc/syslog.conf (patrz podrozdzia³ „Korzystanie z rejestratora systemowego”).

106

Rozdzia³ 4: Udzia³y dyskowe

syslog only
Opcja syslog only informuje Sambê, ¿e nie chcesz korzystaæ ze zwyk³ych plików
dziennika, a tylko z rejestratora systemowego. W tym celu wpisz poni¿sz¹ opcjê
w sekcji [global] pliku konfiguracyjnego Samby:
[global]
syslog only = yes

Przegl¹danie
i zaawansowane udzia³y
dyskowe

5

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

W tym rozdziale bêdziemy nadal zajmowaæ siê udzia³ami dyskowymi. Omówimy
ró¿nice miêdzy systemami plików Windows i Uniksa oraz sposób ich niwelowania
przez Sambê. Miêdzy systemami plików DOS-a i Uniksa istnieje zadziwiaj¹co wiele
rozbie¿noœci. Oprócz tego krótko opiszemy przekszta³canie nazw, blokowanie plików i wzglêdnie now¹ funkcjê Samby: blokowanie oportunistyczne. Zanim jednak
zaczniemy zg³êbiaæ te zagadnienia, przyjrzymy siê doœæ skomplikowanemu tematowi: przegl¹daniu zasobów sieci.

Przegl¹danie
Dziêki przegl¹daniu mo¿na stwierdziæ, jakie serwery i udzia³y s¹ obecnie dostêpne
w sieci. U¿ytkownik klienta Windows NT 4.0 lub 95/98 mo¿e przegl¹daæ serwery
sieciowe w folderze Otoczenia sieciowego. Po dwukrotnym klikniêciu ikony reprezentuj¹cej serwer, u¿ytkownik powinien zobaczyæ udzia³y dyskowe i drukarki udostêpniane przez serwer (jeœli masz Windows NT 3.x, mo¿esz u¿yæ opcji DiskðConnect Network Drive w mened¿erze plików w celu wyœwietlenia udzia³ów udostêpnianych przez serwer).
W linii poleceñ Windows mo¿esz tak¿e wpisaæ polecenie net view, które wyœwietla serwery obecnie dostêpne w sieci. Oto przyk³ad u¿ycia polecenia net view:
C:\ & gt; net view
Serwery dostêpne dla grupy PROSTA_GRUPA.
Nazwa serwera
Opis
------------------------------------------------------------\\CHIMERA
Windows NT 4.0
\\HYDRA
Samba 2.0.4 w serwerze (hydra)
\\FENIKS
Windows 98

Zapobieganie przegl¹daniu
Mo¿esz zapobiec umieszczaniu udzia³u na liœcie przegl¹dania za pomoc¹ opcji
browseable. Opcja ta sprawia, ¿e udzia³ w ogóle nie pojawia siê w oknie Otoczenia
sieciowego. Aby na przyk³ad zapobiec wyœwietlaniu udzia³u [dane] z poprzedniego rozdzia³u, moglibyœmy napisaæ:

108

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

[dane]
path = /home/samba/dane
browseable = no
guest ok = yes
comment = Dysk z danymi
volume = Stacja-Sieciowa
writeable = yes

Choæ najczêœciej takie ustawienie opcji browseable nie jest wskazane w zwyk³ych
udzia³ach dyskowych, to bywa po¿yteczne, kiedy zawartoœæ udzia³u nie powinna
byæ widoczna dla u¿ytkowników, jak w przypadku udzia³u [netlogon] ze skryptami logowania do domeny Windows (wiêcej informacji o skryptach logowania
znajdziesz w rozdziale 6, U¿ytkownicy, bezpieczeñstwo i domeny).
Innym przyk³adem jest udzia³ [homes]. Jest on czêsto oznaczany jako „nieprzegl¹dalny”, dziêki czemu podczas przegl¹dania zasobów komputera udzia³
[homes] nie pojawia siê na liœcie. Jeœli jednak u¿ytkownik alicja zaloguje siê
i spojrzy na zasoby komputera, zobaczy udzia³ o nazwie [alicja]. A jeœli chcielibyœmy, aby udzia³ alicji by³ widoczny dla innych u¿ytkowników jeszcze przed
jej zalogowaniem? Umo¿liwia to globalna opcja auto services. Opcja ta wstêpnie
umieszcza udzia³y na liœcie przegl¹dania, dziêki czemu s¹ one zawsze widoczne:
[global]
...
auto services = alicja
...

Us³ugi domyœlne
Mo¿esz zdefiniowaæ udzia³, z którym po³¹czy siê u¿ytkownik, jeœli nie zdo³a siê
po³¹czyæ z ¿¹danym udzia³em. Poniewa¿ nie da siê przewidzieæ, kim bêdzie pechowy u¿ytkownik, prawdopodobnie powinieneœ ustawiæ opcjê guest ok dla tego
awaryjnego udzia³u. Opcja default service mo¿e przydaæ siê do odsy³ania
skonfundowanych u¿ytkowników do katalogu z plikami pomocy. Na przyk³ad:
[global]
...
default service = pomoc
...
[pomoc]
path = /home/samba/pomoc/%S
browseable = yes
guest ok = yes
comment = Domyœlny udzia³ dla nieudanych po³¹czeñ
volume = Stacja-Sieciowa
writeable = no

Zauwa¿, ¿e u¿yliœmy zmiennej %S w opcji path. Jeœli u¿yjesz zmiennej %S, bêdzie
siê ona odnosi³a do ¿¹danego, nieistniej¹cego udzia³u (tego, z którym u¿ytkownik
próbowa³ po³¹czyæ siê pierwotnie), a nie do nazwy udzia³u domyœlnego. Mo¿emy
zatem utworzyæ ró¿ne œcie¿ki z nazwami poszczególnych serwerów, udostêpniaj¹c
w ten sposób u¿ytkownikom bardziej dostosowane pliki pomocy. Oprócz tego, kie-

Przegl¹danie

109

dy u¿ywana jest zmienna %S, znaki podkreœlenia (_) w ¿¹danym zasobie zostan¹ zamienione na ukoœniki (/).

Wybory przegl¹darki
Jak wspomnieliœmy w rozdziale 1, Poznajemy Sambê, jeden z komputerów w ka¿dej
podsieci przechowuje listê wszystkich aktywnych komputerów. Lista ta nosi nazwê
listy przegl¹dania, a przechowuj¹cy j¹ serwer jest nazywany g³ówn¹ przegl¹dark¹ lo kaln¹. W miarê do³¹czania i od³¹czania komputerów g³ówna przegl¹darka lokalna
uaktualnia informacje na liœcie przegl¹dania i udostêpnia je ¿¹daj¹cym tego komputerom.
Komputer staje siê g³ówn¹ przegl¹dark¹ lokaln¹ w wyniku wyborów og³aszanych
w lokalnej podsieci. Wybory przegl¹darki mog¹ zostaæ og³oszone w dowolnym momencie. Samba mo¿e dowolnie fa³szowaæ wybory, na przyk³ad po to, aby zawsze zostawaæ g³ówn¹ przegl¹dark¹ lokaln¹ lub nigdy nie przejmowaæ tej funkcji. Na
przyk³ad poni¿sze opcje dodane do pliku konfiguracyjnego z rozdzia³u 4, Udzia³y
dyskowe, zapewni¹ Sambie wygran¹ w wyborach na g³ówn¹ przegl¹darkê lokaln¹:
[global]
netbios name = HYDRA
server string = Samba %v w serwerze (%L)
workgroup = PROSTA_GRUPA
# Opcje wyborów przegl¹darki
os level = 34
local master = yes
# Opcje konfiguracji sieci
hosts allow = 192.168.220. 134.213.233. localhost
hosts deny = 192.168.220.102
interfaces = 192.168.220.100/255.255.255.0 \
134.213.233.110/255.255.255.0
# Rejestrowanie informacji diagnostycznych
log level = 2
log file = /var/log/samba.log.%m
max log size = 30
debug timestamp = yes
[dane]
path = /export/samba/dane
browseable = yes
guest ok = yes
comment = Dysk z danymi
volume = Stacja-Sieciowa
writeable = yes

Za³ó¿my jednak, ¿e nie chcemy zawsze wygrywaæ wyborów, poniewa¿ wolimy
ust¹piæ pola obecnemu w sieci serwerowi Windows NT. Aby to zrobiæ, musimy wiedzieæ, jak odbywaj¹ siê wybory przegl¹darki. Jak ju¿ wiesz, ka¿dy komputer bior¹cy
udzia³ w wyborach rozg³asza informacje o sobie. Informacje te obejmuj¹:
· wersjê u¿ywanego protoko³u elekcyjnego,
· system operacyjny komputera,

110

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

· czas, od którego komputer jest w sieci,
· nazwê hosta.
A oto sposób wy³aniania zwyciêzcy. Systemom operacyjnym przypisuje siê wartoœæ
zale¿n¹ od ich wersji, jak w tabeli 5.1.
Tabela 5.1. Wartoœci przypisywane systemom operacyjnym w wyborach przegl¹darki
System operacyjny

WartoϾ

Windows NT Server 4.0
Windows NT Server 3.51
Windows NT Workstation 4.0
Windows NT Workstation 3.51
Windows 98
Windows 95
Windows 3.1 for Workgroups

33
32
17
16
2
1
1

Nastêpnie ka¿demu komputerowi w sieci przypisuje siê odrêbn¹ wartoœæ zale¿n¹
od jego funkcji, jak w tabeli 5.2.
Tabela 5.2. Wartoœci zale¿ne od funkcji komputera
Funkcja

WartoϾ

Podstawowy kontroler domeny
Klient WINS
Preferowana przegl¹darka g³ówna
Aktywna przegl¹darka g³ówna
Przegl¹darka awaryjna
Aktywna przegl¹darka zapasowa

128
32
8
4
2
1

Wybory s¹ rozstrzygane w nastêpuj¹cy sposób:
1. Zwyciê¿a komputer z najwy¿sz¹ wersj¹ protoko³u elekcyjnego (obecnie nie ma to
znaczenia, poniewa¿ wszystkie klienty Windows pos³uguj¹ siê 1. wersj¹ protoko³u).
2. Zwyciê¿a komputer z najwy¿sz¹ wartoœci¹ systemu operacyjnego.
3. Jeœli jest remis, zwyciê¿a komputer bêd¹cy preferowan¹ przegl¹dark¹ g³ówn¹
(funkcja 8).
4. Jeœli nadal jest remis, zwyciê¿a komputer bêd¹cy najd³u¿ej w sieci.
5. Wreszcie, jeœli wci¹¿ jest remis, zwyciê¿a komputer, którego nazwa jest pierwsza
w porz¹dku alfabetycznym.
6. Komputer, który zajmie „drugie miejsce”, mo¿e zostaæ przegl¹dark¹ zapasow¹.
Tak wiêc, jeœli chcesz, ¿eby Samba przejê³a funkcjê g³ównej przegl¹darki lokalnej,
ale tylko wtedy, gdy w sieci nie ma serwera Windows NT 4.0 lub 3.51, powinieneœ
zmieniæ parametr os level w poprzednim przyk³adzie na:
os level = 31

Przegl¹danie

111

Spowoduje to, ¿e Samba przegra wybory na rzecz serwera Windows NT 4.0 lub 3.51,
które maj¹ wy¿sz¹ wartoœæ systemu operacyjnego. Z drugiej strony, jeœli chcia³byœ
wy³aniaæ g³ówn¹ przegl¹darkê lokaln¹ na podstawie funkcji komputera (na przyk³ad
wed³ug tego, który komputer jest podstawowym kontrolerem domeny), móg³byœ
ustawiæ os level na wartoœæ odpowiadaj¹c¹ najwy¿szej wartoœci systemu operacyjnego obecnego w sieci, i pozwoliæ, aby protokó³ elekcyjny rozstrzygn¹³ wybory
w kolejnych etapach.
Jak mo¿na stwierdziæ, czy komputer jest g³ówn¹ przegl¹dark¹ lokaln¹? S³u¿y do
tego polecenie nbtstat. Umieœæ NetBIOS-ow¹ nazwê sprawdzanego komputera za
opcj¹ -a:
C:\NC & gt; nbtstat -a hydra
NetBIOS Remote Machine Name Table
Name
Type
Status
-------------------------------------------HYDRA
& lt; 00 & gt; UNIQUE
Registered
HYDRA
& lt; 03 & gt; UNIQUE
Registered
HYDRA
& lt; 20 & gt; UNIQUE
Registered
.._ _ MSBROWSE_ _ . & lt; 01 & gt; GROUP
Registered
PROSTA_GRUPA
& lt; 00 & gt; GROUP
Registered
PROSTA_GRUPA
& lt; 1D & gt; UNIQUE
Registered
PROSTA_GRUPA
& lt; 1E & gt; GROUP
Registered
MAC Address = 00-00-00-00-00-00

Wpis, którego szukasz to .._ _ MSBROWSE_ _ . & lt; 01 & gt; . Wskazuje on, ¿e serwer obecnie dzia³a jako g³ówna przegl¹darka lokalna dla bie¿¹cej podsieci. Ponadto, jeœli
komputer jest serwerem Samby, mo¿esz poszukaæ w pliku dziennika nmbd wpisu
podobnego do poni¿szego:
nmbd/nmbd_become_lmb.c:become_local_master_stage2(406)
*****
Samba name server HYDRA is now a local master browser for
workgroup PROSTA_GRUPA on subnet 192.168.220.100
*****

Wreszcie, serwery Windows NT dzia³aj¹ce jako podstawowe kontrolery domeny
dysponuj¹ mechanizmem, który w pewnych okolicznoœciach pozwala im przej¹æ
funkcjê g³ównej przegl¹darki lokalnej; jest to bit preferowanej przegl¹darki g³ównej.
Wczeœniej wspomnieliœmy, ¿e Samba równie¿ mo¿e ustawiæ ten bit. W³¹cza siê go za
pomoc¹ opcji preferred master:
# Opcje wyborów przegl¹darki
os level = 33
local master = yes
preferred master = yes

Jeœli ustawiony jest bit preferowanej przegl¹darki g³ównej, komputer wymusi wybory zaraz po uruchomieniu. Oczywiœcie, jest to potrzebne tylko wtedy, jeœli opcja
os level odpowiada komputerowi Windows NT. Nie zalecamy korzystania z tej
opcji, jeœli inny komputer – na przyk³ad sewer Windows NT – równie¿ jest preferowan¹ przegl¹dark¹.

112

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

G³ówna przegl¹darka domeny
W rozdziale 1 wspomnieliœmy, ¿e w celu rozci¹gniêcia grupy roboczej lub domeny
Windows na kilka podsieci jeden z komputerów musi podj¹æ funkcjê g³ównej przegl¹darki domeny. G³ówna przegl¹darka domeny rozpowszechnia listy przegl¹dania miê dzy wszystkimi podsieciami w grupie roboczej. Ka¿da g³ówna przegl¹darka lokalna
okresowo synchronizuje swoj¹ listê przegl¹dania z g³ówn¹ przegl¹dark¹ domeny.
Podczas synchronizacji przegl¹darka lokalna przekazuje przegl¹darce domeny informacje o wszystkich serwerach, których ta nie ma na swojej liœcie przegl¹dania,
i vice versa. Gdyby œwiat by³ doskona³y, w koñcu ka¿da g³ówna przegl¹darka lokalna dysponowa³aby list¹ przegl¹dania dla ca³ej domeny.
Inaczej ni¿ w przypadku przegl¹darek lokalnych, nie przeprowadza siê wyborów
w celu wy³onienia g³ównej przegl¹darki domeny. Musi wyznaczyæ j¹ administrator.
Jednak¿e Microsoft zdecydowa³, ¿e g³ówna przegl¹darka domeny i podstawowy
kontroler domeny (PDC) bêd¹ rejestrowaæ typ zasobu & lt; 1B & gt; , wiêc te dwie funkcje s¹
nierozdzielne.
Jeœli w twojej sieci znajduje siê serwer Windows NT pe³ni¹cy funkcjê PDC, odradzamy wykorzystywanie Samby jako g³ównej przegl¹darki domeny. To samo dotyczy
sytuacji odwrotnej: jeœli Samba wykonuje zadania PDC, powinna byæ tak¿e g³ówn¹
przegl¹dark¹ domeny. Choæ Samba umo¿liwia oddzielenie obu funkcji, nie jest to
dobry pomys³. Jeœli dwa ró¿ne komputery dzia³aj¹ jako PDC i g³ówna przegl¹darka
domeny, w grupie roboczej Windows mog¹ wystêpowaæ losowe b³êdy.
Samba mo¿e przej¹æ funkcjê g³ównej przegl¹darki domeny we wszystkich podsieciach grupy roboczej dziêki nastêpuj¹cej opcji:
domain master = yes

Mo¿esz upewniæ siê, ¿e serwer Samby rzeczywiœcie zosta³ g³ówn¹ przegl¹dark¹ domeny, zagl¹daj¹c do pliku dziennika nmbd:
nmbd/nmbd_become_dmb.c:become_domain_master_stage2(118)
*****
Samba name server HYDRA is now a domain master browser for
workgroup PROSTA_GRUPA on subnet 192.168.220.100
*****

Mo¿esz tak¿e u¿yæ polecenia nmblookup wchodz¹cego w sk³ad dystrybucji Samby,
aby wyszukaæ niepowtarzalny typ zasobu & lt; 1B & gt; w grupie roboczej:
# nmblookup PROSTA_GRUPA#1B
Sending queries to 192.168.220.255
192.168.220.100 PROSTA_GRUPA & lt; 1b & gt;

Grupa robocza w wielu podsieciach
Kiedy tworzysz grupê robocz¹ lub domenê rozci¹gaj¹c¹ siê na kilka podsieci, pamiêtaj o trzech regu³ach:
· W ka¿dej podsieci grupy roboczej lub domeny musi znajdowaæ siê komputer
z Windows NT lub Samb¹, dzia³aj¹cy jako g³ówna przegl¹darka lokalna (jeœli

Przegl¹danie

113

w podsieci znajduje siê g³ówna przegl¹darka domeny, g³ówna przegl¹darka lokalna jest niepotrzebna).
· W dowolnym miejscu grupy roboczej musi znajdowaæ siê komputer z Windows
NT lub Samb¹, dzia³aj¹cy jako g³ówna przegl¹darka domeny.
· Ka¿da g³ówna przegl¹darka lokalna musi zostaæ poinstruowana, aby synchronizowa³a swoje informacje z g³ówn¹ przegl¹dark¹ domeny.
Samba dysponuje kilkoma innymi funkcjami z tej dziedziny, które s¹ przydatne, jeœli nie masz albo nie chcesz mieæ g³ównej przegl¹darki domeny w swojej sieci. Rozwa¿my podsieci przedstawione na rysunku 5.1.

Rysunek 5.1. Wiele podsieci z serwerami Samby

Po pierwsze, serwer Samby bêd¹cy g³ówn¹ przegl¹dark¹ lokaln¹ mo¿e u¿yæ opcji
konfiguracyjnej remote announce, dziêki czemu komputery w innych podsieciach bêd¹ otrzymywaæ rozg³aszane komunikaty o obecnoœci serwera. W ten sposób
serwer Samby pojawi siê na listach przegl¹dania zdalnych podsieci. ¯eby by³o to
mo¿liwe, ukierunkowane rozg³oszenia musz¹ osi¹gn¹æ g³ówn¹ przegl¹darkê lokaln¹ w innej podsieci. Pamiêtaj, ¿e wiele ruterów domyœlnie blokuje ukierunkowane rozg³oszenia; byæ mo¿e bêdziesz musia³ zmieniæ konfiguracjê rutera, aby ukie runkowane rozg³oszenia przedostawa³y siê do innych podsieci.
W opcji remote announce nale¿y podaæ podsieci i grupê robocz¹, które powinny
otrzymywaæ komunikaty rozg³oszeniowe. Jeœli na przyk³ad komputery znajduj¹ce siê
w podsieciach 192.168.221 i 192.168.222 oraz w grupie roboczej PROSTA_GRUPA powinny otrzymywaæ informacje rozg³aszane przez serwer Samby, nale¿y u¿yæ nastêpuj¹cych opcji:

114

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

# Opcje wyborów przegl¹darki
os level = 34
local master = yes
remote announce = 192.168.221.255/PROSTA_GRUPA \
192.168.222.255/PROSTA_GRUPA

Oprócz tego mo¿esz podaæ dok³adny adres, na który bêd¹ wysy³ane komunikaty,
pod warunkiem, ¿e g³ówna przegl¹darka lokalna w zdalnej podsieci zawsze ma ten
sam adres IP.
Serwer Samby dzia³aj¹cy jako g³ówna przegl¹darka lokalna mo¿e synchronizowaæ
swoj¹ listê przegl¹dania z innym serwerem Samby, bêd¹cym przegl¹dark¹ lokaln¹
dla innej podsieci. Za³ó¿my, ¿e Samba jest skonfigurowana jako g³ówna przegl¹darka lokalna, a dwie inne przegl¹darki lokalne maj¹ adresy 192.168.221.130 oraz
192.168.222.120. Mo¿emy u¿yæ opcji remote browse sync, aby synchronizowaæ
listê przegl¹dania bezpoœrednio z innymi serwerami Samby, jak w poni¿szym
przyk³adzie:
# Opcje wyborów przegl¹darki
os level = 34
local master = yes
remote browse sync = 192.168.221.130 192.168.220.120

Aby opcja ta zadzia³a³a, pozosta³e serwery Samby musz¹ równie¿ byæ g³ównymi
przegl¹darkami lokalnymi. W opcji tej mo¿esz u¿yæ tak¿e ukierunkowanych roz g³oszeñ, jeœli nie znasz dok³adnych adresów IP g³ównych przegl¹darek lokalnych.

Opcje przegl¹dania
W tabeli 5.3. wymieniono czternaœcie opcji okreœlaj¹cych sposób, w jaki Samba wykonuje czynnoœci zwi¹zane z przegl¹daniem. Jeœli chcesz, ¿eby u¿ytkownicy nie
mieli problemów ze znalezieniem swoich udzia³ów dyskowych i drukarek, powinieneœ pozostawiæ wartoœci domyœlne.
Tabela 5.3. Opcje konfiguracji przegl¹dania
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

announce as

NT lub
Win95
lub WfW
WartoϾ
liczbowa
WartoϾ
logiczna
WartoϾ
logiczna

Ustawia system operacyjny, za
który bêdzie podawaæ siê Samba

NT

Globalny

Ustawia wersjê systemu operacyjnego og³aszan¹ przez Sambê
Umo¿liwia wyœwietlanie udzia³u
na liœcie zasobów komputera
Jeœli jest ustawiona na yes,
serwer Samby bêdzie
udostêpnia³ listê przegl¹dania
Okreœla listê udzia³ów, które
bêd¹ zawsze obecne na liœcie
przegl¹dania

4.2

Globalny

yes

Udzia³

yes

Globalny

Brak

Globalny

announce
version
browseable
(browsable)
browse list

auto
services
(preload)

£añcuch
(lista
udzia³ów)

Przegl¹danie
Opcja

115
Parametry

Funkcja

£añcuch
(nazwa
udzia³u)

Okreœla udzia³ (us³ugê), który
zostanie udostêpniony, jeœli
klient za¿¹da dostêpu do
udzia³u nie zdefiniowanego
w pliku smb.conf
local master WartoϾ
Jeœli jest ustawiona na yes,
logiczna
Samba spróbuje zostaæ g³ówn¹
przegl¹dark¹ w lokalnej podsieci
lm announce yes, no
W³¹cza lub wy³¹cza og³oszenia
lub auto
o hoœcie w formacie
LAN Managera
lm interval WartoϾ
Okreœla czêstotliwoœæ (w sekunliczbowa
dach), z jak¹ bêd¹ ponawiane
og³oszenia LAN Managera
WartoϾ
Jeœli jest ustawiona na yes,
preferred
logiczna
Samba u¿yje bitu preferowanej
master
przegl¹darki g³ównej, próbuj¹c
(prefered
zostaæ g³ówn¹ przegl¹dark¹
master)
lokaln¹
domain
WartoϾ
Jeœli jest ustawiona na yes,
master
logiczna
Samba spróbuje zostaæ g³ówn¹
przegl¹dark¹ domeny w swojej
grupie roboczej
os level
WartoϾ
Ustawia poziom systemu
liczbowa
operacyjnego Samby podczas
wyborów g³ównej przegl¹darki
lokalnej
remote
£añcuch
Wymienia serwery Samby,
browse sync (lista
z którymi nale¿y synchronizoadresów IP) waæ listy przegl¹dania
remote
£añcuch
Wymienia podsieci i grupy
announce
(pary adres/ robocze, do których nale¿y
grupa
wysy³aæ ukierunkowane
robocza)
rozg³oszenia, aby umieœciæ
serwer Samby na listach
przegl¹dania
default
service
(default)

WartoϾ
domyœlna

Zasiêg

Brak

Globalny

yes

Globalny

auto

Globalny

60

Globalny

no

Globalny

no

Globalny

0

Globalny

Brak

Globalny

Brak

Globalny

announce as
Ta globalna opcja konfiguracyjna okreœla typ systemu operacyjnego, który Samba
og³asza innym komputerom w sieci. Jej domyœlna wartoœæ to NT, co oznacza system
operacyjny Windows NT. Inne mo¿liwe wartoœci to Win95, oznaczaj¹ca system
Windows 95, oraz WfW, oznaczaj¹ca Windows for Workgroups. Mo¿esz zmieniæ domyœln¹ wartoœæ za pomoc¹ opcji:
[global]
announce as = Win95

Nie zalecamy zmieniania domyœlnej wartoœci tej opcji.

116

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

announce version
Ta globalna opcja jest czêsto u¿ywana w po³¹czeniu z opcj¹ announce as; okreœla
wersjê systemu operacyjnego, któr¹ Samba bêdzie og³aszaæ innym komputerom
w sieci. Jej domyœlna wartoœæ to 4.2, co umieszcza Sambê ponad bie¿¹c¹ wersj¹
Windows NT 4.0. Mo¿esz podaæ now¹ wartoœæ za pomoc¹ nastêpuj¹cego wpisu
w sekcji globalnej:
[global]
announce version = 4.3

Nie zalecamy zmieniania domyœlnej wartoœci tej opcji.
browseable
Opcja browseable (z alternatywn¹ pisowni¹ browsable) okreœla, czy wskazany
udzia³ powinien pojawiaæ siê na liœcie zasobów udostêpniaj¹cego go komputera.
Opcja ta ma domyœln¹ wartoœæ yes. Jeœli chcesz, aby udzia³ nie by³ wyœwietlany
przez klienty, mo¿esz nadaæ jej wartoœæ no.
Zauwa¿, ¿e nie zapobiegnie to dostêpowi do udzia³u za pomoc¹ innych œrodków, na
przyk³ad przez podanie po³o¿enia UNC (\\serwer\ksiegowosc) w Eksploratorze Windows. Opcja ta sprawia tylko, ¿e udzia³ nie pojawia siê na liœcie zasobów serwera, gdy u¿ytkownik przegl¹da tê listê.
browse list
Prawdopodobnie nigdy nie zajdzie potrzeba zmieniania domyœlnej wartoœci tej
opcji: yes. Jeœli serwer Samby dzia³a jako g³ówna przegl¹darka lokalna (to znaczy
wygra³ wybory przegl¹darki), za pomoc¹ globalnej opcji browse list mo¿esz poinstruowaæ Sambê, aby nie udostêpnia³a swojej listy przegl¹dania klientom. Domyœlnie Samba zawsze udostêpnia swoj¹ listê przegl¹dania. Mo¿esz temu zapobiec,
u¿ywaj¹c nastêpuj¹cej opcji:
[global]
browse list = no

Jeœli wy³¹czysz listê przegl¹dania, klienty nie bêd¹ mog³y przegl¹daæ nazw innych
komputerów, œwiadczonych przez nie us³ug i innych domen dostêpnych w sieci. Zauwa¿, ¿e nie zapobiegnie to dostêpowi do innych komputerów; jeœli ktoœ zna po prawn¹ nazwê i adres komputera oraz nazwê udzia³u w tym komputerze, mo¿e
nadal siê z nim po³¹czyæ, u¿ywaj¹c polecenia NET USE lub mapuj¹c literê dysku
w Eksploratorze Windows. Opcja ta po prostu uniemo¿liwia klientom uzyskanie informacji z listy przegl¹dania.
auto services
Globalna opcja auto services, nazywana tak¿e preload, sprawia, ¿e okreœlone
udzia³y s¹ zawsze widoczne na liœcie przegl¹dania. Najczêœciej u¿ywa siê jej do
og³aszania konkretnych udzia³ów dyskowych lub drukarek, tworzonych automatycznie przez udzia³y [homes] lub [printers], ale normalnie nie widniej¹cych
na listach przegl¹dania.

Przegl¹danie

117

Opcja ta nadaje siê zw³aszcza do og³aszania udzia³ów dyskowych. Jeœli chcesz umieœciæ na liœcie przegl¹dania wszystkie drukarki systemowe (to znaczy te, które s¹ zdefiniowane w pliku parametrów drukarek), powinieneœ skorzystaæ raczej z opcji
load printers. Jeœli opcja browse list jest ustawiona na no, nie zostanie wyœwietlony ¿aden z udzia³ów wymienionych w opcji auto services.
default service
Globalna opcja default service (czasem nazywana default) okreœla udzia³
„awaryjny”. Jeœli zostanie ustawiona na nazwê istniej¹cego udzia³u, a klient za¿¹da
dostêpu do nieistniej¹cego udzia³u lub drukarki, Samba spróbuje po³¹czyæ go
z udzia³em okreœlonym w tej opcji. U¿ywa siê jej nastêpuj¹co:
default service = pomoc

Zauwa¿, ¿e nazwy udzia³u pomoc nie umieszcza siê w nawiasach kwadratowych,
choæ podczas definiowania tego udzia³u w dalszej czêœci pliku konfiguracyjnego nawiasy zostan¹ u¿yte. Oprócz tego, jeœli u¿yjesz zmiennej %S w udziale wskazanym
za pomoc¹ tej opcji, bêdzie ona reprezentowaæ ¿¹dany, nieistniej¹cy udzia³, a nie
us³ugê domyœln¹. Wszystkie znaki podkreœlenia (_) w ¿¹danym udziale zostan¹ zamienione na ukoœniki (/).
local master
Ta globalna opcja okreœla, czy Samba zaraz po uruchomieniu spróbuje zostaæ g³ówn¹ przegl¹dark¹ lokaln¹ w swojej podsieci. Jeœli opcja ta jest ustawiona na yes, Samba weŸmie udzia³ w wyborach. Jednak¿e w³¹czenie tylko tej opcji nie gwarantuje
zwyciêstwa (pomog¹ w tym inne parametry, takie jak preferred master i os
level). Jeœli opcja ta jest ustawiona na no, Samba zawsze przegra wybory prze gl¹darek, niezale¿nie od ustawieñ innych opcji konfiguracyjnych. Jej domyœlna wartoœæ to yes.
lm announce
Globalna opcja lm announce informuje proces nmbd, czy w imieniu serwera nale¿y
wysy³aæ og³oszenia LAN Managera o hoœcie. Takich og³oszeñ o hoœcie mog¹ wymagaæ starsze klienty, na przyk³ad system operacyjny OS/2 IBM-a. Pozwalaj¹ one na
dodanie serwera do listy przegl¹dania klienta. Jeœli w³¹czysz tê opcjê, Samba bêdzie
og³aszaæ swoj¹ obecnoœæ w okresach ustalonych opcj¹ lm interval.
Opcja ta mo¿e przyjmowaæ standardowe wartoœci logiczne, yes i no, które w³¹czaj¹
i wy³¹czaj¹ og³oszenia LAN Managera. Do dyspozycji jest tak¿e trzecie ustawienie,
auto, które sprawia, ¿e proces nmbd pasywnie czeka na og³oszenia LAN Managera,
ale pocz¹tkowo sam ich nie wysy³a. Gdy wykryje og³oszenia LAN Managera
wysy³ane przez inny komputer w sieci, zaczyna wysy³aæ w³asne, aby byæ widzianym przez tamten komputer. Opcji tej u¿ywa siê nastêpuj¹co:
[global]
lm announce = yes

Domyœlna wartoœæ tej opcji to auto. Prawdopodobnie nie bêdziesz musia³ jej zmieniaæ.

118

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

lm interval
Ta opcja, u¿ywana w po³¹czeniu z opcj¹ lm announce, okreœla liczbê sekund miêdzy wysy³aniem kolejnych og³oszeñ LAN Managera przez proces nmbd. ¯eby u¿yæ
tej opcji, trzeba najpierw uaktywniæ og³oszenia LAN Managera. Jej domyœlna wartoœæ to 60 sekund. Jeœli ustawisz j¹ na 0, Samba nie bêdzie wysy³aæ ¿adnych og³oszeñ
LAN Managera, niezale¿nie od ustawienia opcji lm announce. Mo¿esz zmieniæ jej
wartoœæ w nastêpuj¹cy sposób:
[global]
lm interval = 90

preferred master
Opcja preferred master nakazuje Sambie ustawiæ bit preferowanej przegl¹darki
g³ównej podczas udzia³u w wyborach. Dziêki temu komputer uzyskuje w grupie roboczej wy¿sz¹ preferencjê ni¿ inne komputery o tym samym poziomie systemu operacyjnego. Jeœli chcesz, ¿eby komputer z Samb¹ zosta³ g³ówn¹ przegl¹dark¹ lokaln¹,
powinieneœ u¿yæ poni¿szej opcji:
[global]
preferred master = yes

W przeciwnym wypadku powinieneœ pozostawiæ wartoœæ domyœln¹ no. Jeœli Samba
zostanie skonfigurowana jako preferowana przegl¹darka g³ówna, wymusi wybory
podczas w³¹czania siê do sieci.
os level
Globalna opcja os level okreœla poziom systemu operacyjnego, który Samba bêdzie pozorowaæ podczas wyborów przegl¹darki. Jeœli chcesz, ¿eby Samba wygra³a
wybory i zosta³a g³ówn¹ przegl¹dark¹, powinieneœ ustawiæ tê opcjê na wartoœæ wy¿sz¹ od najwy¿szego poziomu systemu operacyjnego znajduj¹cego siê aktualnie
w sieci. Wartoœci podano w tabeli 5.1. Domyœlny poziom jest równy 0, co sprawia, ¿e
Samba zawsze przegrywa wybory. Jeœli chcesz, ¿eby Samba zawsze wygrywa³a wybory, powinieneœ ustawiæ tê opcjê jak ni¿ej:
os level = 34

Oznacza to, ¿e serwer podczas wyborów bêdzie g³osowa³ na siebie 34 razy, co zapewni mu zwyciêstwo.
domain master
Jeœli Samba jest podstawowym kontrolerem domeny w twojej grupie roboczej lub
domenie NT, powinna byæ tak¿e g³ówn¹ przegl¹dark¹ domeny. G³ówna przegl¹darka domeny to specjalny komputer z typem zasobu NetBIOS-u & lt; 1B & gt; , który
wymienia listy przegl¹dania z przegl¹darkami lokalnymi w poszczególnych pod sieciach domeny. Aby Samba przejê³a funkcjê g³ównej przegl¹darki domeny, nale¿y
ustawiæ nastêpuj¹c¹ opcjê w sekcji [global] pliku smb.conf:
[global]
domain master = yes

Ró¿nice w systemach plików

119

Jeœli w twojej sieci jest serwer Windows NT dzia³aj¹cy jako podstawowy kontroler
domeny (PDC), odradzamy wykorzystanie Samby jako g³ównej przegl¹darki domeny. To samo dotyczy sytuacji odwrotnej: jeœli Samba wykonuje zadania PDC, powinna byæ tak¿e g³ówn¹ przegl¹dark¹ domeny. Oddzielenie funkcji PDC i g³ównej
przegl¹darki domeny mo¿e spowodowaæ wystêpowanie nieprzewidywalnych b³êdów w sieci.
remote browse sync
Globalna opcja remote browse sync informuje Sambê, ¿e powinna synchronizowaæ swoj¹ listê przegl¹dania z g³ównymi przegl¹darkami lokalnymi w innych podsieciach. Listy przegl¹dania mog¹ byæ synchronizowane tylko z innymi serwerami
Samby, a nie z komputerami Windows. Jeœli na przyk³ad twój serwer Samby jest g³ówn¹
przegl¹dark¹ w podsieci 192.168.235, a pod adresami 192.168.234.92 i 192.168.236.2 w pozosta³ych podsieciach znajduj¹ siê dwie inne g³ówne przegl¹darki lokalne, móg³byœ
u¿yæ nastêpuj¹cej opcji:
remote browse sync = 192.168.234.92 192.168.236.2

Serwer Samby kontaktowa³by siê wówczas bezpoœrednio z komputerami o wskazanych adresach i synchronizowa³ z nimi listy przegl¹dania. Móg³byœ te¿ napisaæ:
remote browse sync = 192.168.234.255 192.168.236.255

Samba u¿y³aby wówczas zapytañ rozg³oszeniowych w celu ustalenia adresów IP
g³ównych przegl¹darek lokalnych w obu podsieciach, z którymi nastêpnie synchronizowa³aby listy przegl¹dania. Takie rozwi¹zanie jest jednak mo¿liwe tylko wtedy,
jeœli twój ruter nie blokuje ukierunkowanych rozg³oszeñ wysy³anych na adres koñcz¹cy siê liczb¹ 255.
remote announce
Serwery Samby mog¹ udostêpniaæ listy przegl¹dania w zdalnych podsieciach dziêki
opcji remote announce. S¹ one zwykle wysy³ane do g³ównej przegl¹darki lokalnej w zdalnej podsieci. Jeœli jednak nie znasz adresu g³ównej przegl¹darki lokalnej,
mo¿esz skorzystaæ z nastêpuj¹cej opcji:
[global]
remote announce = 192.168.234.255/KSIEGOWOSC \
192.168.236.255/KSIEGOWOSC

Samba bêdzie wówczas wysy³aæ komunikaty rozg³oszeniowe o swojej obecnoœci do
wszystkich komputerów w podsieciach 192.168.234 i 192.168.236, aby skontaktowaæ
siê z ich g³ównymi przegl¹darkami lokalnymi. Mo¿esz te¿ podaæ dok³adne adresy
IP przegl¹darek, jeœli je znasz.

Ró¿nice w systemach plików
Jednym z najpowa¿niejszych zadañ stoj¹cych przed Samb¹ jest korygowanie ró¿nic
miêdzy uniksowymi i nieuniksowymi systemami plików. Chodzi tu o obs³ugê
dowi¹zañ symbolicznych, plików ukrytych i plików „z kropk¹”. Przy niepoprawnej

120

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

konfiguracji problemem mog¹ byæ te¿ prawa dostêpu do plików. W tym podrozdziale opiszemy, jak Samba radzi sobie z tymi irytuj¹cymi ró¿nicami i jak dodaje
w³asne funkcje.

Ukrywanie i wetowanie plików
W pewnych okolicznoœciach zale¿y nam na tym, ¿eby u¿ytkownik nie móg³ zobaczyæ ani otworzyæ pliku. W innych wypadkach nie chcemy odmawiaæ u¿ytkownikowi dostêpu do pliku – chcemy tylko ukryæ plik przed u¿ytkownikiem, kiedy ten
przegl¹da zawartoœæ katalogu. W systemach Windows pliki maj¹ atrybut, który pozwala na ich ukrycie podczas wyœwietlania zawartoœci katalogu. W Uniksie tradycyjn¹ metod¹ ukrywania plików w katalogu jest nadanie im nazw zaczynaj¹cych siê
od kropki (.). Dziêki temu podczas wykonywania zwyk³ego polecenia ls nie s¹ wyœwietlane pliki konfiguracyjne lub pliki z parametrami domyœlnymi. Jeœli jednak
chcemy w ogóle pozbawiæ u¿ytkownika mo¿liwoœci dostêpu do pliku, musimy
pos³ugiwaæ siê zezwoleniami plikowymi i katalogowymi.
Pierwsza opcja, o której powinniœmy wspomnieæ, to hide dot files. Opcja ta robi
dok³adnie to, na co wskazuje jej nazwa – jeœli jest ustawiona na yes, pliki z kropk¹ s¹
traktowane jako ukryte. Jeœli jest ustawiona na no, pliki te s¹ zawsze wyœwietlane.
Nale¿y pamiêtaæ, ¿e pliki te nie s¹ niedostêpne, a tylko ukryte. Jeœli u¿ytkownik zechce obejrzeæ ukryte pliki podczas przegl¹dania katalogu (na przyk³ad u¿ywaj¹c polecenia Opcje z menu Widok w folderze Windows 98), wówczas pliki te zostan¹ wyœwietlone (patrz rysunek 5.2).

Rysunek 5.2. Pliki ukryte w udziale [dane]

Jeœli chcesz ukrywaæ nie tylko pliki zaczynaj¹ce siê od kropki, dziêki opcji hide files mo¿esz podaæ wzorzec nazw, które Samba powinna ukrywaæ. Przypuœæmy, ¿e
w przyk³adowm udziale [dane] wpisaliœmy poni¿sz¹ opcjê:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
case sensitive = no
hide files = /*.java/*README*/

Ró¿nice w systemach plików

121

Ka¿dy wpis w tej opcji musi zaczynaæ siê, koñczyæ lub byæ oddzielony od innego
znakiem ukoœnika (/), nawet wtedy, gdy podany jest tylko jeden wzorzec. Konwencja ta pozwala na u¿ywanie spacji w nazwach plików. W tym przyk³adzie katalog
udzia³u wygl¹da³by tak, jak na rysunku 5.3. Zauwa¿, ¿e i tym razem wybraliœmy
opcjê wyœwietlania w oknie plików ukrytych.

Rysunek 5.3. Ukrywanie plików wed³ug wzorca nazwy

Jeœli chcielibyœmy ca³kowicie zapobiec wyœwietlaniu plików przez u¿ytkownika,
moglibyœmy zamiast tego u¿yæ opcji veto files. Opcja ta ma tak¹ sam¹ sk³adniê
jak hide files i okreœla pliki, których u¿ytkownik nigdy nie powinien widzieæ.
Zmieñmy na przyk³ad udzia³ [dane] w nastêpuj¹cy sposób:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
case sensitive = no
veto files = /*.java/*README*/

Sk³adnia tej opcji jest taka sama jak opcji hide files: ka¿dy wpis musi zaczynaæ
siê, koñczyæ lub byæ oddzielony od innego znakiem ukoœnika (/), nawet wtedy, gdy
podany jest tylko jeden wzorzec. W tym przypadku pliki hello.java i README po
prostu znikn¹ z katalogu i u¿ytkownik nie bêdzie mia³ do nich dostêpu przez protokó³ SMB.
Pozosta³a jeszcze jedna kwestia. Co siê stanie, jeœli u¿ytkownik spróbuje usun¹æ katalog z zawetowanymi plikami? Okreœla to opcja delete veto files. Jeœli ta
opcja jest ustawiona na yes, u¿ytkownik bêdzie móg³ usun¹æ z katalogu zarówno
zwyk³e, jak i zawetowane pliki, wiêc katalog zostanie usuniêty. Jeœli jest ustawiona
na no, u¿ytkownik nie bêdzie móg³ usun¹æ zawetowanych plików, a w konsekwencji tak¿e samego katalogu. Z perspektywy u¿ytkownika katalog bêdzie wydawa³ siê
pusty, ale niemo¿liwy do usuniêcia.
Dyrektywa dont descend okreœla listê katalogów, których zawartoœæ powinna byæ
niewidoczna dla u¿ytkowników. Zauwa¿, ¿e mówimy tu o zawartoœci, a nie o samym
katalogu. U¿ytkownicy bêd¹ mogli przejœæ do oznaczonego w ten sposób katalogu,
ale nie bêd¹ mogli zejœæ na ni¿sze poziomy drzewa katalogów – zobacz¹ tylko pusty
folder. Spróbujmy u¿yæ tej opcji w udziale zdefiniowanym wczeœniej w tym rozdziale:

122

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
case sensitive = no
dont descend = konfiguracja parametry

Oprócz tego za³ó¿my, ¿e katalog /home/samba/data ma nastêpuj¹c¹ zawartoœæ:
drwxr-xr-x
drwxr-xr-x
-rw-r--r-drwxr-xr-x
drwxr-xr-x
drwxr-xr-x

6
8
2
3
3
3

tom
root
tom
tom
tom
tom

users
root
users
users
users
users

1024
1024
1024
1024
1024
1024

Jun
Jun
Jun
Jun
Jun
Jun

13
10
9
13
13
13

09:24
17:53
11:43
09:28
09:28
09:28

.
..
README
konfiguracja
parametry
rynek

Jeœli u¿ytkownik po³¹czy siê z udzia³em, zobaczy katalogi pokazane na rysunku 5.4.
Jednak¿e katalogi /konfiguracja i /parametry bêd¹ wygl¹da³y na puste, jeœli nawet istnia³yby w nich pliki lub podkatalogi. U¿ytkownik nie bêdzie te¿ móg³ zapisaæ ¿adnych danych w folderze (dziêki czemu nie utworzy pliku lub katalogu o nazwie
identycznej z ju¿ istniej¹cym, choæ niewidocznym). Jeœli spróbuje to zrobiæ, zobaczy
komunikat odmowy dostêpu. Opcja dont descend to opcja administracyjna, a nie
opcja bezpieczeñstwa, i nie nale¿y traktowaæ jej jak substytutu praw dostêpu.

Rysunek 5.4. Zawartoœæ udzia³u [dane] z opcj¹ dont descend

Dowi¹zania
W systemach plików DOS-a i Windows NT nie ma dowi¹zañ symbolicznych. Systemy Windows 95/98/NT u¿ywaj¹ zamiast nich „skrótów”. Kiedy wiêc klient
spróbuje otworzyæ dowi¹zanie symboliczne w udziale serwera Samby, Samba
pod¹¿a za dowi¹zaniem, aby znaleŸæ prawdziwy plik i umo¿liwiæ klientowi jego
otworzenie, zupe³nie tak, jakby u¿ytkownik pracowa³ na komputerze uniksowym.
Jeœli nie chcesz na to pozwoliæ, ustaw opcjê follow symlinks:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
case sensitive = no
follow symlinks = no

Ró¿nice w systemach plików

123

Mo¿esz przetestowaæ tê konfiguracjê, tworz¹c katalog w serwerze uniksowym
wewn¹trz udzia³u, do którego siê logujesz. Wpisz nastêpuj¹ce polecenia:
% mkdir witaj; cd witaj
% cat " To jest test " & gt; halo
% ln -s halo " Dowiazanie do pliku halo "

Dziêki temu powstan¹ dwa pliki pokazane w oknie na rysunku 5.5. Zwykle, jeœli klikniesz którykolwiek z nich, powinieneœ uzyskaæ dostêp do pliku z tekstem „To jest test”.
Jeœli jednak opcja follow symlinks jest ustawiona na no, po klikniêciu dowi¹zania
do pliku witaj.txt powinieneœ otrzymaæ komunikat o b³êdzie, jak na rysunku 5.5.

Rysunek 5.5. Okno dialogowe wyœwietlane po próbie otwarcia dowi¹zania symbolicznego, kiedy jest to
zabronione przez Sambê

Przyjrzyjmy siê jeszcze opcji wide links. Opcja ta, jeœli jest ustawiona na yes, pozwala u¿ytkownikowi na pod¹¿anie za dowi¹zaniami symbolicznymi wskazuj¹cymi
na zewn¹trz wspó³dzielonego drzewa katalogów. Za³ó¿my, ¿e zmodyfikowalibyœmy
udzia³ [dane] w nastêpuj¹cy sposób:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
case sensitive = no
follow symlinks = no
wide links = yes

Jeœli w³¹czona jest tak¿e opcja follow symlinks, konfiguracja ta pozwoli Sambie na
pod¹¿anie za dowi¹zaniami symbolicznymi wskazuj¹cymi poza drzewo katalogów
bie¿¹cego udzia³u. Jeœli utworzymy plik na zewn¹trz udzia³u (na przyk³ad w czyimœ
katalogu macierzystym), a nastêpnie w udziale utworzymy dowi¹zanie do niego:
ln -s ~tomek/plikdanych ./plikdanych

wówczas bêdziemy mogli otworzyæ plik w katalogu Tomka, jeœli tylko pozwalaj¹ na
to prawa dostêpu.

Opcje systemu plików
W tabeli 5.4 znajduje siê podsumowanie omówionych opcji. Zalecamy u¿ycie wartoœci domyœlnych, z wyj¹tkiem tych przypadków, o których mowa w zamieszczonych
ni¿ej opisach.

124

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

Tabela 5.4. Opcje konfiguracji systemu plików
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

unix
realname

WartoϾ
logiczna

no

Globalny

dont descend

£añcuch
(lista
katalogów)
WartoϾ
logiczna

Udostêpnia klientowi
nazwisko uniksowego
u¿ytkownika
Okreœla listê katalogów,
których zawartoœæ powinna
byæ niewidoczna dla klientów
Jeœli jest ustawiona na yes,
Samba nie pozwala u¿ywaæ
dowi¹zañ symbolicznych
Jeœli jest ustawiona na yes,
Samba bêdzie buforowaæ
wywo³ania getwd()
Jeœli jest ustawiona na yes,
Samba bêdzie pod¹¿aæ za
dowi¹zaniami na zewn¹trz
udzia³u
Jeœli jest ustawiona na yes,
ukryte pliki uniksowe s¹
traktowane jako ukryte tak¿e
w Windows
Lista wzorców nazw plików,
które nale¿y traktowaæ jako
ukryte
Lista wzorców nazw plików,
które nigdy nie s¹
wyœwietlane
Jeœli jest ustawiona na yes,
pliki okreœlone opcj¹ veto
files zostan¹ usuniête
podczas usuwania katalogu,
w którym siê znajduj¹

Brak

Udzia³

yes

Udzia³

yes

Globalny

yes

Udzia³

yes

Udzia³

Brak

Udzia³

Brak

Udzia³

no

Udzia³

follow
symlinks
getwd cache

WartoϾ
logiczna

wide links

WartoϾ
logiczna

hide dot files WartoϾ
logiczna

hide files

£añcuch
(lista plików)

veto files

£añcuch
(lista plików)

delete veto
files

WartoϾ
logiczna

unix realname
Niektóre programy potrzebuj¹ do dzia³ania pe³nego nazwiska u¿ytkownika. Na
przyk³ad programy e-mail dla Windows czêsto musz¹ skojarzyæ nazwê u¿ytkownika z jego prawdziwym nazwiskiem. Jeœli twój systemowy plik hase³ zawiera nazwiska u¿ytkowników w polu GECOS, opcja unix realname nakazuje Sambie udostêpnianie tych informacji klientom. Bez nich nazw¹ u¿ytkownika bêdzie po prostu
jego identyfikator u¿ywany przy logowaniu. Jeœli na przyk³ad uniksowy plik hase³
zawiera liniê:
jkowalski:/KaBfco47Rer5:500:500:Jan Kowalski:/home/jkowalski:/bin/sh

a w pliku konfiguracyjnym znajduje siê opcja:
[global]
unix realname = yes

Ró¿nice w systemach plików

125

wówczas ka¿demu klientowi, który poprosi o podanie prawdziwego nazwiska
u¿ytkownika jkowalski zostanie przes³ane nazwisko Jan Kowalski. Zwykle nie
ma potrzeby korzystania z tej opcji.
dont descend
Opcja dont descend s³u¿y do okreœlania katalogów, które z perspektywy klienta
powinny wydawaæ siê puste. Pamiêtaj, ¿e sam katalog bêdzie widoczny, ale Samba
nie wyœwietli jego zawartoœci. Opcja ta nie jest pomyœlana jako mechanizm bezpieczeñstwa (u¿ytkownik prawdopodobnie zdo³a³by j¹ obejœæ), ale raczej jako udogodnienie, które ma powstrzymaæ klientów od zagl¹dania do katalogów z plikami, które nie powinny byæ modyfikowane. Przyk³ad u¿ycia tej opcji znajduje siê wczeœniej
w tym podrozdziale.
follow symlinks
Opcja ta, omówiona szczegó³owo wczeœniej, okreœla, czy Samba powinna pod¹¿aæ
za uniksowymi dowi¹zaniami symbolicznymi do docelowego pliku, czy te¿ zg³osiæ
b³¹d u¿ytkownikowi. Jeœli jest ustawiona na yes, dowi¹zanie zostanie zinterpretowane jako plik.
getwd cache
Ta globalna opcja okreœla, czy Samba bêdzie u¿ywaæ lokalnego bufora dla uniksowego wywo³ania systemowego getwd() (zwracaj¹cego nazwê bie¿¹cego katalogu
roboczego). Mo¿esz zmieniæ jej domyœln¹ wartoœæ (yes) w nastêpuj¹cy sposób:
[global]
getwd cache = no

Ustawienie tej opcji na yes mo¿e znacznie wyd³u¿yæ czas okreœlania bie¿¹cego katalogu roboczego, zw³aszcza wtedy, kiedy opcja wide links jest ustawiona na no.
Zwykle nie ma potrzeby zmieniania tej opcji.
wide links
Opcja ta okreœla, czy klient mo¿e u¿ywaæ dowi¹zañ symbolicznych wskazuj¹cych
na zewn¹trz wspó³dzielonego drzewa katalogów. Dotyczy to wszystkich plików
i katalogów na drugim koñcu dowi¹zania, jeœli tylko u¿ytkownik ma odpowiednie
prawa dostêpu. Domyœlna wartoœæ tej opcji to yes. Opcja ta nie bêdzie honorowana,
jeœli opcja follow symlinks jest ustawiona na no. Ustawienie wartoœci no powoduje znaczne spowolnienie demona smbd.
hide files
W opcji hide files okreœla siê wzorce nazw katalogów i plików. Wszystkie pliki
pasuj¹ce do tego wzorca bêd¹ traktowane przez klienta jako ukryte. Odpowiada to
ustawieniu dosowego atrybutu ukrycia pliku, co niekoniecznie znaczy, ¿e u¿ytkownik nie zobaczy pliku podczas przegl¹dania katalogu.
Ka¿dy wpis na liœcie musi zaczynaæ siê, koñczyæ lub byæ oddzielony od innego wpisu znakiem ukoœnika (/), nawet wtedy, gdy podany jest tylko jeden wzorzec. Dziêki

126

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

temu nazwy na liœcie mog¹ zawieraæ spacje. Mo¿na u¿ywaæ gwiazdek, reprezentuj¹cych zero lub wiêcej znaków, oraz znaków zapytania, reprezentuj¹cych dok³adnie jeden znak. Na przyk³ad:
hide files = /.jav*/README.???/

hide dot files
Opcja hide dot files ukrywa wszystkie pliki, których nazwa zaczyna siê od
kropki (.), naœladuj¹c w ten sposób dzia³anie kilku poleceñ pow³oki w Uniksie. Podobnie jak w przypadku opcji hide files, pliki zaczynaj¹ce siê od kropki maj¹
ustawiony dosowy atrybut ukrycia, co nie gwarantuje, ¿e klient ich nie zobaczy. Domyœlna wartoœæ tej opcji to yes.
veto files
Pliki wymienione w opcji veto files s¹ bardziej chronione ni¿ pliki ukryte. Samba nie informuje nawet o ich istnieniu, a klienty nie mog¹ ich listowaæ ani otwieraæ.
Nie jest to jednak godna zaufania opcja bezpieczeñstwa. Zapobiega ona raczej usuwaniu przez programy PC pewnych specjalnych plików, na przyk³ad tych s³u¿¹cych
do przechowywania rozwidlenia zasobów pliku Macintosha w uniksowym systemie plików. Jeœli Windows i Macintosh dziel¹ te same pliki, opcja veto files
mo¿e powstrzymaæ domoros³ych ekspertów przed usuniêciem plików potrzebnych
u¿ytkownikom Macintoshy.
Sk³adnia tej opcji jest dok³adnie taka sama, jak opcji hide files: ka¿dy wpis na liœcie musi zaczynaæ siê, koñczyæ lub byæ oddzielony od innego znakiem ukoœnika (/),
nawet wtedy, gdy podany jest tylko jeden wzorzec. Mo¿na u¿ywaæ gwiazdek, re prezentuj¹cych zero lub wiêcej znaków, oraz znaków zapytania, reprezentuj¹cych
dok³adnie jeden znak. Na przyk³ad:
veto files = /*konfig*/*parametr?/

Opcja ta jest narzêdziem administracyjnym i nie mo¿e zast¹piæ odpowiednio dobranych praw dostêpu.
delete veto files
Opcja ta zezwala Sambie na pozbycie siê zawetowanych plików podczas usuwania
przechowuj¹cego je katalogu. Jej domyœlna wartoœæ to no. Oznacza to, ¿e próba usuniêcia katalogu z zawetowanym plikiem zakoñczy siê niepowodzeniem. Katalog pozostanie na dysku, choæ z perspektywy u¿ytkownika bêdzie wygl¹da³ na pusty. Jeœli
opcja jest ustawiona na yes, katalog i zawetowane pliki zostan¹ usuniête.

Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix
DOS nigdy nie mia³ byæ wielodostêpnym, sieciowym systemem operacyjnym, natomiast Unix by³ zaprojektowany w ten sposób od samego pocz¹tku. W obs³udze ich
systemów plików wystêpuje wiêc sporo rozbie¿noœci i luk, których Samba nie tylko
musi byæ œwiadoma, ale którym musi tak¿e zaradziæ. Jedn¹ z najwiêkszych ró¿nic
miêdzy Uniksem i DOS-em jest obs³uga praw dostêpu do plików.

Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix

127

Zobaczmy, w jaki sposób Unix przypisuje plikom prawa dostêpu. Wszystkie pliki
Uniksa maj¹ zezwolenia na odczyt, zapis i wykonanie dla trzech kategorii u¿ytkowników: w³aœciciela, grupy i „reszty œwiata”. Zezwolenia te mo¿na obejrzeæ w skrajnej
lewej kolumnie wyników polecenia ls -al wydanego w uniksowym katalogu. Na
przyk³ad:
-rwxr--r--

1 tomek

users

2014 Apr 13 14:11 access.conf

Windows dysponuje natomiast czterema bitami, które przypisuje wszystkim plikom: tylko do odczytu, systemowy, ukryty i archiwalny. Mo¿na obejrzeæ ustawienia
tych bitów, klikaj¹c plik prawym przyciskiem myszy i wybieraj¹c z menu polecenie
W³aœciwoœci. Powinno ukazaæ siê okno dialogowe podobne do tego z rysunku 5.6*.

Rysunek 5.6. Atrybuty plików DOS-a i Windows

Oto definicje poszczególnych bitów:
Tylko do odczytu
U¿ytkownik mo¿e odczytaæ zawartoœæ pliku, ale nie mo¿e nic w nim zapisaæ.
Systemowy
Ten plik pe³ni specjaln¹ funkcjê w systemie operacyjnym.
Ukryty
Plik zosta³ oznaczony jako niewidoczny dla u¿ytkownika, chyba ¿e ten jawnie
za¿¹da jego wyœwietlenia.

* Pole wyboru Systemowy prawdopodobnie bêdzie szare i nieaktywne. Nie przejmuj siê tym – powinieneœ bez trudu dostrzec, czy jest ono zaznaczone, czy te¿ nie.

128

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

Archiwalny
Plik zosta³ zmodyfikowany od czasu sporz¹dzenia jego dosowej kopii zapasowej.
Jak widaæ, ¿aden z bitów nie wskazuje, ¿e plik jest wykonywalny. Systemy plików
DOS-a i Windows NT identyfikuj¹ pliki wykonywalne na podstawie rozszerzeñ
.EXE, .COM, .CMD i .BAT.
Z tego wynika, ¿e trzy uniksowe bity wykonywalnoœci nie maj¹ ¿adnego zastosowania w odniesieniu do pliku przechowywanego w udziale dyskowym Samby. Pliki
dosowe maj¹ jednak w³asne atrybuty, które powinny zostaæ zachowane podczas
przechowywania ich w œrodowisku Uniksa: archiwalne, systemowe i ukryte. Samba
mo¿e zachowaæ te atrybuty, wykorzystuj¹c bity wykonywalnoœci pliku uniksowego
– jeœli tego siê od niej za¿¹da. Odwzorowywanie bitów wi¹¿e siê jednak z niepo¿¹danym efektem ubocznym: jeœli u¿ytkownik Windows zapisze plik w udziale
Samby, a ty obejrzysz go w Uniksie za pomoc¹ polecenia ls -al, niektóre bity wykonywalnoœci bêd¹ oznaczaæ coœ innego ni¿ to, do czego przywyk³eœ.
O odwzorowywaniu bitów decyduj¹ trzy opcje Samby: map archive, map system i map hidden. Opcje te umo¿liwiaj¹ odwzorowywanie atrybutów archiwalnego, systemowego i ukrytego na bity wykonywalnoœci dla – odpowiednio – w³aœciciela, grupy i reszty œwiata. Mo¿esz dodaæ te opcje do udzia³u [dane], ustawiaj¹c ich
wartoœci w nastêpuj¹cy sposób:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
map archive = yes
map system = yes
map hidden = yes

Nastêpnie spróbuj utworzyæ plik w Uniksie, na przyk³ad o nazwie witaj.java,
i zmieniæ jego zezwolenia na 755. Jeœli ustawi³eœ opcje jak w przyk³adzie powy¿ej, po
sprawdzeniu atrybutów pliku w Windows powinieneœ zauwa¿yæ, ¿e w oknie
W³aœciwoœci zaznaczone s¹ trzy pola atrybutów pliku. A co z atrybutem Tylko do
odczytu? Domyœlnie Samba 2.0 ustawia ten atrybut zawsze wtedy, gdy plik nie ma
ustawionego uniksowego zezwolenia na odczyt dla w³aœciciela. Innymi s³owy,
mo¿esz ustawiæ ten atrybut, zmieniaj¹c zezwolenia pliku na 555.
Powinniœmy ciê ostrzec, ¿e domyœln¹ wartoœci¹ opcji map archive jest yes, natomiast pozosta³e dwie maj¹ domyœln¹ wartoœæ no. Wynika to z faktu, ¿e wiele programów nie dzia³a poprawnie, jeœli z plikami DOS-a i Windows nie jest zapisany w³aœciwy bit archiwalny. Atrybuty systemowy i ukryty nie maj¹ natomiast wiêkszego
wp³ywu na dzia³anie programów, wiêc decyzjê o ich u¿yciu pozostawia siê administratorowi.
Rysunek 5.7 przedstawia bity zezwoleñ uniksowych i ich odwzorowanie na atrybuty DOS-a. Zauwa¿, ¿e bity odczytu i zapisu dla grupy i reszty œwiata nie przek³adaj¹
siê bezpoœrednio na atrybuty DOS-a, ale zachowuj¹ swoje pierwotne uniksowe znaczenie w serwerze Samby.

Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix

129

Rysunek 5.7. Znaczenie praw dostêpu do pliku w Uniksie i Sambie

Maski tworzenia plików
Samba ma kilka opcji pomagaj¹cych w obs³udze masek tworzenia plików. Maski te
okreœlaj¹ pocz¹tkowe prawa dostêpu do nowo tworzonych plików i katalogów.
W Uniksie daje to mo¿liwoœæ selektywnego wy³¹czania praw dostêpu do tworzonych
plików i katalogów. W przypadku plików u¿ywanych przez Windows oznacza to, ¿e
mo¿esz wy³¹czaæ równie¿ atrybuty: tylko do odczytu, archiwalny, systemowy i ukryty.
Na przyk³ad poni¿sza opcja create mask stanowi, ¿e prawa dostêpu do plików
tworzonych przez klienty Windows bêd¹ równe najwy¿ej 744:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
create mask = 744

natomiast u¿yta poni¿ej opcja directory mask sprawi, ¿e prawa dostêpu do
nowo tworzonych katalogów bêd¹ równe najwy¿ej 755:
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
directory mask = 755

Mo¿esz tak¿e wymusiæ ustawianie ró¿nych bitów za pomoc¹ opcji force create
mode i force directory mode. Wartoœci okreœlone w tych opcjach zostan¹ poddane logicznej operacji OR z maskami tworzenia plików i katalogów, dziêki czemu
wskazane bity bêd¹ zawsze ustawione. Opcje te maj¹ zwykle zasiêg globalny, za pewniaj¹c w³aœciwe ustawianie zezwoleñ na zapis i odczyt dla grupy oraz reszty
œwiata w plikach lub katalogach tworzonych we wszystkich udzia³ach.
Podobnie, jeœli chcia³byœ jawnie okreœliæ uniksowego u¿ytkownika i grupê plików
tworzonych przez klienty Windows, mo¿esz pos³u¿yæ siê opcjami force user
i force group. Na przyk³ad:

130

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
create mask = 744
directory mask = 755
force user = jacek
force group = ksiegowosc

Opcje te w istocie statycznie przypisuj¹ uniksowego u¿ytkownika i grupê ka¿demu
po³¹czeniu z udzia³em. Dzieje siê to jednak ju¿ po uwierzytelnieniu klienta, wiêc
swobodny dostêp do udzia³u jest nadal niemo¿liwy. Opcje te s¹ czêsto u¿ywane ze
wzglêdu na efekty uboczne: przypisywanie okreœlonego u¿ytkownika i grupy
wszystkim plikom tworzonym w udziale. Korzystaj z nich wed³ug w³asnego uznania.
Kolejn¹ cech¹ Uniksa, której brakuje DOS-owi, jest mo¿liwoœæ usuniêcia z zapisywalnego katalogu pliku przeznaczonego tylko do odczytu. Jeœli uniksowy katalog
jest zapisywalny, mo¿na usuwaæ z niego pliki przeznaczone tylko do odczytu. Dziêki temu u¿ytkownicy mog¹ usuwaæ dowolne pliki ze swoich katalogów, nawet wtedy, gdy umieœci³ je tam ktoœ inny.
System plików DOS-a nie zosta³ zaprojektowany pod k¹tem wielu u¿ytkowników,
wiêc jego twórcy zdecydowali, ¿e „przeznaczony tylko do odczytu” bêdzie znaczyæ
„chroniony przed przypadkow¹ zmian¹, w tym usuniêciem”, a nie „chroniony
przed innym u¿ytkownikiem tego samego komputera”, i uniemo¿liwili usuwanie
takich plików. Nawet dzisiaj systemy plików Windows zachowuj¹ siê w taki sposób.
Zwykle nie ma w tym nic z³ego. Programy Windows nie próbuj¹ usuwaæ plików
przeznaczonych tylko do odczytu, poniewa¿ wiedz¹, ¿e to kiepski pomys³. Jednak¿e
niektóre narzêdzia s³u¿¹ce do kontroli kodu Ÿród³owego – napisane pocz¹tkowo dla
Uniksa i przeniesione do Windows – musz¹ mieæ mo¿liwoœæ usuwania plików przeznaczonych tylko do odczytu. Samba bêdzie na to zezwalaæ, jeœli ustawisz opcjê delete readonly na yes.
[dane]
path = /home/samba/dane
browseable = yes
guest ok = yes
writeable = yes
create mask = 744
directory mask = 755
force user = jacek
force group = ksiegowosc
delete readonly = yes

Opcje praw dostêpu do plików i katalogów
Opcje praw dostêpu do plików i katalogów zebrano w tabeli 5.5. Poni¿ej ka¿da opcja
jest szczegó³owo opisana.

Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix

131

Tabela 5.5. Opcje praw dostêpu do plików i katalogów
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

map archive

WartoϾ
logiczna

yes

Udzia³

map system

WartoϾ
logiczna

no

Udzia³

map hidden

WartoϾ
logiczna

no

Udzia³

create mask
(create mode)

WartoϾ
liczbowa

0744

Udzia³

directory
mask
(directory
mode)
force create
mode

WartoϾ
liczbowa

Zachowuje dosowy atrybut
archiwalny w bicie wykonywalnoœci dla u¿ytkownika (0100)
Zachowuje dosowy atrybut
systemowy w bicie wykonywalnoœci dla grupy (0010)
Zachowuje dosowy atrybut
ukrycia w bicie wykonywalnoœci
dla reszty œwiata (0001)
Ustawia maksymaln¹ wartoœæ
zezwoleñ dla plików
tworzonych przez Sambê
Ustawia maksymaln¹ wartoœæ
zezwoleñ dla katalogów
tworzonych przez Sambê

0755

Udzia³

0000

Udzia³

0000

Udzia³

Brak

Udzia³

Brak

Udzia³

no

Udzia³

force
directory
mode
force group
(group)
force user

delete
readonly

WartoϾ
liczbowa

Wymusza ustawienie okreœlonych
zezwoleñ (bitowa suma logiczna
OR) dla plików tworzonych
przez Sambê
WartoϾ
Wymusza ustawienie okreœlonych
liczbowa
zezwoleñ (bitowa suma logiczna
OR) dla katalogów tworzonych
przez Sambê
£añcuch
Ustawia obowi¹zuj¹c¹ grupê dla
(nazwa
u¿ytkownika korzystaj¹cego
grupy)
z udzia³u
£añcuch
Ustawia obowi¹zuj¹c¹ nazwê
(nazwa
u¿ytkownika korzystaj¹cego
u¿ytkownika) z udzia³u
WartoϾ
Pozwala u¿ytkownikowi
logiczna
usuwaæ z zapisywalnego katalogu
pliki przeznaczone tylko do
odczytu

create mask
Argumentem tej opcji jest ósemkowa liczba okreœlaj¹ca zezwolenia, które mog¹ zostaæ ustawione podczas tworzenia pliku przez klienta. Jej domyœlna wartoœæ to 0744,
co oznacza, ¿e uniksowy u¿ytkownik mo¿e odczytywaæ, zapisywaæ lub wykonywaæ
pliki, natomiast cz³onkowie jego grupy i inni mog¹ je co najwy¿ej odczytywaæ. Jeœli
chcesz zmieniæ te zezwolenia dla plików niewykonywalnych, zalecamy wartoœæ
0644, czyli rw-r--r--. Pamiêtaj, ¿e bity wykonywalnoœci mog¹ byæ u¿ywane przez
serwer do odwzorowywania dosowych atrybutów plików, co opisano wczeœniej. Jeœli zmieniasz maskê tworzenia plików, te bity równie¿ musz¹ byæ czêœci¹ maski.

132

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

directory mask
Argumentem tej opcji jest ósemkowa liczba okreœlaj¹ca zezwolenia, które mog¹ zostaæ ustawione podczas tworzenia katalogu przez klienta. Jej domyœlna wartoœæ to
0755, co oznacza, ¿e inni u¿ytkownicy uniksowi mog¹ co najwy¿ej odczytywaæ katalogi i przechodziæ do nich, a tylko w³aœciciel ma prawo do ich modyfikacji. Zalecamy
maskê 0750, która uniemo¿liwia dostêp reszcie œwiata.
force create mode
Opcja ta okreœla bity zezwoleñ, które zostan¹ ustawione przez Sambê podczas zmiany praw dostêpu do pliku. Czêsto u¿ywa siê jej do ustawiania zezwoleñ grupowych,
o czym by³a mowa wczeœniej. Mo¿na wykorzystaæ j¹ tak¿e do wstêpnego ustawiania
atrybutów dosowych: archiwalnego (0100), systemowego (0010) i ukrytego (0001).
Opcja ta jest zawsze uwzglêdniana po opcjach map archive, map system, map
hidden i create mask.
Wiele aplikacji Windows zmienia nazwê swoich plików danych na plikdanych.bak i tworzy nowe pliki, zmieniaj¹c tym samym ich w³aœciciela i prawa dostêpu, co uniemo¿liwia ich edytowanie przez cz³onków tej samej uniksowej grupy. Ustawienie opcji
force create mode = 0660 sprawia, ¿e nowy plik nadal mo¿e byæ edytowany
przez cz³onków grupy.

force directory mode
Opcja ta okreœla bity zezwoleñ, które Samba ustawia podczas zmiany praw dostêpu do
istniej¹cego katalogu lub podczas tworzenia nowego. Czêsto u¿ywa siê jej do ustawiania zezwoleñ grupowych, o czym by³a mowa wczeœniej. Domyœlna wartoœæ tej opcji to
0000. Mo¿na u¿ywaæ jej dok³adnie tak samo, jak opcji force create mode, aby w razie potrzeby dodawaæ zezwolenia grupowe lub inne. Opcja ta jest zawsze uwzglêdniana po opcjach map archive, map system, map hidden i directory mask.
force group
Opcja ta, czasem zapisywana w postaci group, okreœla statyczny identyfikator grupy, który po uwierzytelnieniu klienta bêdzie u¿ywany we wszystkich po³¹czeniach
z udzia³em. Opcja ta przypisuje okreœlon¹ grupê ka¿demu plikowi i katalogowi
utworzonemu przez klienta SMB.
force user
Opcja ta okreœla statyczny identyfikator u¿ytkownika, który po uwierzytelnieniu
klienta bêdzie u¿ywany we wszystkich po³¹czeniach z udzia³em. Opcja ta przypisuje okreœlonego u¿ytkownika ka¿demu plikowi i katalogowi utworzonemu przez
klienta SMB.
delete readonly
Ta opcja pozwala u¿ytkownikowi usun¹æ katalog zawieraj¹cy pliki przeznaczone
tylko do odczytu. Domyœlnie DOS i Windows nie pozwalaj¹ na tak¹ operacjê. Zwy-

Prawa dostêpu i atrybuty plików w systemach MS-DOS i Unix

133

kle powinieneœ pozostawiæ tê opcjê wy³¹czon¹, chyba ¿e u¿ywasz programu, który
wymaga takiej mo¿liwoœci; wielu u¿ytkowników Windows by³oby niepocieszonych, gdyby okaza³o siê, ¿e pomy³kowo usunêli plik, który by³ przeznaczony tylko
do odczytu. Prawdê mówi¹c, nawet uniksowe polecenie rm pyta, czy u¿ytkownik
rzeczywiœcie chce obejœæ zabezpieczenie i usun¹æ pliki przeznaczone tylko do odczytu. Samba powinna byæ równie ostro¿na w tym wzglêdzie.
map archive
Dosowy bit archiwalny wskazuje, ¿e plik zosta³ zmieniony od czasu ostatniej archiwizacji (to znaczy sporz¹dzenia jego kopii zapasowej przez dosowy program archiwizuj¹cy). Ustawienie opcji Samby map archive = yes sprawia, ¿e dosowy bit archiwalny jest odwzorowywany na uniksowy bit wykonywalnoœci dla w³aœciciela
(0100). Lepiej pozostawiæ tê opcjê w³¹czon¹, jeœli u¿ytkownicy Windows sami sporz¹dzaj¹ kopie zapasowe lub u¿ywaj¹ programów pos³uguj¹cych siê bitem archiwalnym. W Uniksie nie istnieje pojêcie bitu archiwalnego. Programy do sporz¹dzania kopii zapasowych zwykle przechowuj¹ plik z list¹ plików i dat¹ ich skopiowania, wiêc mog¹ osi¹gn¹æ ten sam cel, porównuj¹c daty modyfikacji plików.
Ustawienie tej opcji na yes mo¿e od czasu do czasu wzbudziæ zdziwienie u¿ytkownika Uniksa, który zauwa¿y, ¿e plik danych jest oznaczony jako wykonywalny, ale
rzadko prowadzi do problemów. Jeœli u¿ytkownik spróbuje wykonaæ taki plik, zwykle zobaczy tylko ci¹g komunikatów o b³êdzie, kiedy pow³oka bêdzie próbowa³a
zinterpretowaæ kilka pierwszych linii jako polecenia. Mo¿liwa jest te¿ sytuacja odwrotna: wykonywalny program uniksowy bêdzie z perspektywy Windows stwarza³
wra¿enie niezarchiwizowanego, ale zdarza siê to rzadko i jest raczej nieszkodliwe.
map system
Dosowy atrybut systemowy wskazuje, ¿e plik jest wymagany przez system operacyjny i nie nale¿y go usuwaæ ani przenosiæ bez podjêcia specjalnych kroków. Ustaw
tê opcjê tylko wtedy, gdy musisz przechowywaæ systemowe pliki Windows na uniksowym serwerze plików. Wykonywalne programy uniksowe sprawiaj¹ wra¿enie
nieusuwalnych, specjalnych plików Windows, gdy ogl¹da siê je z klienta Windows.
Mo¿e to byæ nieco niedogodne, jeœli zechcesz je przenieœæ lub usun¹æ. W wiêkszoœci
przypadków jest to jednak nieszkodliwe.
map hidden
Dosowy atrybut ukrycia wskazuje, ¿e plik nie powinien byæ zwykle widoczny w listingach katalogów. Unix nie dysponuje takim mechanizmem; o tym, co ma zostaæ
wyœwietlone, a co nie, decyduj¹ poszczególne programy (a zw³aszcza pow³oka).
Zwykle nie bêdziesz pos³ugiwa³ siê ¿adnymi plikami dosowymi, które powinny byæ
ukryte, wiêc lepiej pozostaw tê opcjê wy³¹czon¹.
Ustawienie tej opcji na yes sprawia, ¿e bit ukrycia jest odwzorowywany na uniksowy bit wykonywalnoœci dla innych (0001). Mo¿e to prowadziæ do doœæ nieoczekiwanych rezultatów: ka¿dy program uniksowy wykonywalny dla „reszty œwiata” jest
niewidoczny z perspektywy klienta Windows. Jednak¿e, jeœli opcja ta nie jest usta-

134

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

wiona, a u¿ytkownik Windows spróbuje oznaczyæ plik w udziale Samby jako ukryty, operacja siê nie powiedzie – nie bêdzie gdzie zapisaæ atrybutu ukrycia.

Przekszta³canie nazw i wielkoœæ liter
W czasach DOS-a i Windows 3.1 ka¿da nazwa pliku mog³a sk³adaæ siê co najwy¿ej
z oœmiu du¿ych liter, kropki i kolejnych trzech du¿ych liter. Pos³ugiwanie siê nazwami w tak zwanym formacie 8.3 by³o mocno k³opotliwe. W Windows 95/98, Windows
NT i Uniksie nazwy plików mog¹ liczyæ du¿o wiêcej znaków, a ich wielkoœæ jest
rozró¿niana. Tabela 5.6 przedstawia obecne mo¿liwoœci nazewnicze kilku popularnych systemów operacyjnych.
Tabela 5.6. Ograniczenia d³ugoœci nazw plików w ró¿nych systemach operacyjnych
System operacyjny

Regu³y nazywania plików

DOS 6.22 i wczeœniejsze wersje

Osiem znaków, po których nastêpuje kropka i trzy znaki
rozszerzenia (format 8.3); wielkoϾ liter nie ma znaczenia
Osiem znaków, po których nastêpuje kropka i trzy znaki
rozszerzenia (format 8.3); wielkoϾ liter nie ma znaczenia
127 znaków; wielkoœæ liter jest rozró¿niana
127 znaków; wielkoœæ liter jest rozró¿niana
255 znaków; wielkoœæ liter jest rozró¿niana

Windows 3.1 for Workgroups
Windows 95/98
Windows NT
Unix

Samba musi zachowaæ zgodnoœæ wstecz z klientami sieciowymi, które przechowuj¹
pliki tylko w formacie 8.3, jak Windows for Workgroups. Jeœli u¿ytkownik utworzy
w udziale plik o nazwie antygonadotropistycznoœæ.txt, klient Windows for Workgroups nie bêdzie umia³ go odró¿niæ od znajduj¹cego siê w tym samym katalogu pliku
o nazwie antygona.txt. Podobnie jak Windows 95/98 i Windows NT, Samba musi
stosowaæ specjaln¹ metodê t³umaczenia d³ugich nazw plików na nazwy 8.3, w taki
sposób, aby podobne nazwy nie powodowa³y kolizji. Metodê tê nazywamy przekszta³caniem nazw; Samba radzi sobie z tym podobnie, choæ nie identycznie, jak Windows 95 i jego nastêpcy.

Przekszta³canie nazw przez Sambê
Oto jak Samba przekszta³ca d³ug¹ nazwê pliku na nazwê w formacie 8.3:
· Jeœli pierwotna nazwa pliku nie zaczyna siê od kropki, najwy¿ej piêæ pierwszych
znaków alfanumerycznych wystêpuj¹cych przed ostatni¹ kropk¹ (jeœli kropka
wystêpuje w nazwie) jest przekszta³canych na du¿e litery. Stanowi¹ one pierwsze
piêæ znaków przekszta³conej nazwy 8.3.
· Jeœli pierwotna nazwa pliku zaczyna siê od kropki, kropka jest usuwana, a najwy¿ej piêæ pierwszych znaków alfanumerycznych wystêpuj¹cych przed ostatni¹
kropk¹ (jeœli kropka wystêpuje w nazwie) jest przekszta³canych na du¿e litery.
Stanowi¹ one pierwsze piêæ znaków przekszta³conej nazwy 8.3.
· Za tymi znakami umieszczany jest specjalny znak przekszta³cenia: domyœlnie jest
to tylda (~), choæ Samba pozwala na u¿ycie innego znaku.

Przekszta³canie nazw i wielkoœæ liter

135

· Podstawowa czêœæ d³ugiej nazwy pliku przed ostatni¹ kropk¹ jest zamieniana za

pomoc¹ funkcji mieszaj¹cej na dwuznakowy kod; w razie potrzeby wykorzystywane s¹ czêœci nazwy znajduj¹ce siê za ostatni¹ kropk¹. Ten dwuznakowy kod
jest do³¹czany do nazwy 8.3 za znakiem przekszta³cenia.
· Pierwsze trzy znaki pierwotnej nazwy pliku znajduj¹ce siê za ostatni¹ kropk¹ (jeœli kropka wystêpuje w nazwie) s¹ zamieniane na du¿e litery i do³¹czane do przekszta³conej nazwy jako rozszerzenie. Jeœli pierwotna nazwa pliku zaczyna³a siê
od kropki, zamiast rozszerzenia zostan¹ u¿yte trzy znaki podkreœlenia (_ _ _).
Oto kilka przyk³adów:
wirtuozeria.dat
.htaccess
witaj.java
grupa.konf.txt
antygonawn.txt
antygonadotropicznoϾ.txt

WIRTU~NZ.DAT
HTACC~46._ _ _
WITAJ~FG.JAV
GRUPA~3Q.TXT
ANTYG~3O.TXT
ANTYG~N6.TXT

Dziêki tym regu³om Windows for Workgroups bêdzie rozró¿niaæ pliki na potrzeby
u¿ytkowników, którzy maj¹ w¹tpliwe szczêœcie ogl¹daæ sieæ z perspektywy tego
systemu operacyjnego. Zauwa¿, ¿e okreœlona d³uga nazwa pliku powinna zostaæ
przekszta³cona przez Sambê zawsze na tak¹ sam¹ nazwê 8.3; w Windows nie zawsze tak siê dzieje. Kolizje nadal mog¹ wystêpowaæ, ale znacznie zmniejsza siê ich
prawdopodobieñstwo.
Opcje konfiguracji przekszta³cania przydaj¹ siê w³aœciwie tylko do wspó³pracy
z najstarszymi klientami. Jeœli zdecydujesz siê je wykorzystaæ, powinieneœ zrobiæ to
bez zak³ócania pracy innych klientów, za pomoc¹ nastêpuj¹cej dyrektywy include
w pliku konfiguracyjnym:
[global]
include = /usr/local/samba/lib/smb.conf.%m

Spowoduje to do³¹czenie pliku konfiguracyjnego smb.conf.WfWg, kiedy po³¹czenie
z serwerem nawi¹¿e klient Windows for Workgroups. Teraz mo¿esz utworzyæ plik
/usr/local/samba/lib/smb.conf.WfWg na przyk³ad z takimi opcjami:
[global]
case sensitive = no
default case = upper
preserve case = no
short preserve case = no
mangle case = yes
mangled names = yes

Jeœli nie u¿ywasz Windows for Workgroups, zapewne nie bêdziesz musia³ zmieniaæ
domyœlnych wartoœci tych opcji.
Reprezentowanie i ustalanie nazw plików
Powinniœmy jeszcze nadmieniæ, ¿e systemy operacyjne mog¹ inaczej reprezentowaæ
nazwy plików, a inaczej je ustalaæ. Jeœli zdarzy³o ci siê korzystaæ z Windows
95/98/NT, prawdopodobnie trafi³eœ na plik o nazwie README.TXT. Plik mo¿e byæ
reprezentowany przez system operacyjny wy³¹cznie za pomoc¹ du¿ych liter. Jeœli

136

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

jednak uruchomisz tryb MS-DOS i wpiszesz polecenie edit readme.txt, wówczas do edytora zostanie za³adowany plik o nazwie z³o¿onej z du¿ych liter, choæ ty
wpisa³eœ j¹ ma³ymi!
Dzieje siê tak dlatego, ¿e rodzina systemów operacyjnych Windows 95/98/NT ustala nazwy plików bez uwzglêdniania wielkoœci liter, choæ reprezentuje je z rozró¿nieniem ma³ych i du¿ych liter. Systemy uniksowe zawsze ustalaj¹ nazwy plików z rozró¿nieniem wielkoœci liter; jeœli spróbujesz otworzyæ plik README.TXT za pomoc¹
polecenia vi readme.txt, najprawdopodobniej bêdziesz edytowa³ pusty bufor
nowego pliku.
Oto jak Samba obs³uguje wielkoœæ liter: jeœli opcja preserve case jest ustawiona
na yes, Samba bêdzie zawsze pos³ugiwaæ siê literami takiej wielkoœci, której system
operacyjny u¿ywa do reprezentowania (nie ustalania) nazw plików. Jeœli jest ustawiona na no, Samba bêdzie pos³ugiwaæ siê literami wielkoœci okreœlonej opcj¹ default case. Tak samo dzia³a opcja short preserve case. Jeœli jest ustawiona
na yes, Samba bêdzie u¿ywaæ takiej wielkoœci liter do reprezentowania nazw 8.3,
jaka jest domyœlna dla systemu operacyjnego; w przeciwnym wypadku u¿yje wielkoœci okreœlonej opcj¹ default case. Wreszcie, Samba bêdzie zawsze ustalaæ nazwy plików w swoich udzia³ach wed³ug wartoœci opcji case sensitive.

Opcje przekszta³cania
Samba pozwala na dostosowanie przekszta³cania nazw do potrzeb u¿ytkownika,
w tym na kontrolowanie rozró¿niania wielkoœci liter, na okreœlenie znaku u¿ywanego do tworzenia przekszta³conych nazw oraz na rêczne odwzorowywanie nazw plików miêdzy dwoma formatami. Opcje te s¹ wymienione w tabeli 5.7.
Tabela 5.7. Opcje przekszta³cania nazw
Opcja

Parametry

case
WartoϾ
sensitive
logiczna
(casesignames)
default case

(upper
lub lower)

preserve case

WartoϾ
logiczna

short
preserve
case

WartoϾ
logiczna

Funkcja

WartoϾ
domyœlna

Zasiêg

Jeœli jest ustawiona na yes, Samba
bêdzie rozró¿niaæ wielkoœæ liter
w nazwach plików (w przeciwieñstwie do Windows)
WielkoϾ liter przyjmowana za
domyœln¹ (u¿ywana tylko wtedy,
gdy opcja preserve case ma
wartoϾ no)
Jeœli jest ustawiona na yes, zachowuje wielkoœæ liter w nazwach
przekazanych przez klienta (to
znaczy nie konwertuje ich na
wielkoœæ domyœln¹, okreœlon¹ za
pomoc¹ opcji default case)
Jeœli jest ustawiona na yes, zachowuje wielkoœæ liter w nazwach 8.3 przekazanych przez
klienta

no

Udzia³

lower

Udzia³

yes

Udzia³

yes

Udzia³

Przekszta³canie nazw i wielkoœæ liter

137

Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

mangle case

WartoϾ
logiczna

no

Udzia³

mangled names

Przekszta³ca nazwê, jeœli w jej
sk³ad wchodz¹ litery ró¿nej
wielkoœci
Przekszta³ca d³ugie nazwy na
dosowy format 8.3
Okreœla znak przekszta³cania

WartoϾ
logiczna
£añcuch
(pojedynczy
znak)
WartoϾ
Liczba przekszta³conych nazw
liczbowa
przechowywanych na lokalnym
stosie przekszta³cania
Pozwala na odwzorowywanie
£añcuch
nazw plików miêdzy dwoma
(lista
formatami
wzorców)

yes

Udzia³

~

Udzia³

50

Globalny

Brak

Udzia³

mangling char

mangled stack

mangled map

case sensitive
Ta opcja (o doœæ ma³o mówi¹cym synonimie casesignames) okreœla, czy Samba
powinna zachowywaæ wielkoœæ liter podczas ustalania nazw w konkretnym udziale. Jej domyœlna wartoœæ to no, co odpowiada ustalaniu nazw w Windows. Jeœli
klienty u¿ywaj¹ systemu operacyjnego, który rozró¿nia wielkoœæ liter w nazwach
plików, mo¿esz ustawiæ tê opcjê na yes, jak w przyk³adzie poni¿ej:
[ksiegowosc]
case sensitive = yes

W przeciwnym wypadku zalecamy pozostawienie domyœlnej wartoœci tej opcji.
default case
Opcji default case u¿ywa siê w po³¹czeniu z opcj¹ preserve case. Okreœla
ona domyœln¹ wielkoœæ liter (du¿e, upper, lub ma³e, lower), której Samba u¿yje
podczas tworzenia pliku w imieniu klienta. Domyœlna wielkoœæ liter to lower, co
oznacza, ¿e w nazwach nowo tworzonych plików bêd¹ wystêpowaæ litery o takiej
wielkoœci, jak¹ poda³ klient. Jeœli zachodzi taka potrzeba, mo¿esz zmieniæ tê glo baln¹ opcjê, pisz¹c:
[global]
default case = upper

Jeœli podasz tak¹ wartoœæ, nazwy nowo tworzonych plików bêd¹ zawsze przekszta³cane na du¿e litery. Zalecamy pozostawienie wartoœci domyœlnej, o ile nie
masz do czynienia z klientami Windows for Workgroups lub innymi u¿ywaj¹cymi
formatu 8.3 – wtedy powinieneœ nadaæ tej opcji wartoœæ upper.
preserve case
Opcja ta definiuje, czy w nazwach plików tworzonych przez Sambê na zlecenie
klienta bêd¹ wystêpowa³y litery o wielkoœci okreœlonej przez system operacyjny
klienta, czy te¿ o wielkoœci okreœlonej za pomoc¹ omówionej wy¿ej opcji default

138

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

case. Domyœlna wartoœæ tej opcji to yes, co oznacza, ¿e wielkoœæ liter ustala system
operacyjny klienta. Jeœli ustawisz j¹ na no, wielkoœæ liter zostanie ustalona na podstawie opcji default case.
Warto wspomnieæ, ¿e opcja ta nie dotyczy ¿¹dañ dostêpu do plików w formacie 8.3
wysy³anych przez klientów – patrz opcja short preserve case poni¿ej. Mo¿esz
ustawiæ tê opcjê na yes, jeœli aplikacje tworz¹ce pliki w serwerze Samby rozró¿niaj¹
wielkoœæ liter. Jeœli chcesz, ¿eby Samba naœladowa³a dzia³anie systemu plików Windows NT, pozostaw domyœln¹ wartoœæ tej opcji, yes.
short preserve case
Opcja ta okreœla, czy w nazwach plików formatu 8.3 tworzonych przez Sambê na
zlecenie klienta bêd¹ wystêpowa³y litery o wielkoœci okreœlonej przez system operacyjny klienta, czy te¿ o wielkoœci okreœlonej za pomoc¹ opcji default case. Domyœlna wartoœæ tej opcji to yes, co oznacza, ¿e wielkoœæ liter ustala system operacyjny
klienta. Mo¿esz zezwoliæ Sambie na wybieranie wielkoœci liter wed³ug ustawienia
opcji default case, pisz¹c co nastêpuje:
[global]
short preserve case = no

Jeœli chcesz, ¿eby Samba naœladowa³a dzia³anie systemu plików Windows NT, pozostaw domyœln¹ wartoœæ tej opcji, yes.
mangled names
Ta opcja okreœla, czy Samba bêdzie przekszta³caæ nazwy plików w swoich udzia³ach na
potrzeby klientów pos³uguj¹cych siê formatem 8.3. Jeœli jest ustawiona na no, Samba nie
bêdzie przekszta³caæ nazw, co sprawi, ¿e dla systemów operacyjnych pracuj¹cych z nazwami w formacie 8.3 bêd¹ one niewidoczne lub bêd¹ siê wydawaæ obciête. Domyœlna
wartoœæ tej opcji to yes. Mo¿esz zmieniæ jej wartoœæ dla pojedynczego udzia³u:
[dane]
mangled names = no

mangle case
Opcja ta informuje Sambê, czy nale¿y przekszta³caæ nazwy plików nie sk³adaj¹ce siê
w ca³oœci z liter o wielkoœci okreœlonej opcj¹ konfiguracyjn¹ default case. Domyœlna wartoœæ tej opcji to no. Jeœli ustawisz j¹ na yes, powinieneœ upewniæ siê, czy
wszystkie klienty bêd¹ zdolne do pos³ugiwania siê przekszta³conymi nazwami plików. Mo¿esz zmieniæ jej wartoœæ dla pojedynczego udzia³u w nastêpuj¹cy sposób:
[dane]
mangled case = yes

Odradzamy zmienianie wartoœci tej opcji, jeœli nie masz po temu wa¿nego powodu.
mangling char
Ta opcja okreœla znak u¿ywany podczas przekszta³cania nazw plików na format 8.3.
Domyœlnym znakiem przekszta³cania jest tylda (~). Zamiast niej mo¿esz u¿yæ do wolnego innego znaku, na przyk³ad:

Blokady i blokady oportunistyczne

139

[dane]
mangling char = #

mangled stack
Samba u¿ywa lokalnego stosu niedawno przekszta³conych nazw 8.3. Stos ten mo¿na
wykorzystaæ do przywracania pierwotnej postaci przekszta³conych nazw plików;
czêsto wymagaj¹ tego aplikacje, które tworz¹ i zapisuj¹ plik, zamykaj¹ go, a póŸniej
musz¹ go zmodyfikowaæ. Stos ten domyœlnie przechowuje 50 par: d³uga nazwa pliku – przekszta³cona nazwa pliku. Jeœli chcesz odci¹¿yæ procesor od zadañ zwi¹zanych z przekszta³caniem nazw, mo¿esz zwiêkszyæ rozmiar stosu kosztem wiêkszego zu¿ycia pamiêci i nieco wolniejszego dostêpu do plików.
[global]
mangled stack = 100

mangled map
Jeœli domyœlny algorytm przekszta³cania nazw jest niewystarczaj¹cy, mo¿esz sprecyzowaæ jego dzia³anie za pomoc¹ opcji mangled map. Opcja ta pozwala na okreœlenie w³asnych wzorców przekszta³cania nazw, stosowanych przed przekszta³ceniem
nazwy przez Sambê. Na przyk³ad:
[dane]
mangled map = (*.database *.db) (*.class *.cls)

Samba bêdzie szukaæ we wszystkich nazwach plików znaków odpowiadaj¹cych
pierwszemu wzorcowi okreœlonemu w nawiasie i przekszta³caæ je na drugi wzorzec
w celu wyœwietlenia ich w kliencie 8.3. Jest to przydatne wtedy, gdy domyœlny algorytm przekszta³ca nazwy nieprawid³owo lub na format, którego klient nie mo¿e rozpoznaæ. Poszczególne wzorce oddziela siê znakami odstêpu.

Blokady i blokady oportunistyczne
Jednoczesne zapisy w jednym pliku s¹ w ka¿dym systemie operacyjnym rzecz¹ niepo¿¹dan¹. Aby temu zapobiec, wiêkszoœæ systemów u¿ywa blokad, które gwarantuj¹, ¿e w danej chwili w pliku mo¿e pisaæ tylko jeden proces. Tradycyjne systemy
operacyjne blokowa³y ca³e pliki, ale te nowoczeœniejsze potrafi¹ zablokowaæ tak¿e
zakres bajtów w pliku. Jeœli inny proces spróbuje zapisaæ coœ w zablokowanym ju¿
pliku (albo w jego czêœci), system operacyjny zg³osi b³¹d i proces bêdzie musia³ poczekaæ na zwolnienie blokady.
Samba obs³uguje standardowe ¿¹dania blokady DOS-a i systemu plików NT (w trybie odmowy, ang. deny-mode), które pozwalaj¹ na pisanie w ca³ym pliku tylko jednemu procesowi w danej chwili. Samba nak³ada tak¿e blokady zakresów bajtów.
Ponadto Samba obs³uguje nowy mechanizm blokowania, w terminologii Windows
NT nazywany blokad¹ oportunistyczn¹.

Blokady oportunistyczne
Dziêki blokadom oportunistycznym klient mo¿e poinformowaæ serwer Samby, ¿e
nie tylko bêdzie jedynym uprawnionym do pisania w pliku, ale ¿e bêdzie buforowa³

140

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

wszystkie zmiany lokalnie (a nie w serwerze Samby) w celu przyspieszenia dostêpu
do pliku. Kiedy Samba wie, ¿e plik zosta³ oportunistycznie zablokowany przez
klienta, zaznacza swoj¹ wersjê tego pliku jako ob³o¿on¹ blokad¹ i czeka, a¿ klient zakoñczy operacje na pliku i odeœle jego ostateczn¹ wersjê w celu wzajemnej synchronizacji.
Jeœli inny klient za¿¹da dostêpu do tego pliku, zanim pierwszy klient zakoñczy pracê, Samba mo¿e wys³aæ ¿¹danie przerwania blokady do pierwszego klienta. Jest to informacja dla klienta, ¿e powinien zaprzestaæ lokalnego buforowania i zwróciæ informacje o bie¿¹cym stanie pliku, aby nowy klient móg³ u¿yæ go wedle swego uznania.
Blokada oportunistyczna nie jest jednak zamiennikiem standardowej blokady w trybie odmowy. Czêsto zdarza siê, ¿e serwer przyznaje klientowi prawo do przerwania
blokady oportunistycznej, a ten odkrywa, ¿e pierwotny proces na³o¿y³ na plik tak¿e
blokadê w trybie odmowy. Proces blokowania oportunistycznego przedstawiono na
rysunku 5.8.

Rysunek 5.8. Zak³adanie blokady oportunistycznej

Jeœli chodzi o opcje blokad, zalecamy poprzestanie na wartoœciach domyœlnych Samby: standardowych blokadach DOS/Windows w trybie odmowy, które gwarantuj¹
zachowanie zgodnoœci, i blokadach oportunistycznych, które zwiêkszaj¹ wydajnoœæ
dziêki lokalnemu buforowaniu. Jeœli twój system operacyjny potrafi korzystaæ z blokad oportunistycznych, zapewne uda ci siê znacznie poprawiæ wydajnoœæ. Jeœli nie
masz wa¿nego powodu do zmieniania którejœ z opcji, powinieneœ pozostawiæ je takimi, jakie s¹.

Blokady i blokady oportunistyczne

141

Unix i blokowanie
Systemy Windows potrafi¹ ze sob¹ wspó³pracowaæ tak, aby unikn¹æ nadpisania
zmian dokonanych w pliku przez innego klienta. Jeœli jednak do pliku przechowywanego w serwerze Samby uzyska dostêp proces uniksowy, nie bêdzie on mia³ pojêcia o oportunistycznym blokowaniu u¿ywanym w Windows i bez ¿adnych ceregieli
naruszy blokadê. Niektóre systemy uniksowe przystosowano do wspó³pracy
z oportunistycznymi blokadami Windows utrzymywanymi przez Sambê. Obecnie
potrafi je obs³ugiwaæ system SGI Irix 6.5.2f i jego nowsze wersje, a niebawem zdolnoœæ tê bêd¹ mia³y tak¿e Linux i FreeBSD.
Jeœli twój system rozpoznaje blokady oportunistyczne, ustaw opcjê kernel oplocks
= yes w pliku konfiguracyjnym Samby. Powinno to wyeliminowaæ konflikty miêdzy
procesami Uniksa a u¿ytkownikami Windows.
Jeœli twój system nie obs³uguje blokad oportunistycznych na poziomie j¹dra, mo¿e
siê zdarzyæ, ¿e ktoœ uruchomi uniksowy proces czytaj¹cy lub pisz¹cy w pliku, z którego korzysta równie¿ Windows, co spowoduje uszkodzenie danych. Samba udostêpnia jednak prowizoryczny mechanizm ochronny, z którego mo¿na skorzystaæ
w razie nieobecnoœci oportunistycznych blokad: opcjê veto oplock files. Jeœli
mo¿esz przewidzieæ, z których plików bêd¹ korzystaæ zarówno u¿ytkownicy Windows, jak i Uniksa, mo¿esz podaæ ich nazwy w tej opcji. Uniemo¿liwi to zak³adanie
oportunistycznych blokad na pliki o takich nazwach, a wiêc i lokalne buforowanie
zmian, dziêki czemu programy dzia³aj¹ce w Windows i Uniksie bêd¹ mog³y skorzystaæ z blokowania systemowego lub czasów uaktualnienia, aby rozstrzygn¹æ rywalizacjê o ten sam plik. Oto przyk³ad:
veto oplock files = /*.dbm/

Opcja ta pozwoli na bezpieczne edytowanie plików o rozszerzeniu .dbm zarówno
przez u¿ytkowników Windows, jak i Uniksa. Zauwa¿, ¿e sk³adnia jest podobna jak
w opcji veto files.
Opcje blokad zwyk³ych i oportunistycznych s¹ podane w tabeli 5.8.
Tabela 5.8. Opcje konfiguracji blokad zwyk³ych i oportunistycznych
Opcja

Parametry Funkcja

WartoϾ
domyœlna

Zasiêg

share
modes

WartoϾ
logiczna

yes

Udzia³

locking

WartoϾ
logiczna
WartoϾ
logiczna

yes

Udzia³

no

Udzia³

yes

Udzia³

strict
locking
oplocks

WartoϾ
logiczna

Jeœli jest ustawiona na yes, w³¹cza
obs³ugê dosowych blokad ca³ych
plików
Jeœli jest ustawiona na yes, w³¹cza
blokady zakresów bajtów
Jeœli jest ustawiona na yes, a na plik
na³o¿ona jest blokada zakresu bajtów,
odmawia dostêpu do ca³ego pliku
Jeœli jest ustawiona na yes, w³¹cza
lokalne buforowanie plików w tym
udziale

Dokoñczenie tabeli na str. 142

142

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

Dokoñczenie tabeli ze str. 141
Tabela 5.8. Opcje konfiguracji blokad zwyk³ych i oportunistycznych
Opcja

Parametry Funkcja

WartoϾ
domyœlna

Zasiêg

kernel
oplocks

WartoϾ
logiczna

yes

Globalny

no

Udzia³

yes

Udzia³

Brak

Udzia³

Taka jak
w pliku
makefile
Samby

Globalny

fake
oplocks

blocking
locks
veto
oplock
files
lock
directory

Jeœli jest ustawiona na yes, informuje Sambê, ¿e j¹dro obs³uguje blokady
oportunistyczne
WartoϾ
Jeœli jest ustawiona na yes, informulogiczna
je klienta, ¿e przyznano blokadê,
choæ w rzeczywistoœci plik nie jest
blokowany
WartoϾ
Pozwala klientowi ¿¹daj¹cemu blologiczna
kady zaczekaæ na jej przyznanie
Nie zezwala na oportunistyczne blo£añcuch
(lista nazw kowanie wskazanych plików
plików)
Okreœla po³o¿enie katalogu,
£añcuch
w którym przechowywane s¹ ró¿ne
(pe³na
pliki Samby, w tym pliki blokady
nazwa
wraz ze
œcie¿k¹)

share modes
Najprostsze blokady udostêpniane przez Sambê to blokady w trybie odmowy, tak
zwane tryby wspó³dzielenia, z których korzystaj¹ programy, takie jak edytor tekstów,
aby unikn¹æ przypadkowego nadpisania plików. Ró¿ne typy blokady w trybie odmowy s¹ zebrane w tabeli 5.9.
Tabela 5.9. Blokady SMB w trybie odmowy
Blokada

Opis

DENY_NONE
DENY_ALL
DENY_READ
DENY_WRITE
DENY_DOS

Nie odrzuca innych ¿¹dañ dostêpu do pliku
Odrzuca wszystkie ¿¹dania otwarcia pliku
Odrzuca wszystkie ¿¹dania otwarcia pliku w trybie tylko do odczytu
Odrzuca wszystkie ¿¹dania otwarcia pliku w trybie tylko do zapisu
Jeœli plik jest otwarty do odczytu, inni mog¹ czytaæ plik, ale nie mog¹
w nim pisaæ. Jeœli plik jest otwarty do zapisu, inni w ogóle nie mog¹ otworzyæ pliku
Przestarza³a

DENY_FCB

Opcja share modes, która wymusza u¿ycie tych blokad, jest domyœlnie w³¹czona.
Aby j¹ wy³¹czyæ, u¿yj nastêpuj¹cej dyrektywy:
[ksiegowosc]
share modes = no

Stanowczo odradzamy wy³¹czanie domyœlnego mechanizmu blokowania, jeœli nie ma
po temu wa¿nej przyczyny. Wiêkszoœæ aplikacji Windows i DOS-a wymaga mechanizmów blokowania do poprawnej pracy i poskar¿y siê, jeœli bêd¹ one niedostêpne.

Blokady i blokady oportunistyczne

143

locking
Opcja locking informuje Sambê, czy nale¿y w³¹czyæ, czy te¿ wy³¹czyæ blokowanie
zakresów bajtów na zlecenie klienta. Samba implementuje blokady zakresów bajtów
po stronie serwera za pomoc¹ zwyk³ych uniksowych blokad doradczych, co zapobiega nadpisaniu zablokowanego zakresu bajtów przez poprawnie dzia³aj¹ce procesy uniksowe.
Opcjê tê mo¿na okreœliæ dla ka¿dego udzia³u z osobna, jak w poni¿szym przyk³adzie:
[ksiegowosc]
locking = yes

Jeœli opcja locking zostanie ustawiona na yes, klient prosz¹cy o przyznanie blokady zostanie wstrzymany a¿ do czasu, kiedy aktualny posiadacz zwolni j¹ (lub
za³amie siê). Jeœli zaœ opcja ta jest ustawiona na no, Samba nie bêdzie przechowywaæ
blokad zakresów bajtów, choæ ¿¹dania zablokowania i odblokowania pliku bêd¹ pozornie spe³niane. Opcja ta jest domyœlnie ustawiona na yes, mo¿esz jednak ustawiæ
j¹ na no, jeœli pliki znajduj¹ siê na noœniku przeznaczonym tylko do odczytu.
strict locking
Opcja ta sprawia, ¿e przy ka¿dym dostêpie do pewnego zakresu bajtów Samba
sprawdza, czy nie jest na niego na³o¿ona blokada. Zwykle nie jest to potrzebne, jeœli
klient czyni zadoϾ wszystkim stosowanym mechanizmom blokowania. Opcja ta ma
domyœln¹ wartoœæ no, mo¿esz jednak zmieniæ j¹ dla ka¿dego udzia³u z osobna, jak
w przyk³adzie poni¿ej:
[ksiegowosc]
strict locking = yes

Jeœli opcja ta jest ustawiona na yes, wówczas na ka¿dy plik z blokad¹ zakresu bajtów nak³adana jest blokada obowi¹zkowa.
blocking locks
Samba obs³uguje tak¿e blokady wstrzymuj¹ce, które s¹ pewn¹ odmian¹ blokad zakresu bajtów. Jeœli ¿¹dany zakres bajtów jest niedostêpny, klient mo¿e okreœliæ, ile czasu
jest gotowy czekaæ. Serwer buforuje ¿¹danie przyznania blokady i okresowo sprawdza, czy plik sta³ siê dostêpny. Jeœli tak jest, informuje o tym klienta, a jeœli up³ynie limit czasu, Samba informuje klienta, ¿e ¿¹danie nie zosta³o spe³nione. Strategia ta zapobiega ci¹g³emu odpytywaniu serwera przez klienta w celu sprawdzenia, czy blokada mo¿e zostaæ przyznana.
Mo¿esz wy³¹czyæ tê opcjê dla ka¿dego udzia³u z osobna, jak w przyk³adzie poni¿ej:
[ksiegowosc]
blocking locks = no

Jeœli opcja ta jest ustawiona na yes, na plik nak³adane s¹ blokady wstrzymuj¹ce. Jeœli
jest ustawiona na no, Samba zachowuje siê tak, jakby na plik by³y na³o¿one zwyk³e
blokady. Domyœlna wartoœæ tej opcji to yes.

144

Rozdzia³ 5: Przegl¹danie i zaawansowane udzia³y dyskowe

oplocks
Opcja ta w³¹cza lub wy³¹cza obs³ugê blokad oportunistycznych. Domyœlnie jest
w³¹czona. Mo¿esz j¹ jednak wy³¹czyæ za pomoc¹ dyrektywy:
[dane]
oplocks = no

Jeœli twoje œrodowisko sieciowe jest bardzo niestabilne albo zarz¹dzasz wieloma
klientami, które nie obs³uguj¹ blokad oportunistycznych, warto wy³¹czyæ tê opcjê.
Powinieneœ wy³¹czyæ blokady oportunistyczne tak¿e wtedy, gdy z tych samych plików korzystaj¹ zarówno aplikacje uniksowe (na przyk³ad edytor vi), jak i klienty
SMB (chyba ¿e twój system operacyjny obs³uguje blokady oportunistyczne na poziomie j¹dra, o czym by³a mowa wczeœniej).
fake oplocks
Zanim w Sambie pojawi³a siê obs³uga blokad oportunistycznych, dziêki opcji fake
oplocks demony Samby mog³y udawaæ, ¿e przyznaj¹ takie blokady. Jeœli opcja ta
by³a w³¹czona, wszystkie klienty by³y informowane, ¿e plik mo¿e zostaæ zablokowany oportunistycznie i nigdy nie ostrzegano ich przed jednoczesnym dostêpem.
Opcja ta jest obecnie przestarza³a, poniewa¿ Samba obs³uguje prawdziwe blokady
oportunistyczne.
kernel oplocks
Jeœli nie zwi¹zana z Samb¹ aplikacja uniksowa spróbuje uaktualniæ plik zablokowany oportunistycznie przez klienta Windows, prawdopodobnie zdo³a to zrobiæ (w zale¿noœci od systemu operacyjnego), a klient i Samba nie bêd¹ tego œwiadome. Jeœli
jednak u¿ywana odmiana Uniksa na to pozwala, Samba mo¿e ostrzegaæ system operacyjny o zablokowanych oportunistycznie plikach, co spowoduje wstrzymanie procesu uniksowego, powiadomienie klienta za poœrednictwem Samby o koniecznoœci
zapisania jego wersji i – dopiero w tym momencie – nast¹pi zezwolenie na otwarcie
pliku. Zasadniczo oznacza to, ¿e j¹dro systemu operacyjnego w serwerze Samby potrafi pos³ugiwaæ siê oportunistycznymi blokadami nie gorzej od Samby.
Mo¿esz w³¹czyæ tê funkcjê za pomoc¹ opcji kernel oplocks, jak w poni¿szym
przyk³adzie:
[global]
kernel oplocks = yes

Samba mo¿e automatycznie wykryæ obs³ugê blokad oportunistycznych w j¹drze
i skorzystaæ z nich, jeœli s¹ dostêpne. W czasie pisania ksi¹¿ki mechanizm ten funkcjonowa³ tylko w systemie SGI Irix 6.5.2f i jego nowszych wersjach. Jednak¿e w najbli¿szej przysz³oœci obs³uga blokad oportunistycznych ma pojawiæ siê w systemach
Linux i FreeBSD. System bez blokad oportunistycznych w j¹drze zezwoli procesowi
uniksowemu na uaktualnienie pliku, co programy klienckie zauwa¿¹ dopiero póŸniej – jeœli w ogóle.

Blokady i blokady oportunistyczne

145

veto oplock files
Dziêki opcji veto oplock files mo¿esz podaæ listê plików, na które nigdy nie
bêd¹ nak³adane blokady oportunistyczne. Opcjê tê mo¿na ustaliæ globalnie lub dla
ka¿dego udzia³u z osobna. Na przyk³ad:
veto oplock files = /*.bat/*.htm/

Wartoœci¹ tej opcji jest ci¹g wzorców. Ka¿dy wzorzec musi zaczynaæ siê, koñczyæ lub
byæ oddzielony od innego znakiem ukoœnika (/), nawet wtedy, gdy u¿ywa siê tylko
jednego wzorca. Mo¿na u¿ywaæ gwiazdek, reprezentuj¹cych zero lub wiêcej zna ków, oraz znaków zapytania, reprezentuj¹cych dok³adnie jeden znak.
Zalecamy wy³¹czenie oportunistycznego blokowania wszystkich plików, które mog¹
byæ uaktualniane z Uniksa lub s¹ przewidziane do wspó³dzielenia przez kilka ró¿nych procesów.
lock directory
Opcja ta (czasem u¿ywana w postaci lock dir) okreœla po³o¿enie katalogu, w którym Samba bêdzie przechowywaæ pliki blokad SMB (przyznanych w trybie odmowy dostêpu). Samba przechowuje w nim tak¿e inne pliki, na przyk³ad listy
przegl¹dania i plik pamiêci dzielonej. Jeœli w³¹czona jest obs³uga WINS, w katalogu
tym zapisana zostanie równie¿ baza danych WINS. Domyœlne po³o¿enie tego katalogu okreœla siê w pliku makefile Samby, najczeœciej jest to /usr/local/samba/var/locks.
Mo¿esz zmieniæ po³o¿enie tego katalogu w nastêpuj¹cy sposób:
[global]
lock directory = /usr/local/samba/locks

Zwykle nie ma potrzeby zmieniania tej opcji, chyba ¿e chcesz przenieœæ pliki blokad
w bardziej standardowe po³o¿enie, na przyk³ad /var/spool/locks.

6

U¿ytkownicy,
bezpieczeñstwo i domeny
Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

W tym rozdziale omówimy konfigurowanie kont u¿ytkowników serwera Samby.
Pocz¹tkowo zagadnienie to wydaje siê raczej proste, ale niebawem przekonasz siê,
¿e mo¿e pojawiæ siê kilka pomniejszych problemów. Administratorzy Samby czêsto
miewaj¹ k³opoty z uwierzytelnianiem u¿ytkowników – znakomita wiêkszoœæ pytañ
pojawiaj¹cych siê na listach wysy³kowych Samby dotyczy problemów z has³ami
i bezpieczeñstwem. Jeœli bêdziesz wiedzia³, dlaczego niektóre mechanizmy bezpieczeñstwa dzia³aj¹ w jednych systemach, a w innych nie, w przysz³oœci oszczêdzisz
mnóstwo czasu, który musia³byœ poœwiêciæ na testowanie i diagnozowanie kont
u¿ytkowników Samby.

U¿ytkownicy i grupy
Ju¿ na wstêpie winniœmy ciê ostrzec, ¿e jeœli ³¹czysz siê z Samb¹ z Windows 98 lub
NT 4.0 Workstation SP3, musisz skonfigurowaæ swój serwer do obs³ugi zaszyfrowanych hase³, zanim nawi¹¿esz po³¹czenie. W przeciwnym wypadku klienty odmówi¹
po³¹czenia siê z serwerem Samby. Dzieje siê tak dlatego, ¿e klienty te pos³uguj¹ siê
zaszyfrowanymi has³ami, a Samba musi byæ odpowiednio skonfigurowana, aby je
szyfrowaæ i deszyfrowaæ. W tym rozdziale poka¿emy ci, jak to zrobiæ, zak³adaj¹c, ¿e
nie upora³eœ siê z tym problemem ju¿ w rozdziale 2, Instalowanie Samby w Uniksie.
Zacznijmy od jednego u¿ytkownika. Naj³atwiejszym sposobem skonfigurowania
u¿ytkownika jest za³o¿enie uniksowego konta (i katalogu macierzystego) w serwerze i powiadomienie Samby o istnieniu tego u¿ytkownika. To ostatnie mo¿na zrobiæ,
tworz¹c w pliku konfiguracyjnym Samby udzia³ dyskowy odpowiadaj¹cy katalogowi macierzystemu u¿ytkownika i ograniczaj¹c dostêp do tego udzia³u za pomoc¹
opcji valid users. Na przyk³ad:
[dawid]
path = /home/dawid
comment = Katalog macierzysty Dawida
writeable = yes
valid users = dawid

Opcja valid users okreœla u¿ytkowników, którzy bêd¹ mogli korzystaæ z udzia ³u. W tym przypadku dostêp do udzia³u bêdzie mia³ tylko u¿ytkownik dawid.

148

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

W poprzednich rozdzia³ach dowiedzia³eœ siê, ¿e dziêki opcji guest ok mo¿esz zezwoliæ na dostêp do udzia³u dowolnemu u¿ytkownikowi. Poniewa¿ nie chcemy pozwoliæ na goœcinny dostêp, nie u¿ywamy tej opcji. W razie potrzeby moglibyœmy
przyznaæ dostêp do udzia³u zarówno uwierzytelnionym, jak i nieuwierzytelnionym
u¿ytkownikom. Ró¿nica miêdzy nimi polega zwykle na ró¿nych prawach dostêpu
do plików udzia³u.
Pamiêtaj, ¿e zamiast nazwy macierzystego katalogu u¿ytkownika, mo¿esz u¿yæ
zmiennej %H. Oprócz tego, w opcjach mo¿esz skorzystaæ ze zmiennej %u, odpowiadaj¹cej uniksowej nazwie u¿ytkownika, oraz zmiennej %U, odpowiadaj¹cej nazwie
klienta. Na przyk³ad:
[dawid]
comment = Katalog macierzysty %U
writeable = yes
valid users = dawid
path = %H

Oba te przyk³ady zadzia³aj¹, jeœli tylko uniksowy u¿ytkownik, którego Samba u¿ywa do reprezentowania klienta, ma prawo do odczytu i zapisu w katalogu okreœlonym opcj¹ path. Innymi s³owy, zanim klient uzyska prawo do zapisu i odczytu
udzia³u, musi zostaæ zweryfikowany przez mechanizmy bezpieczeñstwa Samby
(jak na przyk³ad zaszyfrowane has³a, opcja valid users i tak dalej), a zarazem
mieæ odpowiednie prawa dostêpu do plików i katalogów wynikaj¹ce z uniksowych
uprawnieñ u¿ytkownika.
W przypadku jednego u¿ytkownika korzystaj¹cego ze swojego katalogu macierzystego, prawa dostêpu s¹ ustalane podczas zak³adania konta u¿ytkownika przez system operacyjny. Jeœli jednak tworzysz wspó³dzielony katalog, z którego bêdzie korzystaæ grupa u¿ytkowników, bêdziesz musia³ wykonaæ kilka dodatkowych czynnoœci. Spróbujmy utworzyæ w pliku smb.conf udzia³ dla dzia³u ksiêgowoœci:
[ksiegowosc]
comment = Katalog dzia³u ksiêgowoœci
writeable = yes
valid users = @ksieg
path = /home/samba/ksiegowosc
create mode = 0660
directory mode = 0770

Zapewne zauwa¿y³eœ, ¿e podaliœmy @ksieg jako u¿ytkownika udzia³u, zamiast
jednej lub wielu nazw u¿ytkowników. Jest to skrótowy sposób na okreœlenie, ¿e
uprawnionych u¿ytkowników reprezentuje uniksowa grupa ksieg. U¿ytkowników tych trzeba bêdzie dopisaæ do definicji grupy ksieg w systemowym pliku grup
(/etc/group lub jego odpowiedniku), aby byli rozpoznawani jako cz³onkowie grupy.
Wtedy Samba bêdzie uznawaæ ich za uprawnionych do korzystania z udzia³u.
Ponadto bêdziesz musia³ utworzyæ wspó³dzielony katalog dostêpny dla cz³onków
grupy, na który bêdzie wskazywaæ opcja konfiguracyjna path. Oto polecenia uniksowe, które tworz¹ wspó³dzielony katalog dla dzia³u ksiêgowoœci (zak³adaj¹c, ¿e
katalog /home/samba ju¿ istnieje):

U¿ytkownicy i grupy

149

# mkdir /home/samba/ksiegowosc
# chgrp ksieg /home/samba/ksiegowosc
# chmod 770 /home/samba/ksiegowosc

W omawianym przyk³adzie pojawiaj¹ siê dwa inne wpisy, o których by³a ju¿ mowa
w poprzednich rozdzia³ach: create mode i directory mode. Opcje te ustawiaj¹
najwy¿sze dozwolone prawa dostêpu do nowo tworzonych plików i katalogów.
W tym przypadku uniemo¿liwiliœmy „reszcie œwiata” dostêp do zawartoœci udzia³u
(co podkreœla jeszcze wydane wczeœniej polecenie chmod).

Udzia³ [homes]
Wróæmy na chwilê do udzia³ów u¿ytkowników. Jeœli mamy kilku u¿ytkowników,
którym chcemy za³o¿yæ katalogi macierzyste, prawdopodobnie naj³atwiej bêdzie
nam u¿yæ specjalnego udzia³u [homes], o którym wspomnieliœmy w rozdziale 4,
Udzia³y dyskowe. Wystarczy wówczas napisaæ:
[homes]
browsable = no
writable = yes

Udzia³ [homes] jest specjaln¹ sekcj¹ pliku konfiguracyjnego Samby. Jeœli u¿ytkownik spróbuje po³¹czyæ siê ze zwyk³ym udzia³em, który nie figuruje w pliku smb.conf
(na przyk³ad podaj¹c jego po³o¿enie UNC w Eksploratorze Windows), Samba spróbuje odszukaæ udzia³ [homes]. Jeœli taki udzia³ istnieje, Samba przyjmuje, ¿e nazwa
¿¹danego udzia³u jest nazw¹ u¿ytkownika i próbuje wyszukaæ jego wpis w pliku
hase³ (/etc/passwd lub odpowiedniku) serwera Samby. Jeœli Samba odnajdzie taki
wpis, wówczas zak³ada, ¿e klient jest u¿ytkownikiem uniksowym, który próbuje
po³¹czyæ siê ze swoim katalogiem macierzystym.
Za³ó¿my, ¿e u¿ytkownik zofia próbuje po³¹czyæ siê z udzia³em o nazwie [zofia]
w serwerze Samby. W pliku konfiguracyjnym nie ma udzia³u o takiej nazwie, ale istnieje udzia³ [homes], a w pliku hase³ znajduje siê wpis dla zofii, wiêc Samba podejmuje nastêpuj¹ce czynnoœci:
1. Samba tworzy nowy udzia³ dyskowy o nazwie [zofia] ze œcie¿k¹ okreœlon¹
zmienn¹ path w sekcji [homes]. Jeœli w sekcji [homes] nie ma opcji path, Samba ustawia œcie¿kê na katalog macierzysty zofii.
2. Samba inicjuje nowy udzia³ wartoœciami domyœlnymi z sekcji [globals] oraz
zmieniaj¹cymi je opcjami z sekcji [homes], z wyj¹tkiem opcji browseable.
3. Samba ³¹czy klienta zofii z tym udzia³em.
Sekcja [homes] to szybki i niek³opotliwy sposób tworzenia udzia³ów dla spo³ecznoœci u¿ytkowników, nie wymagaj¹cy powielania informacji z pliku hase³ w pliku
smb.conf. Wi¹¿e siê on jednak z pewnymi osobliwoœciami, o których wypada tutaj
wspomnieæ:

· Sekcja [homes] mo¿e reprezentowaæ dowolne konto w komputerze, co nie zawsze jest po¿¹dane. Potencjalnie mo¿e utworzyæ udzia³y dla u¿ytkowników root,
bin, sys, uucp i podobnych (mo¿esz temu zapobiec, ustawiaj¹c globaln¹ opcjê
invalid users).

150

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

· Znaczenie opcji konfiguracyjnej browseable jest tu inne ni¿ w pozosta³ych

udzia³ach. Wskazuje ona tylko, ¿e sekcja [homes] nie pojawi siê na lokalnej liœcie
przegl¹dania, natomiast nie odnosi siê to do udzia³u [zofia]. Kiedy (po wstêpnym nawi¹zaniu po³¹czenia) zostanie utworzony udzia³ [zofia], wykorzysta
on wartoϾ opcji browseable z sekcji [globals], a nie [homes].
Jak wspomnieliœmy, nie ma potrzeby umieszczania opcji path w sekcji [homes], jeœli u¿ytkownicy maj¹ uniksowe katalogi macierzyste wyszczególnione w pliku
/etc/passwd serwera. Powinieneœ jednak upewniæ siê, ¿e katalog u¿ytkownika rzeczywiœcie istnieje, poniewa¿ Samba nie utworzy go automatycznie i nie po³¹czy klienta
z zasobem, jeœli katalog nie istnieje lub jest niedostêpny.

Kontrolowanie dostêpu do udzia³ów
Ze wzglêdów bezpieczeñstwa czêsto bêdziesz musia³ ograniczaæ dostêp do konkretnych udzia³ów. W Sambie jest to bardzo ³atwe, poniewa¿ masz do dyspozycji mnóstwo opcji, które pozwalaj¹ na utworzenie praktycznie dowolnej konfiguracji zabezpieczeñ. Przedstawimy teraz kilka konfiguracji, które byæ mo¿e zechcesz wykorzystaæ we w³asnej sieci.
Przypominamy jeszcze raz, ¿e jeœli u¿ywasz Windows 98 lub NT 4.0 Service Pack 3 (lub
nowszych wersji), klienty te bêd¹ wysy³aæ Sambie zaszyfrowane has³a. Jeœli Samba nie
zostanie odpowiednio skonfigurowana, bêdzie odmawiaæ po³¹czenia. W tym rozdziale
opiszemy konfigurowanie Samby do obs³ugi zaszyfrowanych hase³ (patrz podrozdzia³
„Has³a”).

Wiemy ju¿, co siê stanie, kiedy podasz listê uprawnionych u¿ytkowników. Mo¿esz
te¿ stworzyæ listê u¿ytkowników nieuprawnionych – takich, którzy nie bêd¹ mogli
uzyskaæ dostêpu do Samby i jej udzia³ów. S³u¿y do tego opcja invalid users.
Zwracaliœmy ju¿ uwagê na najczêstsze zastosowanie tej opcji: w razie korzystania
z sekcji [homes] warto okreœliæ jej globaln¹ wartoœæ, aby uniemo¿liwiæ podszywanie
siê pod ró¿nych u¿ytkowników systemowych i uprzywilejowanych. Na przyk³ad:
[global]
invalid users = root bin daemon adm sync shutdown \
halt mail news uucp operator gopher
auto services = dawid piotr robert
[homes]
browsable = no
writable = yes

W opcji invalid users, podobnie jak w valid users, mo¿na podaæ nazwy grup
zamiast nazw u¿ytkowników. Jeœli u¿ytkownik lub grupa figuruje na obu listach,
wówczas opcja invalid users ma pierwszeñstwo i u¿ytkownik lub grupa nie
uzyska dostêpu do udzia³u.
Przeciwieñstwem tej opcji jest opcja admin users, która umo¿liwia jawne okreœlenie u¿ytkowników maj¹cych uprzywilejowany dostêp do udzia³u (z prawami ro ota). Oto przyk³ad:

Kontrolowanie dostêpu do udzia³ów

151

[sprzedaz]
path = /home/sprzedaz
comment = Dane sprzeda¿y w firmie Fikcja Sp. z o. o.
writeable = yes
valid users = tomek ryszard henryk
admin users = marek

W opcji tej mo¿na podawaæ zarówno nazwy u¿ytkowników, jak i grup. Mo¿esz tak¿e podaæ nazwê grupy sieciowej NIS, poprzedzaj¹c j¹ znakiem @; jeœli Samba nie
znajdzie takiej grupy sieciowej, za³o¿y, ¿e jest to standardowa grupa uniksowa.
Przypisywanie przywilejów administracyjnych ca³ej grupie jest doœæ ryzykowne.
Zespó³ Samby stanowczo odradza u¿ywanie tej opcji, poniewa¿ w gruncie rzeczy
nadaje ona korzystaj¹cym z udzia³u u¿ytkownikom lub grupom uprawnienia roota.
Jeœli chcesz zezwoliæ tylko na odczyt lub na odczyt i zapis udzia³u, mo¿esz podaæ
uprawnionych do tego u¿ytkowników w opcjach read list i write list. Opcje
te mo¿na okreœlaæ dla ka¿dego udzia³u z osobna w celu ograniczenia dostêpu do
udzia³u zapisywalnego lub nadania uprawnieñ do zapisu w udziale przeznaczonym tylko do odczytu. Na przyk³ad:
[sprzedaz]
path = /home/sprzeda¿
comment = Dane sprzeda¿y w firmie Fikcja Sp. z o. o.
read only = yes
write list = tomek ryszard

Opcja write list nie ma wp³ywu na uniksowe prawa dostêpu. Jeœli tworz¹c
udzia³, nie nadasz u¿ytkownikowi prawa zapisu w uniksowym katalogu, wówczas
nie bêdzie móg³ nic zapisaæ w udziale, niezale¿nie od ustawienia opcji write list.

Dostêp goœcinny
Jak wspomnieliœmy wczeœniej, mo¿esz wyznaczyæ u¿ytkowników, którzy bêd¹ mieli goœcinny dostêp do udzia³u. Opcje kontroluj¹ce dostêp goœcinny s¹ nieskomplikowane. Pierwsza, guest account, okreœla konto uniksowe, które bêdzie przypisywane goœciom ³¹cz¹cym siê z serwerem Samby. Domyœln¹ wartoœæ tej opcji okreœla
siê podczas kompilacji; zwykle jest to nobody. Jeœli jednak masz problemy z dostêpem do niektórych us³ug systemowych, mo¿esz zmieniæ konto goœcia na ftp.
Jeœli chcesz pozwoliæ na dostêp do udzia³u tylko goœciom – innymi s³owy, wszystkie
klienty ³¹cz¹ce siê z udzia³em bêd¹ korzystaæ z konta goœcinnego – mo¿esz u¿yæ
opcji guest only w po³¹czeniu z opcj¹ guest ok, jak w poni¿szym przyk³adzie:
[sprzedaz]
path = /home/sprzeda¿
comment = Dane sprzeda¿y w firmie Fikcja Sp. z o. o.
writeable = yes
guest ok = yes
guest account = ftp
guest only = yes

Jeœli zastosujesz tak¹ konfiguracjê, upewnij siê, ¿e wpisa³eœ yes zarówno w opcji
guest ok, jak i guest only. Inaczej Samba nie u¿yje podanego przez ciebie konta
goœcinnego.

152

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Opcje kontroli dostêpu
W tabeli 6.1 zebrano opcje, dziêki którym mo¿na kontrolowaæ dostêp do udzia³ów.
Tabela 6.1. Opcje kontroli dostêpu do udzia³u
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

admin users

£añcuch
(lista nazw
u¿ytkowników)
£añcuch
(lista nazw
u¿ytkowników)
£añcuch
(lista nazw
u¿ytkowników)
£añcuch
(lista nazw
u¿ytkowników)
£añcuch
(lista nazw
u¿ytkowników)

Okreœla listê u¿ytkowników,
którzy mog¹ wykonywaæ
operacje z przywilejami roota
Okreœla listê u¿ytkowników,
którzy mog¹ ³¹czyæ siê
z udzia³em
Okreœla listê u¿ytkowników,
którzy nie mog¹ ³¹czyæ siê
z udzia³em
Podaje listê u¿ytkowników,
którzy mog¹ tylko odczytywaæ
pliki z udzia³u
Podaje listê u¿ytkowników,
którzy mog¹ zapisywaæ pliki
w udziale przeznaczonym tylko
do odczytu
Okreœla maksymaln¹ liczbê
jednoczesnych po³¹czeñ
z udzia³em
Okreœla, ¿e dany udzia³ zezwala
tylko na dostêp goœcinny
Okreœla uniksowe konto, które
bêdzie u¿ywane do dostêpu
goœcinnego

Brak

Udzia³

Brak

Udzia³

Brak

Udzia³

Brak

Udzia³

Brak

Udzia³

0

Udzia³

no

Udzia³

nobody

Udzia³

valid users

invalid
users
read list

write list

max
connections

WartoϾ
liczbowa

guest only
(only guest)
guest
account

WartoϾ
logiczna
£añcuch
(nazwa konta)

admin users
Opcja ta okreœla u¿ytkowników, którzy mog¹ wykonywaæ operacje na plikach tak,
jakby mieli uprawnienia roota. Oznacza to, ¿e mog¹ zmodyfikowaæ lub zniszczyæ pracê innych u¿ytkowników, niezale¿nie od obowi¹zuj¹cych praw dostêpu. Wszystkie
tworzone przez nich pliki bêd¹ w³asnoœci¹ roota i domyœlnej grupy administratorów.
Opcja admin users pozwala u¿ytkownikom komputerów PC na zarz¹dzanie udzia³ami. Odradzamy u¿ywanie tej opcji.
valid users i invalid users
Te dwie opcje pozwalaj¹ wymieniæ u¿ytkowników, którym chcesz przyznaæ dostêp
do konkretnego udzia³u albo odmówiæ dostêpu. Mo¿esz wpisaæ listê nazw u¿yt kowników, oddzielaj¹c je przecinkami, albo podaæ nazwê grupy uniksowej lub grupy NIS, poprzedzaj¹c j¹ znakiem „at” (@).
Nale¿y pamiêtaæ o wa¿nej regule: ka¿dy u¿ytkownik lub grupa z listy invalid
users zawsze spotka siê z odmow¹ dostêpu, nawet jeœli figuruje (w dowolnej for-

Kontrolowanie dostêpu do udzia³ów

153

mie) na liœcie valid users. Domyœlnie obie opcje nie maj¹ przypisanej ¿adnej wartoœci; w takim wypadku dostêp do udzia³u maj¹ dowolni u¿ytkownicy.
read list i write list
Podobnie jak opcje valid users i invalid users, ta para opcji okreœla u¿ytkowników, którym wolno tylko odczytywaæ udzia³y zapisywalne albo zapisywaæ
udzia³y przeznaczone tylko do odczytu. Wartoœci¹ ka¿dej z nich jest lista u¿ytkowników. Opcja read list ma pierwszeñstwo przed innymi uprawnieniami przy znanymi przez Sambê – a tak¿e prawami dostêpu do plików w systemie uniksowym
– i uniemo¿liwia zapisywanie plików w udziale. Opcja write list umo¿liwia zapis nawet wbrew ograniczeniom na³o¿onym przez Sambê, ale nie w sytuacji, gdy
u¿ytkownik nie ma prawa do zapisu pliku w Uniksie. Mo¿esz podaæ nazwê grupy
NIS lub grupy uniksowej, poprzedzaj¹c j¹ znakiem „at” (na przyk³ad @users).
¯adna z tych opcji nie ma wartoœci domyœlnej.
max connections
Opcja ta okreœla maksymaln¹ liczbê jednoczesnych po³¹czeñ z udzia³em. Po prze kroczeniu tego progu wszystkie nastêpne po³¹czenia zostan¹ odrzucone. Domyœln¹
wartoœci¹ tej opcji jest 0, co oznacza, ¿e liczba jednoczesnych po³¹czeñ jest nielimitowana. Mo¿esz okreœliæ wartoœæ tej opcji dla ka¿dego udzia³u z osobna, jak w przyk³adzie poni¿ej:
[ksiegowosc]
max connections = 30

Opcja ta przydaje siê w sytuacji, gdy chcesz ograniczyæ liczbê u¿ytkowników korzystaj¹cych z licencjonowanego programu lub zbioru danych.
guest only
Ta opcja udzia³u (czasem zapisywana w postaci only guest) wymusza po³¹czenie
z udzia³em za poœrednictwem konta u¿ytkownika okreœlonego opcj¹ guest account. Udzia³, do którego stosuje siê opcja guest only, musi zawieraæ jawny wpis
guest ok = yes, gdy¿ w przeciwnym razie Samba j¹ zignoruje. Domyœlna wartoœæ
tej opcji to no.
guest account
Opcja ta okreœla nazwê konta, które bêdzie u¿ywane podczas goœcinnego dostêpu
do udzia³ów Samby. Domyœlna wartoœæ tej opcji zale¿y od systemu, ale czêsto u¿ywa siê konta nobody. Niektóre domyœlne konta u¿ytkowników maj¹ problemy
z ³¹czeniem siê jako goœcie. W takim przypadku zespó³ Samby zaleca zmianê konta
goœcinnego na ftp.

Opcje nazw u¿ytkowników
W tabeli 6.2 zamieœciliœmy dwie dodatkowe opcje, dziêki którym Samba mo¿e skorygowaæ niezgodnoœci miêdzy nazwami u¿ytkowników w Uniksie i Windows.

154

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Tabela 6.2. Opcje nazw u¿ytkowników
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

username
map

£añcuch
(nazwa pliku
wraz ze œcie¿k¹)
WartoϾ
liczbowa

Ustawia nazwê pliku z odwzorowaniami nazw u¿ytkowników

Brak

Globalny

Okreœla liczbê du¿ych liter u¿ywanych podczas dopasowywania
nazwy u¿ytkownika

0

Globalny

username
level

username map
Nazwy u¿ytkowników klientów w sieci SMB mog¹ byæ doœæ d³ugie (do 255 zna ków), natomiast nazwy u¿ytkowników w sieci Uniksa czêsto nie mog¹ przekraczaæ
8 znaków. Oznacza to, ¿e u¿ytkownik mo¿e mieæ inn¹ nazwê w kliencie, a inn¹
(krótsz¹) w serwerze Samby. Mo¿esz uporaæ siê z tym problemem, odwzorowuj¹c
nazwê u¿ytkownika klienta na uniksow¹ nazwê u¿ytkownika, sk³adaj¹c¹ siê co najwy¿ej z oœmiu znaków. Nale¿y w tym celu utworzyæ standardowy plik tekstowy,
którego format omówimy niebawem, a nastêpnie podaæ jego nazwê wraz ze œcie¿k¹
w globalnej opcji username map. Powinieneœ koniecznie ograniczyæ dostêp do tego
pliku; jego w³aœcicielem powinien byæ root, a inni nie mog¹ mieæ prawa do zapisu.
W przeciwnym wypadku ka¿dy u¿ytkownik maj¹cy dostêp do tego pliku móg³by
odwzorowaæ swoj¹ nazwê w kliencie na nazwê uprzywilejowanego u¿ytkownika
serwera Samby.
Opcji tej mo¿esz u¿yæ w nastêpuj¹cy sposób:
[global]
username map = /etc/samba/usermap.txt

Ka¿dy wpis w pliku odwzorowañ powinien sk³adaæ siê z nastêpuj¹cych elementów:
uniksowej nazwy u¿ytkownika, znaku równoœci i jednej lub wielu nazw u¿ytkowników klientów SMB, oddzielonych znakami odstêpu. Zauwa¿, ¿e przy braku odpowiednich instrukcji (na przyk³ad podczas po³¹czenia goœcinnego), Samba bêdzie siê
spodziewa³a, ¿e u¿ytkownik serwera i u¿ytkownik klienta maj¹ to samo has³o.
Mo¿esz tak¿e odwzorowywaæ grupy NT na jedn¹ lub wiêcej grup uniksowych, u¿ywaj¹c znaku @. Oto kilka przyk³adów:
jkowal = JanKowalski
markwiat = MarekKwiatkowski
users = @ksieg

W pliku odwzorowañ nazw mo¿esz te¿ u¿yæ gwiazdki, która odpowiada dowolnej
nazwie u¿ytkownika klienta:
nobody = *

Komentarze mo¿na wpisaæ, zaczynaj¹c liniê od znaku (#) lub (;).
Zauwa¿, ¿e dziêki temu plikowi mo¿esz tak¿e odwzorowaæ jednego u¿ytkownika
uniksowego na drugiego. Uwa¿aj z tym jednak, gdy¿ w takim przypadku Samba

Uwierzytelnianie u¿ytkowników

155

i klient mog¹ nie powiadomiæ u¿ytkownika o dokonaniu odwzorowania, a Samba
bêdzie oczekiwaæ innego has³a.
username level
Klienty SMB (takie jak Windows) czêsto wysy³aj¹ nazwy u¿ytkowników w ¿¹da niach SMB zapisane du¿ymi literami; innymi s³owy, wielkoœæ liter w nazwach u¿ytkowników klientów nie ma znaczenia. W serwerze uniksowym wielkoœæ liter jest
jednak rozró¿niana: u¿ytkownik ANDRZEJ ró¿ni siê od u¿ytkownika andrzej. Domyœlnie Samba rozwi¹zuje ten problem w nastêpuj¹cy sposób:
1. Sprawdza, czy istnieje konto u¿ytkownika o nazwie identycznej z t¹ przys³an¹
przez klienta.
2. Sprawdza nazwê u¿ytkownika zapisan¹ samymi ma³ymi literami.
3. Sprawdza nazwê u¿ytkownika zapisan¹ ma³ymi literami, ale rozpoczynaj¹c¹ siê
du¿¹ liter¹.
Jeœli chcesz, aby Samba wypróbowywa³a wiêcej kombinacji liter du¿ych i ma³ych,
mo¿esz pos³u¿yæ siê opcj¹ konfiguracyjn¹ username level. Opcja ta przyjmuje
liczbê ca³kowit¹, która okreœla, ile liter w nazwie u¿ytkownika nale¿y zamieniæ na
du¿e litery podczas próby po³¹czenia z udzia³em. Opcji tej u¿ywa siê nastêpuj¹co:
[global]
username level = 3

W tym przyk³adzie Samba wypróbuje wszystkie permutacje nazw u¿ytkownika,
które da siê utworzyæ z wykorzystaniem trzech du¿ych liter. Im wiêksza wartoœæ
opcji, tym wiêcej obliczeñ bêdzie musia³a wykonaæ Samba w celu dopasowania nazwy u¿ytkownika i tym d³u¿ej bêdzie trwa³o uwierzytelnianie.

Uwierzytelnianie u¿ytkowników
Teraz pora na omówienie uwierzytelniania u¿ytkowników przez Sambê. Ka¿dy
u¿ytkownik, który próbuje po³¹czyæ siê z udzia³em nie dopuszczaj¹cym goœcinnego
dostêpu, musi podaæ has³o, aby pomyœlnie nawi¹zaæ po³¹czenie. Operacje, które
Samba przeprowadza na tym haœle – a w konsekwencji strategia uwierzytelniania
u¿ytkowników – zale¿¹ od opcji konfiguracyjnej security. Obecnie istniej¹ cztery
poziomy zabezpieczeñ, które Samba mo¿e obs³ugiwaæ w swojej sieci: poziom udzia³u, u¿ytkownika, serwera i domeny.
Zabezpieczenia na poziomie udzia³u
Ka¿dy udzia³ w grupie roboczej jest chroniony oddzielnym has³em. Ka¿dy, kto
zna has³o dostêpu do udzia³u, mo¿e z tego udzia³u korzystaæ.
Zabezpieczenia na poziomie u¿ytkownika
Ka¿dy udzia³ w grupie roboczej jest skonfigurowany tak, aby pozwalaæ na do stêp tylko okreœlonym u¿ytkownikom. Po wstêpnym nawi¹zaniu po³¹czenia
z zasobem, serwer Samby weryfikuje u¿ytkowników i ich has³a, zanim przyzna
im dostêp do udzia³u.

156

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Zabezpieczenia na poziomie serwera
Podobne do zabezpieczeñ na poziomie u¿ytkownika, ale Samba u¿ywa oddzielnego serwera SMB, który zatwierdza u¿ytkowników i ich has³a przed przyznaniem dostêpu do udzia³u.
Zabezpieczenia na poziomie domeny
Samba staje siê cz³onkiem domeny Windows i uwierzytelnia klienty za poœrednictwem podstawowego kontrolera domeny (PDC). Po uwierzytelnieniu
u¿ytkownik otrzymuje specjalny ¿eton, który umo¿liwia mu korzystanie ze wszystkich udzia³ów, do których ma odpowiednie uprawnienia. Dziêki temu ¿etonowi,
PDC nie bêdzie musia³ ponownie weryfikowaæ has³a u¿ytkownika za ka¿dym razem, kiedy ten spróbuje po³¹czyæ siê z innym udzia³em w domenie.
Omówione wy¿ej mechanizmy bezpieczeñstwa mo¿na w³¹czyæ za pomoc¹ globalnej opcji security (patrz tabela 6.3).
Tabela 6.3. Opcja security
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

security

domain, server,
share lub user

Okreœla poziom bezpieczeñstwa serwera Samby

user
(Samba 2.0)
lub share
(Samba 1.9)

Globalny

Zabezpieczenia na poziomie udzia³u
Jeœli korzystasz z zabezpieczeñ na poziomie udzia³u, ka¿dy udzia³ ma jedno lub kilka zwi¹zanych z nim hase³. W stosunku do innych trybów bezpieczeñstwa nie ma
tutaj ¿adnych dodatkowych ograniczeñ co do tego, kto mo¿e korzystaæ z udzia³u, jeœli tylko ta osoba zna poprawne has³o. Udzia³y czêsto maj¹ kilka ró¿nych hase³. Jedno z nich mo¿e umo¿liwiaæ dostêp tylko do odczytu, inne dawaæ prawo do zapisu
i tak dalej. Bezpieczeñstwo jest zachowywane dopóty, dopóki nieautoryzowani
u¿ytkownicy nie odkryj¹ has³a udzia³u, do którego nie powinni mieæ dostêpu.
Systemy OS/2 i Windows 95/98 umo¿liwiaj¹ zabezpieczanie swoich zasobów na poziomie udzia³u. W Windows 95/98 trzeba otworzyæ okno dialogowe Sieæ z Panelu sterowania i klikn¹æ kartê Kontrola dostêpu. Nastêpnie nale¿y zaznaczyæ pole opcji Kontrola dostêpu na poziomie zasobów (co spowoduje usuniêcie zaznaczenia z pola Kontrola dostêpu na poziomie u¿ytkownika) i klikn¹æ przycisk OK (patrz rysunek 6.1).
Nastêpnie kliknij prawym przyciskiem myszy dowolny zasób – na przyk³ad dysk
twardy lub CD-ROM – i wybierz z menu polecenie W³aœciwoœci. Uka¿e siê okno dialogowe z w³aœciwoœciami zasobu. Wybierz kartê Udostêpnianie na górze okna dialogowego i zaznacz pole opcji Udostêpniony jako. Tutaj mo¿esz okreœliæ, jak
wspó³dzielony zasób bêdzie widziany przez ró¿nych u¿ytkowników. Mo¿esz tak¿e
zdecydowaæ, czy zasób bêdzie przeznaczony tylko do odczytu, do odczytu i zapisu,
czy te¿ bêdzie pozwala³ na zapis w zale¿noœci od podanego has³a.

Uwierzytelnianie u¿ytkowników

157

Rysunek 6.1. Ustawianie zabezpieczeñ na poziomie udzia³u

Byæ mo¿e s¹dzisz, ¿e taki model bezpieczeñstwa niezbyt przystaje do Samby. I masz
racjê. W rzeczywistoœci, jeœli ustawisz opcjê security = share w pliku konfiguracyjnym, Samba nadal bêdzie uwierzytelniaæ u¿ytkowników na podstawie ich nazw
i hase³ zapisanych w systemowych plikach hase³. Œciœlej rzecz bior¹c, kiedy klient
za¿¹da po³¹czenia przy zabezpieczeniu na poziomie udzia³u, Samba podejmie nastêpuj¹ce czynnoœci:
1. Kiedy nadejdzie ¿¹danie po³¹czenia, Samba przyjmie has³o i nazwê u¿ytkownika
klienta (jeœli zostanie przes³ana).
2. Jeœli udzia³ jest przeznaczony tylko dla goœci (opcja guest only), u¿ytkownik
natychmiast uzyska dostêp z uprawnieniami okreœlonymi przez opcjê guest
account; Samba nie bêdzie weryfikowaæ has³a.
3. W przypadku innych udzia³ów Samba do³¹czy nazwê u¿ytkownika do listy u¿ytkowników, którzy mog¹ korzystaæ z udzia³u. Nastêpnie spróbuje zweryfikowaæ
has³o przes³ane wraz z nazw¹ u¿ytkownika. Jeœli operacja ta siê powiedzie, Samba przyzna dostêp do udzia³u z uprawnieniami przypisanymi danemu u¿ytkownikowi. U¿ytkownik nie bêdzie ponownie uwierzytelniany, chyba ¿e w definicji
udzia³u znajduje siê opcja revalidate = yes.
4. Jeœli uwierzytelnianie siê nie powiedzie, Samba spróbuje zweryfikowaæ has³o,
korzystaj¹c z listy skompilowanej podczas wczeœniejszych prób nawi¹zania
po³¹czenia, a tak¿e z opcji okreœlonych w definicjach udzia³ów w pliku konfiguracyjnym. Jeœli has³o nie odpowiada ¿adnej nazwie u¿ytkownika (okreœlonej
w systemowym pliku hase³, zwykle /etc/passwd), u¿ytkownik nie uzyska dostêpu
do udzia³u pod t¹ nazw¹ u¿ytkownika.

158

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

5. Je¿eli jednak w definicji udzia³u ustawiono opcje guest ok lub public, u¿ytkownik uzyska dostêp z uprawnieniami okreœlonymi opcj¹ guest account.
W pliku konfiguracyjnym mo¿esz podaæ u¿ytkowników, którzy powinni zostaæ
wstêpnie wpisani na listê kontroli dostêpu na poziomie udzia³u, u¿ywaj¹c opcji
username, jak w poni¿szym przyk³adzie:
[global]
security = share
[ksiegowosc1]
path = /home/samba/ksiegowosc1
guest ok = no
writable = yes
username = dawid, piotr, andrzej

W takim przypadku, gdy u¿ytkownik spróbuje po³¹czyæ siê z udzia³em, Samba zweryfikuje przes³ane has³o w oparciu o w³asn¹ listê u¿ytkowników, a tak¿e o has³a
u¿ytkowników dawid, piotr i andrzej. Jeœli znajdzie pasuj¹ce has³o, po³¹czenie
zostanie zatwierdzone i u¿ytkownik uzyska dostêp do udzia³u. W przeciwnym razie po³¹czenie z tym zasobem nie powiedzie siê.
Opcje zabezpieczeñ na poziomie udzia³u
W tabeli 6.4 wymienione s¹ opcje zwykle kojarzone z zabezpieczeniami na poziomie
udzia³u.
Tabela 6.4. Opcje kontroli dostêpu na poziomie udzia³u
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

only user

WartoϾ
logiczna

no

Udzia³

username
(user lub
users)

£añcuch
(lista nazw
u¿ytkowników)

Okreœla, czy jedynymi
dopuszczalnymi nazwami
u¿ytkownika bêd¹ te okreœlone
w opcji username
Podaje listê u¿ytkowników,
których has³a bêd¹ porównywane
z has³em dostarczonym przez
klienta

Brak

Udzia³

only user
Ta opcja okreœla, czy Samba zezwoli na po³¹czenia z udzia³em (jeœli wykorzystywane s¹ zabezpieczenia na poziomie udzia³u) tylko tym u¿ytkownikom, którzy zostali
okreœleni w opcji username, a nie tym zgromadzonym na wewnêtrznej liœcie Samby. Domyœlna wartoœæ tej opcji to no. Mo¿esz zmieniæ j¹ dla ka¿dego udzia³u z osobna, jak w poni¿szym przyk³adzie:
[global]
security = share
[dane]
username = andrzej, piotr, weronika
only user = yes

Uwierzytelnianie u¿ytkowników

159

username
Opcja ta wymienia u¿ytkowników, których has³a Samba porówna z has³em dostarczonym przez klienta. Zwykle u¿ywa siê jej po to, aby pozwoliæ klientom (korzystaj¹cym z zabezpieczeñ na poziomie udzia³u) na po³¹czenie siê z konkretnym zasobem tylko na podstawie odpowiedniego has³a – takiego, które odpowiada has³u
okreœlonego u¿ytkownika.
[global]
security = share
[dane]
username = andrzej, piotr, anna

Nie zalecamy u¿ywania tej opcji, chyba ¿e konfigurujesz serwer Samby do pracy
z zabezpieczeniami na poziomie udzia³u.

Zabezpieczenia na poziomie u¿ytkownika
Preferowany model bezpieczeñstwa w Sambie to zabezpieczenia na poziomie u¿ytkownika. W tym rodzaju zabezpieczenia ka¿demu udzia³owi przypisuje siê u¿ytkowników, którzy mog¹ z niego korzystaæ. Kiedy u¿ytkownik za¿¹da po³¹czenia z udzia³em,
Samba uwierzytelnia go, porównuj¹c jego nazwê i has³o z list¹ autoryzowanych
u¿ytkowników w pliku konfiguracyjnym oraz z plikiem hase³ serwera Samby. Jak
wspomniano wczeœniej w tym rozdziale, jednym ze sposobów ograniczenia dostêpnoœci udzia³u jest u¿ycie opcji valid users:
[global]
security = user
[ksiegowosc1]
writable = yes
valid users = robert, jacek, sylwia

Ka¿dy z wymienionych u¿ytkowników bêdzie móg³ po³¹czyæ siê z udzia³em, jeœli
dostarczone przez niego has³o bêdzie odpowiadaæ temu przechowywanemu w bazie hase³ serwera. Jeœli wstêpne uwierzytelnienie powiedzie siê, u¿ytkownik nie bêdzie musia³ ponownie wpisywaæ has³a, aby po³¹czyæ siê z udzia³em, o ile nie ustawiono opcji revalidate = yes.
Has³a mog¹ byæ przesy³ane do serwera Samby w postaci zaszyfrowanej lub niezaszyfrowanej. Jeœli w twojej sieci znajduj¹ siê systemy obu typów, powinieneœ upewniæ siê, ¿e has³a poszczególnych u¿ytkowników s¹ przechowywane zarówno w tradycyjnej bazie hase³, jak i w bazie zaszyfrowanych hase³ Samby. Dziêki temu autoryzowani u¿ytkownicy bêd¹ mogli uzyskaæ dostêp do swoich udzia³ów z klienta dowolnego typu*. Jeœli jednak zale¿y ci szczególnie na bezpieczeñstwie sieci, zalecamy
stosowanie hase³ zaszyfrowanych i rezygnacjê z hase³ niezaszyfrowanych. W podrozdziale „Has³a” wyjaœnimy, jak u¿ywaæ hase³ obu typów.

* To, ¿e w sieci mog¹ znajdowaæ siê zarówno klienty u¿ywaj¹ce hase³ zaszyfrowanych, jak i niezaszyfrowanych, jest jeszcze jednym powodem, dla którego Samba pozwala do³¹czaæ (lub nie) ró¿ne opcje do pliku
konfiguracyjnego w zale¿noœci od systemu operacyjnego klienta lub nazwy komputera.

160

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Zabezpieczenia na poziomie serwera
Kontrola dostêpu na poziomie serwera przypomina kontrolê na poziomie u¿ytkownika. Jednak¿e w tym przypadku Samba deleguje uwierzytelnianie hase³ do serwera
hase³ SMB, zwykle innego serwera Samby lub serwera Windows NT dzia³aj¹cego
jako podstawowy kontroler domeny. Zauwa¿, ¿e Samba nadal przechowuje swoj¹
listê udzia³ów i ich konfiguracji w pliku smb.conf. Kiedy klient próbuje nawi¹zaæ
po³¹czenie z udzia³em, Samba sprawdza, czy u¿ytkownik jest rzeczywiœcie uprawniony do korzystania z udzia³u. Nastêpnie próbuje zweryfikowaæ has³o, ³¹cz¹c siê
z serwerem hase³ SMB za poœrednictwem znanego protoko³u i przedstawiaj¹c do zatwierdzenia nazwê u¿ytkownika i has³o. Jeœli has³o zostanie zaakceptowane, Samba
nawi¹¿e sesjê z klientem. Konfiguracjê tê przedstawia rysunek 6.2.

Rysunek 6.2. Typowa konfiguracja zabezpieczeñ na poziomie serwera

Mo¿esz skonfigurowaæ Sambê do wspó³pracy z serwerem hase³ (kiedy u¿ywasz zabezpieczeñ na poziomie serwera) za pomoc¹ globalnej opcji password server, jak
w poni¿szym przyk³adzie:
[global]
security = server
password server = FENIKS120 HYDRA134

Zauwa¿, ¿e w opcji password server mo¿esz podaæ nazwy kilku komputerów.
Samba bêdzie ³¹czyæ siê z kolejnym serwerem na liœcie, jeœli pierwszy wybrany bêdzie niedostêpny. Serwery w opcji password server okreœla siê za pomoc¹ nazw
NetBIOS-owych, a nie nazw DNS lub równowa¿nych im adresów IP. Jeœli zaœ któryœ
z serwerów odrzuci podane has³o, po³¹czenie nie powiedzie siê – Samba nie bêdzie
³¹czyæ siê z nastêpnym serwerem.
Jedno zastrze¿enie: mimo ¿e korzystasz z tej opcji, nadal musisz mieæ konto reprezentuj¹ce u¿ytkownika w serwerze Samby. A to dlatego, ¿e Unix wymaga nazwy u¿ytkownika podczas wykonywania ró¿nych operacji wejœcia-wyjœcia. Aby omin¹æ ten
problem, najczêœciej zak³ada siê konto u¿ytkownika w serwerze Samby i wy³¹cza
has³o tego konta przez zast¹pienie go gwiazdk¹ (*) w systemowym pliku hase³ (na
przyk³ad /etc/passwd).

Uwierzytelnianie u¿ytkowników

161

Zabezpieczenia na poziomie domeny
Kontrola dostêpu na poziomie domeny przypomina kontrolê na poziomie u¿ytkownika. Jednak¿e w tym wypadku Samba dzia³a jako cz³onek domeny Windows. Jak
dowiedzia³eœ siê w rozdziale 1, w ka¿dej domenie znajduje siê kontroler domeny –
zwykle serwer Windows NT œwiadcz¹cy us³ugi uwierzytelniania hase³. Dziêki kontrolerowi domeny grupa robocza dysponuje autorytatywnym serwerem hase³. Kontrolery domeny przechowuj¹ nazwy u¿ytkowników i has³a we w³asnym module
bezpieczeñstwa (Security Authentication Module, SAM) i uwierzytelniaj¹ u¿ytkowników, gdy ci loguj¹ siê po raz pierwszy lub chc¹ skorzystaæ z udzia³ów innego komputera.
Jak wspomniano ju¿ w tym rozdziale, Samba mo¿e obs³ugiwaæ zabezpieczenia na
poziomie u¿ytkownika, ale opcja ta jest uniksocentryczna i zak³ada uwierzytelnianie u¿ytkowników z wykorzystaniem uniksowych plików hase³. Jeœli uniksowy
komputer wchodzi w sk³ad domeny NIS lub NIS+, Samba bêdzie uwierzytelniaæ
u¿ytkowników w oparciu o wspó³dzielony plik hase³, na sposób typowo uniksowy.
Samba umo¿liwia zatem dostêp do domeny NIS lub NIS+ z poziomu Windows.
Oczywiœcie, pojêcie domeny NIS i domeny Windows to dwie ró¿ne rzeczy.
Dziêki zabezpieczeniom na poziomie domeny mo¿emy wykorzystaæ rodzimy mechanizm bezpieczeñstwa Windows NT. Metoda taka ma wiele zalet:
· Umo¿liwia znacznie œciœlejsz¹ integracjê z NT: w opcjach pliku smb.conf maj¹cych
zwi¹zek z obs³ug¹ domen jest znacznie mniej „prowizorki” ni¿ w innych opcjach
odpowiadaj¹cych za wspó³pracê z Windows. Dziêki temu mo¿na wykorzystaæ w
szerszym zakresie narzêdzia do zarz¹dzania systemem NT, na przyk³ad program
User Manager for Domains, który pozwala personelowi wsparcia technicznego
traktowaæ serwery Samby jak komputery NT.
· Lepsza integracja oznacza poprawki w protokole i kodzie, dziêki którym zespó³
programistów Samby mo¿e ³atwiej œledziæ ewoluuj¹ce implementacje systemu
NT. NT Service Pack 4 koryguje pewne b³êdy protoko³u, a œciœlejsza integracja
u³atwia wyœledzenie tych zmian i zaadaptowanie siê do nich.
· Zmniejsza siê obci¹¿enie podstawowego kontrolera domeny, poniewa¿ niepotrzebne jest jedno ze sta³ych po³¹czeñ miêdzy nim a serwerem Samby. W przeciwieñstwie do protoko³u wykorzystywanego w razie u¿ycia opcji security =
server, serwer Samby mo¿e korzystaæ ze zdalnych wywo³añ procedury (Remote
Procedure Call, RPC) tylko wtedy, gdy chce uzyskaæ informacje uwierzytelniaj¹ce.
Nie musi w tym celu utrzymywaæ sta³ego po³¹czenia.
· Wreszcie, mechanizm domenowego uwierzytelniania NT zwraca pe³ny zbiór
atrybutów u¿ytkownika, nie tylko informacjê o powodzeniu lub b³êdzie. W sk³ad
tych atrybutów wchodz¹ d³u¿sze, sieciowe wersje uniksowego identyfikatora
u¿ytkownika, grupy NT i inne informacje, w tym:
· nazwa u¿ytkownika,
· nazwisko,
· opis,

162

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny
· identyfikator bezpieczeñstwa (domenowe rozszerzenie uniksowego identyfi-

katora u¿ytkownika),
· przynale¿noœæ do grup NT,
· dozwolone godziny logowania oraz informacja o tym, czy u¿ytkownik bêdzie
zmuszony do natychmiastowego wylogowania siê,
· stacje robocze, z których mo¿e korzystaæ u¿ytkownik,
· data wygaœniêcia konta,
· katalog macierzysty,
· skrypt logowania,
· profil,
· typ konta.
· Twórcy Samby wykorzystali zabezpieczenia na poziomie domeny w wersji 2.0.4
Samby do pó³automatycznego dodawania i usuwania u¿ytkowników domenowych.
Model ten umo¿liwia te¿ stosowanie dodatkowych funkcji znanych z NT, takich jak
obs³uga list kontroli dostêpu i zmienianie praw dostêpu do plików z klienta.
Zalet¹ takiego podejœcia jest zmniejszenie nak³adu pracy administratora: wystarczy
synchronizowaæ jedn¹ bazê informacji uwierzytelniaj¹cych. Lokalne administrowanie serwerem Samby sprowadza siê do tworzenia katalogów roboczych dla u¿yt kowników oraz dodawania wpisów z identyfikatorami i grupami u¿ytkowników do
pliku /etc/passwd.
Dodawanie serwera Samby do domeny Windows NT
Jeœli masz ju¿ domenê Windows NT, mo¿esz ³atwo dodaæ do niej serwer Samby.
Najpierw musisz zatrzymaæ demony Samby. Nastêpnie dodaj serwer Samby do domeny NT z podstawowego kontrolera domeny, u¿ywaj¹c programu Windows NT
Server Manager for Domains. Kiedy program zapyta o typ komputera, wybierz
„Windows NT Workstation or Server” i podaj NetBIOS-ow¹ nazwê serwera Samby.
W ten sposób utworzysz konto na serwerze NT.
Nastêpnie wygeneruj has³o dla komputera za pomoc¹ narzêdzia smbpasswd, które
omówiono dok³adnie w nastêpnym podrozdziale. Jeœli na przyk³ad nasza domena
ma nazwê PROSTA, a podstawowy kontroler domeny Windows NT to beowulf,
powinieneœ wydaæ nastêpuj¹ce polecenie na serwerze Samby:
smbpasswd -j PROSTA -r beowulf

Teraz dopisz poni¿sze opcje do sekcji [global] pliku smb.conf i ponownie uru chom demony Samby.
[global]
security = domain
domain logins = yes
workgroup = PROSTA
password server = beowulf

Samba powinna teraz korzystaæ z zabezpieczeñ na poziomie domeny. Opcjê domain logins wyjaœnimy szczegó³owo dalej w tym rozdziale.

Has³a

163

Has³a
Has³a w Sambie to sprawa naje¿ona trudnoœciami – do tego stopnia, ¿e niemal zawsze stanowi¹ pierwszy powa¿ny problem po zainstalowaniu Samby i ich w³aœnie dotyczy zdecydowana wiêkszoœæ pytañ w grupach dyskusyjnych poœwiêconych Sambie. W poprzednich rozdzia³ach unikaliœmy stosowania hase³, umieszczaj¹c w ka¿dym pliku konfiguracyjnym opcjê guest ok, co pozwala³o na nawi¹zywanie
po³¹czeñ bez uwierzytelniania hase³. W tym momencie musimy jednak przyjrzeæ siê
bli¿ej dzia³aniu Samby, aby dowiedzieæ siê, co siê dzieje w sieci.
Has³a wysy³ane przez poszczególne klienty mog¹ byæ albo zaszyfrowane, albo niezaszyfrowane. Zaszyfrowane has³a s¹ oczywiœcie du¿o bezpieczniejsze. Niezaszyfrowane has³o mo¿na ³atwo odczytaæ za pomoc¹ programu przechwytuj¹cego pakiety, na przyk³ad zmodyfikowanej wersji programu tcpdump, której u¿yliœmy
w rozdziale 3, Konfigurowanie klientów Windows. Szyfrowanie hase³ jest zale¿ne od
systemu operacyjnego klienta ³¹cz¹cego siê z serwerem Samby. Tabela 6.5 pokazuje,
które odmiany systemu Windows szyfruj¹ swoje has³a przed wys³aniem ich do
uwierzytelnienia przez podstawowy kontroler domeny. Jeœli twój klient nie dzia³a
pod kontrol¹ Windows, sprawdŸ w dokumentacji, czy szyfruje has³a SMB.
Tabela 6.5. Systemy operacyjne Windows i szyfrowanie hase³
System operacyjny

Has³a

Windows 95
Windows 95 z uaktualnieniem SMB
Windows 98
Windows NT 3.x
Windows NT 4.0 przed SP3
Windows NT 4.0 po SP3

Niezaszyfrowane
Zaszyfrowane
Zaszyfrowane
Niezaszyfrowane
Niezaszyfrowane
Zaszyfrowane

W u¿yciu s¹ dwie ró¿ne metody szyfrowania: jedna dla klientów Windows 95 i 98,
wykorzystuj¹ca algorytm LAN Managera Microsoftu, a druga dla klientów i ser werów Windows NT. Windows 95 i 98 u¿ywaj¹ starszej metody szyfrowania, odziedziczonej po oprogramowaniu sieciowym LAN Manager, natomiast serwery i klienty Windows NT korzystaj¹ z nowszych algorytmów szyfrowania.
Jeœli Samba obs³uguje zaszyfrowane has³a, wówczas przechowuje je w pliku o na zwie smbpasswd. Domyœlnie plik ten znajduje siê w katalogu private dystrybucji Samby (/usr/local/samba/private). Klient równie¿ przechowuje zaszyfrowane has³o u¿ytkownika w swoim systemie. Has³o pisane jawnym tekstem nie jest przechowywane
w ¿adnym systemie. Oba systemy automatycznie szyfruj¹ ustawione lub zmienione
has³o za pomoc¹ tego samego algorytmu.
Kiedy klient za¿¹da dostêpu do serwera SMB obs³uguj¹cego zaszyfrowane has³a
(jak na przyk³ad Samba lub Windows NT), dwa komputery prowadz¹ negocjacje nastêpuj¹co:

164

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

1. Klient próbuje wynegocjowaæ protokó³ z serwerem.
2. Serwer okreœla protokó³ i zaznacza, ¿e obs³uguje zaszyfrowane has³a. W tym momencie przesy³a losowo wygenerowany, 8-bitowy ³añcuch wyzwania.
3. Klient u¿ywa ³añcucha wyzwania jako klucza do wtórnego zaszyfrowania swojego (ju¿ zaszyfrowanego) has³a, korzystaj¹c z algorytmu zdefiniowanego przez
wynegocjowany protokó³. Nastêpnie wysy³a wynik do serwera.
4. Serwer robi to samo z zaszyfrowanym has³em przechowywanym w swojej bazie
danych. Jeœli wyniki s¹ zgodne, oznacza to, ¿e has³a s¹ równowa¿ne, wiêc u¿ytkownik zostaje uwierzytelniony.
Zauwa¿, ¿e choæ pierwotne has³a nie s¹ u¿ywane w procesie uwierzytelniania, musisz strzec zaszyfrowanych hase³ z pliku smbpasswd przed nieautoryzowanymi u¿ytkownikami. Jeœli has³a te zostan¹ ujawnione, nieautoryzowany u¿ytkownik mo¿e
w³amaæ siê do systemu, odtwarzaj¹c etapy opisanego algorytmu. Zaszyfrowane
has³a s¹ równie podatne na przejêcie, jak has³a niezaszyfrowane – w œwiecie kryptografii o takich danych mówi siê, ¿e s¹ równowa¿ne jawnemu tekstowi. Oczywiœcie, powinieneœ upewniæ siê, ¿e klienty równie¿ chroni¹ swoje has³a równowa¿ne jawnemu tekstowi.
Aby skonfigurowaæ Sambê do obs³ugi zaszyfrowanych hase³, powinieneœ dopisaæ
nastêpuj¹ce linie do pliku smb.conf. Zauwa¿, ¿e jawnie podajemy po³o¿enie pliku
hase³ Samby:
[global]
security = user
encrypt passwords = yes
smb passwd file = /usr/local/samba/private/smbpasswd

Samba nie zaakceptuje jednak ¿adnych u¿ytkowników, dopóki nie zainicjujesz pliku smbpasswd.
Wy³¹czanie zaszyfrowanych hase³ w kliencie
Choæ ju¿ od dziesiêcioleci stosuje siê uniksowe metody uwierzytelniania, w tym
zdalny dostêp przez Internet za pomoc¹ poleceñ telnet i rlogin, dobrze znane s¹ ich
s³abe punkty. Has³a s¹ wysy³ane przez Internet jawnym tekstem i mog¹ zostaæ przechwycone z pakietów TCP. Jeœli jednak uwa¿asz, ¿e twoja sieæ jest bezpieczna
i chcesz u¿ywaæ standardowego uwierzytelniania wszystkich klientów z wykorzystaniem pliku /etc/passwd, mo¿esz tak zrobiæ, ale bêdziesz musia³ wy³¹czyæ szyfrowanie hase³ w tych klientach Windows, które domyœlnie z niego korzystaj¹.
W tym celu musisz zmodyfikowaæ rejestr Windows, instaluj¹c dwa pliki w ka¿dym
systemie. W zale¿noœci od platformy bêd¹ to pliki NT4_PlainPassword.reg lub
Win95_PlainPassword.reg. Instalacja polega na skopiowaniu odpowiednich plików
.reg z katalogu /docs dystrybucji Samby na dyskietkê dosow¹ i uruchomieniu ich za
pomoc¹ polecenia Uruchom w menu Start. Plik .reg przeznaczony dla Windows 95
dzia³a tak¿e w Windows 98.
Po ponownym uruchomieniu komputera klient nie bêdzie szyfrowa³ swoich hase³
przed wys³aniem ich do serwera. Oznacza to, ¿e has³a równowa¿ne jawnemu teksto-

Has³a

165

wi bêd¹ widoczne w pakietach TCP rozg³aszanych w sieci. Podkreœlmy jeszcze raz, ¿e
jest to niewskazane, jeœli nie jesteœ ca³kowicie pewien, ¿e twoja sieæ jest bezpieczna.
Jeœli has³a nie s¹ szyfrowane, powinieneœ zaznaczyæ to w pliku konfiguracyjnym
Samby:
[global]
security = user
encrypt passwords = no

Plik smbpasswd
Samba przechowuje zaszyfrowane has³a w pliku o nazwie smbpasswd, który domyœlnie znajduje siê w katalogu /usr/local/samba/private. Plik smbpasswd nale¿y chroniæ
dok³adnie tak samo, jak plik passwd; powinien znajdowaæ siê w katalogu, w którym
prawo do odczytu i zapisu ma tylko u¿ytkownik root. Inni u¿ytkownicy w ogóle nie
powinni mieæ prawa do odczytu tego katalogu. Oprócz tego sam plik smbpasswd powinien byæ dostêpny tylko dla roota.
Zanim zaczniesz korzystaæ z zaszyfrowanych hase³, musisz utworzyæ wpis dla ka¿dego uniksowego u¿ytkownika w pliku smbpasswd. Struktura tego pliku przypomina nieco uniksowy plik passwd, ale ma inne pola. Na rysunku 6.3 przedstawiono
sk³adniê wpisu w pliku smbpasswd; w rzeczywistoœci wpis ten zajmuje tylko jedn¹ liniê pliku, któr¹ z³amano na potrzeby rysunku.

Rysunek 6.3. Struktura wpisu w pliku smbpasswd (w rzeczywistoœci jedna linia)

Oto opis poszczególnych pól:
Nazwa u¿ytkownika
Jest to nazwa u¿ytkownika konta. Jest pobierana bezpoœrednio z systemowego
pliku hase³.
Identyfikator u¿ytkownika
Jest to identyfikator u¿ytkownika konta. Podobnie jak nazwa, jest pobierany bezpoœrednio z systemowego pliku hase³ i musi odpowiadaæ u¿ytkownikowi, któ rego tam reprezentuje.

166

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Suma mieszana has³a w formacie LAN Managera
Jest to 32-bitowa sekwencja szesnastkowa reprezentuj¹ca has³o u¿ywane przez
klienty Windows 95 i 98. Otrzymuje siê j¹ przez zaszyfrowanie ³añcucha KGS!@#$%
za pomoc¹ 56-bitowego algorytmu DES, z wykorzystaniem klucza w postaci
dwukrotnie powtórzonego has³a u¿ytkownika (które wyrównuje siê do d³ugoœci
14 bajtów i przekszta³ca na du¿e litery). Jeœli u¿ytkownik obecnie nie ma has³a,
suma mieszana bêdzie sk³adaæ siê z tekstu NO PASSWORD uzupe³nionego znakami X a¿ do koñca pola. Jeœli zaœ has³o zostanie wy³¹czone, suma bêdzie siê sk³adaæ
z 32 znaków X. Samba nie zezwoli na dostêp u¿ytkownikowi bez has³a, chyba ¿e
ustawiona jest opcja null passwords.
Suma mieszana has³a w formacie NT
Jest to 32-bitowa sekwencja szesnastkowa reprezentuj¹ca has³o u¿ywane przez
klienty Windows NT. Otrzymuje siê j¹ przez zaszyfrowanie has³a u¿ytkownika
(reprezentowanego przez 16-bitow¹ sekwencjê Unikodu w formacie „m³odszy
bajt – starszy bajt”) za pomoc¹ sumy MD4. Has³o nie jest wstêpnie zamieniane na
du¿e litery.
Znaczniki konta
Pole to sk³ada siê z 11 znaków ujêtych w nawiasy kwadratowe ([]). Mo¿e zawieraæ poni¿sze znaki, wystêpuj¹ce w dowolnej kolejnoœci, i powinno byæ uzupe³nione spacjami.
U To konto jest standardowym kontem u¿ytkownika.
D To konto jest obecnie wy³¹czone i Samba nie powinna zezwalaæ na logowanie.
N To konto nie ma przypisanego has³a.
W Jest to konto zaufanej stacji roboczej, którego mo¿na u¿yæ do skonfigurowania Samby jako podstawowego kontrolera domeny, gdy chcemy zezwoliæ
komputerom NT na do³¹czanie siê do jej domeny.
Czas ostatniej modyfikacji
To pole sk³ada siê ze znaków LCT-, po których nastêpuje szesnastkowa reprezentacja liczby sekund, które up³ynê³y od pocz¹tku epoki (pó³noc 1 stycznia 1970
roku) do momentu ostatniej zmiany has³a.
Dodawanie wpisów do pliku smbpasswd
Istnieje kilka sposobów na dodanie nowego wpisu do pliku smbpasswd:
· Mo¿esz u¿yæ programu smbpasswd z opcj¹ -a, aby automatycznie dodaæ dowolnego u¿ytkownika, który obecnie ma standardowe konto uniksowe w serwerze.
Program ten znajduje siê w katalogu /usr/local/samba/bin.
· Mo¿esz u¿yæ pliku wykonywalnego addtosmbpass, znajduj¹cego siê w katalogu
/usr/local/samba/bin. Jest to prosty skrypt awk, który analizuje systemowy plik hase³
i wydobywa z niego nazwê i identyfikator u¿ytkownika dla ka¿dego wpisu, który
chcesz dodaæ do pliku hase³ SMB. Nastêpnie umieszcza w pozosta³ych polach
wpisu domyœlne wartoœci, które mo¿esz póŸniej zmieniæ za pomoc¹ programu
smbpasswd. Aby skorzystaæ z tego skryptu, prawdopodobnie bêdziesz musia³

Has³a

167

zmieniæ jego pierwsz¹ liniê, która musi wskazywaæ po³o¿enie programu awk
w twoim systemie.
· Gdyby oba powy¿sze sposoby zawiod³y, mo¿esz rêcznie utworzyæ domyœlny wpis
w pliku smbpasswd. Wpis powinien mieœciæ siê w jednej linii. Ka¿de pole powinno
byæ oddzielone dwukropkiem, a ca³y wpis powinien wygl¹daæ mniej wiêcej tak:
dawid:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:
[U
]:LCT-00000000:

Wpis sk³ada siê z nazwy i identyfikatora u¿ytkownika (jak w systemowym pliku
hase³), dwóch zbiorów zawieraj¹cych po 32 znaki X, znaczników konta i czasu
ostatniej modyfikacji. Kiedy dodasz ten wpis, bêdziesz musia³ zmieniæ has³o
u¿ytkownika za pomoc¹ programu smbpasswd.
Zmienianie zaszyfrowanego has³a
Programu smbpasswd mo¿esz u¿yæ tak¿e wtedy, gdy chcesz zmieniæ zaszyfrowane
has³o w pliku smbpasswd. Zauwa¿, ¿e program do zmieniania hase³ ma tak¹ sam¹ nazwê, co plik hase³, wiêc nie pomyl jednego z drugim.
Program smbpasswd dzia³a niemal identycznie jak program passwd, s³u¿¹cy do zmieniania hase³ uniksowych. Program prosi po prostu o wprowadzenie starego has³a
(o ile nie jesteœ u¿ytkownikiem uprzywilejowanym), a nastêpnie o dwukrotne wpisanie nowego. Znaki sk³adaj¹ce siê na has³a nie s¹ wyœwietlane na ekranie.
# smbpasswd dawid
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user dawid

Po wydaniu tego polecenia mo¿esz zajrzeæ do pliku smbpasswd i upewniæ siê, czy
sumy mieszane has³a w formacie LAN Managera i NT zosta³y zapisane w odpowiednich polach. Kiedy w bazie danych znajd¹ siê has³a u¿ytkowników, bêd¹ oni
mogli ³¹czyæ siê z udzia³ami, u¿ywaj¹c zaszyfrowanych hase³!

Synchronizowanie hase³
Gdy musisz pos³ugiwaæ siê zarówno zwyk³¹, jak i zaszyfrowan¹ wersj¹ tego samego
has³a, wprowadzanie w nich jakichkolwiek zmian mo¿e byæ k³opotliwe. Na szczêœcie Samba ma pewne mo¿liwoœci synchronizowania hase³. Istniej¹ opcje konfiguracyjne, które pozwalaj¹ na automatyczne uaktualnianie zwyk³ego has³a uniksowego,
kiedy ulegnie zmianie jego zaszyfrowana wersja. Aby uaktywniæ tê funkcjê, nale¿y
ustawiæ globaln¹ opcjê konfiguracyjn¹ unix password sync:
[global]
encrypt passwords = yes
smb passwd file = /usr/local/samba/private/smbpasswd
unix password sync = yes

Po w³¹czeniu tej opcji Samba bêdzie próbowa³a zmieniæ zwyk³e has³o u¿ytkownika
(jako root), kiedy program smbpasswd bêdzie zmienia³ jego zaszyfrowan¹ wersjê.
¯eby to zadzia³a³o, nale¿y jednak odpowiednio ustawiæ dwie inne opcje.

168

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

£atwiejsza w u¿yciu jest opcja passwd program. W opcji tej wystarczy podaæ polecenie Uniksa, które s³u¿y do zmieniania standardowego has³a systemowego. Jej domyœlna wartoœæ to /bin/passwd %u. W niektórych wersjach Uniksa nie trzeba nic
zmieniaæ, inne – jak Linux Red Hat – u¿ywaj¹ œcie¿ki /usr/bin/passwd. Co wiêcej, byæ
mo¿e w przysz³oœci zechcesz wykorzystaæ inny program lub skrypt. Za³ó¿my, ¿e do
zmiany has³a u¿ytkownika chcesz u¿yæ skryptu zmienhaslo. Jak pamiêtasz,
zmienna %u reprezentuje bie¿¹c¹ uniksow¹ nazwê u¿ytkownika. Oto przyk³ad:
[global]
encrypt passwords = yes
smb passwd file = /usr/local/samba/private/smbpasswd
unix password sync = yes
passwd program = zmienhaslo %u

Warto zaznaczyæ, ¿e ten program zostanie wywo³any z przywilejami roota, jeœli
opcja unix password sync zostanie ustawiona na yes, poniewa¿ Samba nie zawsze dysponuje poprzednim has³em u¿ytkownika w postaci niezaszyfrowanej.
Nieco trudniejsza do skonfigurowania jest opcja passwd chat. Opcja ta dzia³a podobnie jak uniksowy skrypt chat. Okreœla ona ci¹g wysy³anych ³añcuchów i odpowiedzi programu wskazanego przez opcjê passwd program. Oto domyœlna wartoœæ opcji passwd chat; ogranicznikami s¹ spacje miêdzy poszczególnymi grupami znaków:
passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\n *changed*

Pierwsza grupa reprezentuje odpowiedŸ, której powinien udzieliæ program s³u¿¹cy
do zmieniania has³a. Zauwa¿, ¿e mo¿e ona zawieraæ wieloznaczniki (*), które umo¿liwiaj¹ uogólnienie sekwencji wymiany danych w celu obs³ugi programów generuj¹cych podobne wyniki. Zapis *old*password* oznacza, ¿e Samba bêdzie czekaæ, a¿ program do zmieniania has³a wygeneruje dowoln¹ liniê z literami old, po
których nastêpuj¹ litery password, bez uwzglêdniania ¿adnych znaków po lewej
lub prawej stronie ani w œrodku. Odpowiednio poinstruowana, Samba bêdzie nieprzerwanie czekaæ na pasuj¹cy ³añcuch znaków. Jeœli nie otrzyma oczekiwanej odpowiedzi, zmiana has³a siê nie powiedzie.
Druga grupa informuje, co Samba powinna odes³aæ, kiedy otrzyma ³añcuch znaków
pasuj¹cy do pierwszej grupy. W tym przypadku jest to %o\n. OdpowiedŸ ta w rzeczywistoœci sk³ada siê z dwóch elementów: zmienna %o reprezentuje stare has³o,
a \n to znak nowej linii. W rezultacie spowoduje to „wpisanie” starego has³a na standardowym wejœciu programu do zmieniania has³a i „naciœniêcie” klawisza [Enter].
Trzecia grupa reprezentuje kolejn¹ odpowiedŸ, a czwarta dane odsy³ane programowi do zmieniania has³a (taki wzorzec odpowiedŸ-odes³anie danych ci¹gnie siê nieprzerwanie w ka¿dym standardowym skrypcie chat). Skrypt koñczy dzia³anie wtedy, kiedy dopasowany zostanie ostatni wzorzec*.
* Ta wersja nie bêdzie dzia³aæ w Linuksie Red Hat, w którym program do zmieniania has³a zwykle odpowiada „All authentication tokens updated successfully” zamiast „Password changed”. Dalej w tym podrozdziale zamieœcimy odpowiedni¹ poprawkê.

Has³a

169

Dopasowanie ³añcuchów przesy³anych przez program do zmieniania has³a u³atwiaj¹ znaki wymienione w tabeli 6.6. Do sformu³owania swojej odpowiedzi mo¿esz
natomiast u¿yæ znaków z tabeli 6.7.
Tabela 6.6. Znaki u¿ywane w definiowaniu oczekiwanych odpowiedzi

Znak

Definicja

*
" "

Zero lub wiêcej wyst¹pieñ dowolnego znaku
Pozwala na dopasowywanie ³añcuchów zawieraj¹cych spacje. Gwiazdki s¹ nadal
uznawane za wieloznaczniki, nawet wtedy, gdy znajduj¹ siê w cudzys³owie,
a pust¹ odpowiedŸ reprezentuje pusty cudzys³ów

Tabela 6.7. Znaki u¿ywane w definiowaniu odsy³anych danych
Znak
Definicja
%o
%n
\n
\r
\t
\s

Stare has³o u¿ytkownika
Nowe has³o u¿ytkownika
Znak nowej linii
Znak powrotu karetki
Znak tabulacji
Spacja

Mo¿esz na przyk³ad ustawiæ swój skrypt zmiany has³a na podany poni¿ej. Obs³uguje on scenariusze, w których nie musisz wpisywaæ starego has³a. Rozpoznaje te¿
³añcuch all tokens updated successfully wysy³any w Linuksie Red Hat:
passwd chat = *new*password* %n\n *new*password* %n\n *success*

Domyœlna sekwencja wymiany danych powinna byæ wystarczaj¹ca w wielu odmianach Uniksa. Jeœli jest inaczej, podczas tworzenia nowego skryptu wymiany danych
z programem do zmieniania has³a mo¿e ci siê przydaæ opcja passwd chat debug.
Opcja ta powoduje rejestrowanie wszystkich wymian danych w trakcie zmieniania
has³a. Przyjmuje ona wartoœci logiczne, jak w przyk³adzie poni¿ej:
[global]
encrypt passwords = yes
smb passwd file = /usr/local/samba/private/smbpasswd
unix password sync = yes
passwd chat debug = yes
log level = 100

Kiedy uaktywnisz diagnozowanie wymiany danych podczas zmieniania has³a,
wszystkie operacje wejœcia-wyjœcia wykonywane wówczas przez Sambê bêd¹ zapisywane w dziennikach Samby z poziomem diagnostycznym równym 100 (dlatego
ustawiliœmy now¹ wartoœæ opcji log level). Poniewa¿ takie ustawienie mo¿e
znacznie zwiêkszyæ iloœæ wpisów w dziennikach, bardziej efektywne mo¿e okazaæ
siê napisanie w³asnego skryptu (i wskazanie go w opcji passwd program zamiast
programu /bin/passwd), który bêdzie rejestrowa³ zdarzenia zachodz¹ce podczas wymiany danych. Nale¿y te¿ zabezpieczyæ pliki dziennika za pomoc¹ odpowiednich

170

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

praw dostêpu i usun¹æ je natychmiast po uzyskaniu poszukiwanych informacji, poniewa¿ bêd¹ one zawieraæ has³a pisane jawnym tekstem.
System operacyjny, w którym dzia³a Samba, mo¿e mieæ okreœlone wymagania co do
poprawnoœci hase³, aby uodporniæ je na ataki s³ownikowe i inne podobne. U¿ytkownicy zmieniaj¹cy has³o powinni byæ informowani o takich ograniczeniach.
Wczeœniej stwierdziliœmy, ¿e synchronizacja hase³ jest niepe³na, poniewa¿ zaszyfrowane has³a w pliku smbpasswd nie s¹ uaktualniane, kiedy u¿ytkownicy zmieniaj¹
swoje standardowe has³a uniksowe. Istniej¹ ró¿ne metody obejœcia tego ograniczenia, w tym u¿ycie NIS oraz bezp³atnych implementacji standardu wymiennych
modu³ów uwierzytelniaj¹cych (pluggable authentication modules, PAM), ale ¿adna
z nich nie rozwi¹zuje wszystkich problemów. Po ukazaniu siê Windows 2000, Samba bêdzie d¹¿yæ do zgodnoœci z Ligthweight Directory Access Protocol (LDAP),
dziêki czemu kwestie synchronizacji hase³ odejd¹ w przesz³oœæ.

Opcje konfiguracji hase³
Opcje wymienione w tabeli 6.8 umo¿liwiaj¹ skonfigurowanie obs³ugi hase³ w Sambie.
Tabela 6.8. Opcje konfiguracji hase³
Opcja
Parametry
Funkcja
encrypt
passwords
unix
password
sync

WartoϾ
logiczna
WartoϾ
logiczna

passwd chat

£añcuch
(polecenia
wymiany
danych)
WartoϾ
logiczna

passwd chat
debug

password
level

£añcuch
(polecenie
Uniksa)
WartoϾ
liczbowa

update
encrypted

WartoϾ
logiczna

passwd
program

W³¹cza obs³ugê zaszyfrowanych
hase³
Jeœli jest ustawiona na yes,
Samba uaktualnia standardow¹
uniksow¹ bazê hase³, kiedy
u¿ytkownik zmieni swoje
zaszyfrowane has³o
Ustawia sekwencjê poleceñ, które
bêd¹ wysy³ane do programu
zmieniaj¹cego has³o
Wysy³a komunikaty diagnostyczne
dotycz¹ce procesu zmiany has³a
do plików dziennika z poziomem
równym 100
Okreœla program s³u¿¹cy do
zmieniania hase³

WartoϾ
domyœlna

Zasiêg

no

Globalny

no

Globalny

Patrz podrozdzia³
poœwiêcony
tej opcji
no

Globalny

/bin/
passwd
%u
Brak

Globalny

Ustawia liczbê du¿ych liter
permutowanych podczas
dopasowywania has³a przes³anego
przez klienta
Jeœli jest ustawiona na yes, Samba no
uaktualnia plik zaszyfrowanych
hase³, kiedy klient po³¹czy siê z
udzia³em za pomoc¹ jawnego
has³a

Globalny

Globalny

Globalny

Has³a

171

Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

null
passwords

WartoϾ
logiczna

no

Globalny

smb passwd
file

£añcuch
(pe³na
nazwa wraz
ze œcie¿k¹)

Jeœli jest ustawiona na yes, Samba zezwala na dostêp u¿ytkownikom maj¹cym puste has³o
Okreœla nazwê pliku z zaszyfrowanymi has³ami

hosts equiv

£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)
£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)

use rhosts

Okreœla nazwê pliku zawieraj¹cego
nazwy hostów i u¿ytkowników,
którzy mog¹ siê ³¹czyæ bez podawania has³a
Okreœla nazwê pliku .rhosts, który
pozwala u¿ytkownikom na ³¹czenie siê bez podawania has³a

Globalny
/usr
local/
samba/
private/
smbpasswd
Brak
Globalny

Brak

Globalny

unix password sync
Globalna opcja unix password sync pozwala Sambie na uaktualnianie standardowego uniksowego pliku hase³, kiedy u¿ytkownik zmieni swoje zaszyfrowane
has³o. Zaszyfrowane has³a s¹ przechowywane w serwerze Samby w pliku smbpasswd, który domyœlnie znajduje siê w katalogu /usr/local/samba/private. Mo¿esz uak tywniæ tê funkcjê w nastêpuj¹cy sposób:
[global]
unix password sync = yes

Jeœli opcja ta jest w³¹czona, Samba zmienia zaszyfrowane has³o, a oprócz tego próbuje zmieniæ standardowe has³o uniksowe, przekazuj¹c nazwê u¿ytkownika i nowe
has³o programowi okreœlonemu opcj¹ passwd program (opisan¹ wczeœniej). Za uwa¿, ¿e Samba nie zawsze ma dostêp do jawnego has³a u¿ytkownika, wiêc pro gram do zmieniania has³a musi zostaæ wywo³ywany z konta roota*. Jeœli z jakiekolwiek przyczyny zmiana has³a uniksowego nie powiedzie siê, has³o SMB równie¿ nie
ulegnie zmianie.
encrypt passwords
Globalna opcja encrypt passwords sprawia, ¿e Samba uwierzytelnia klientów za
pomoc¹ hase³ zaszyfrowanych, a nie pisanych jawnym tekstem. Samba bêdzie spodziewaæ siê zaszyfrowanych hase³, jeœli opcja ta zostanie ustawiona na yes:
encrypt passwords = yes

* Dzieje siê tak dlatego, ¿e uniksowy program passwd, który jest najczêstszym podmiotem tej operacji, pozwala rootowi na zmianê has³a u¿ytkownika bez wpisywania obecnego has³a tego u¿ytkownika.

172

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Domyœlnie Windows NT 4.0 z Service Pack 3 oraz Windows 98 transmituj¹ has³a
w postaci zaszyfrowanej. Jeœli chcesz w³¹czyæ obs³ugê zaszyfrowanych hase³, musisz przygotowaæ plik smbpasswd, wype³niaj¹c go nazwami u¿ytkowników, którzy
bêd¹ uwierzytelniani z wykorzystaniem zaszyfrowanych hase³ (patrz wczeœniejszy
podrozdzia³ „Plik smbpasswd”). Oprócz tego Samba musi znaæ po³o¿enie pliku smbpasswd; jeœli nie znajduje siê on w domyœlnym katalogu (zwykle /usr/local/samba/private/smbpasswd), mo¿esz jawnie podaæ jego po³o¿enie za pomoc¹ opcji smb
passwd file.
Jeœli chcesz, mo¿esz u¿yæ opcji update encrypted, aby wymusiæ uaktualnianie
zaszyfrowanych hase³ w pliku smbpasswd za ka¿dym razem, kiedy klient po³¹czy siê
za pomoc¹ niezaszyfrowanego has³a.
Aby zapewniæ uwierzytelnianie z wykorzystaniem zaszyfrowanych hase³ wszyst kim hostom, które tego wymagaj¹, mo¿na skorzystaæ z opcji include. Dziêki niej
mo¿esz utworzyæ odrêbne pliki konfiguracyjne, które bêd¹ wczytywane na podstawie typu systemu operacyjnego (%a) lub nazwy klienta (%m). Takie pliki konfiguracyjne zale¿ne od hosta lub systemu operacyjnego mog¹ zawieraæ opcjê encrypted
passwords = yes, która bêdzie uaktywniana tylko podczas ³¹czenia siê tych klientów z serwerem.
passwd program
Opcja passwd program s³u¿y do okreœlenia programu w uniksowym serwerze
Samby, który bêdzie uaktualnia³ standardowy systemowy plik hase³, kiedy Samba
uaktualnia plik hase³ zaszyfrowanych. Opcja ta domyœlnie wskazuje na standardowy program passwd, zwykle po³o¿ony w katalogu /bin. Zwykle u¿ywa siê tu zmiennej %u, oznaczaj¹cej u¿ytkownika zmieniaj¹cego has³o. Obs³uga wejœcia i wyjœcia
programu jest sterowana przez opcjê passwd chat. Opcjê tê opisano szczegó³owo
wczeœniej w podrozdziale „Synchronizowanie hase³”.
passwd chat
Ta opcja okreœla seriê ³añcuchów: wysy³ane dane-odpowiedŸ, przypominaj¹c¹ uniksowy skrypt chat i u¿ywan¹ do wspó³pracy z programem zmieniaj¹cym has³a w serwerze Samby. Opcjê tê opisano szczegó³owo w podrozdziale „Synchronizowanie
hase³”.
passwd chat debug
Jeœli opcja passwd chat debug jest ustawiona na yes, podczas wymiany danych
przy zmianie has³a wszystkie informacje wys³ane lub otrzymane przez Sambê s¹ zapisywane w pliku dziennika. Poniewa¿ poziom diagnostyczny tych informacji jest
równy 100, bêdziesz musia³ u¿yæ opcji log level = 100, aby zosta³y one zarejestrowane. Opcjê tê opisano szczegó³owo w podrozdziale „Synchronizowanie hase³”.
Pamiêtaj, ¿e jeœli ustawisz tê opcjê, has³a pisane jawnym tekstem bêd¹ widoczne
w plikach dziennika, co mo¿e stanowiæ zagro¿enie bezpieczeñstwa, jeœli odpowiednio nie zabezpieczysz tych plików.

Has³a

173

password level
W protokole SMB has³a niezaszyfrowane (pisane jawnym tekstem) s¹ wysy³ane du¿ymi literami, podobnie jak nazwy u¿ytkowników. Wielu u¿ytkowników Uniksa
wybiera jednak has³a sk³adaj¹ce siê zarówno z ma³ych, jak i du¿ych liter. Samba domyœlnie próbuje dopasowaæ has³a pisane tylko ma³ymi literami, nie zamieniaj¹c
pierwszej litery na du¿¹.
Podobnie jak username level, opcja password level s³u¿y do wypróbowania
ró¿nych permutacji has³a z du¿ymi literami. Przyjmuje ona parametr w postaci liczby ca³kowitej, który okreœla, ile liter has³a nale¿y zamieniæ na du¿e podczas próby
nawi¹zania po³¹czenia z udzia³em. Mo¿esz u¿yæ jej w nastêpuj¹cy sposób:
[global]
password level = 3

W tym przyk³adzie Samba wypróbuje wszystkie permutacje has³a, które mo¿na
uzyskaæ przy u¿yciu trzech du¿ych liter. Im wiêksza liczba, tym wiêcej obliczeñ, które Samba bêdzie musia³a wykonaæ podczas dopasowywania has³a i tym d³u¿szy
czas nawi¹zywania po³¹czenia z udzia³em.
update encrypted
Dla sieci przechodz¹cych na zaszyfrowane has³a Samba oferuje opcjê, która powinna pomóc w tym procesie. Opcjê update encrypted mo¿esz uaktywniæ w nastêpuj¹cy sposób:
[global]
update encrypted = yes

Opcja ta informuje Sambê, ¿e nale¿y utworzyæ zaszyfrowan¹ wersjê uniksowego
has³a ka¿dego u¿ytkownika, kiedy ten ³¹czy siê z udzia³em. Jeœli w³¹czysz tê opcjê,
musisz ustawiæ opcjê encrypt passwords na no, aby klienty mog³y przekazywaæ
Sambie jawne has³a s³u¿¹ce do uaktualnienia plików hase³. Kiedy ka¿dy u¿ytkownik co najmniej raz po³¹czy siê z serwerem, mo¿esz ustawiæ opcjê encrypt passwords = yes i od tej chwili u¿ywaæ tylko zaszyfrowanych hase³. Aby opcja ta zadzia³a³a, u¿ytkownik musi mieæ ju¿ poprawny wpis w pliku smbpasswd.
null passwords
Ta globalna opcja informuje Sambê, czy nale¿y zezwoliæ na dostêp u¿ytkownikom,
których konta maj¹ ustawione puste has³o (zaszyfrowane b¹dŸ nie). Jej domyœlna
wartoœæ to no. Mo¿esz zmieniæ j¹ nastêpuj¹co:
null passwords = yes

Stanowczo odradzamy w³¹czanie tej opcji, chyba ¿e zdajesz sobie sprawê z zagro¿eñ, które stwarza. Na przyk³ad umo¿liwia ona dostêp do kont systemowych (takich jak bin), które maj¹ ustawione puste has³a w systemowym pliku hase³.

174

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

smb passwd file
Ta globalna opcja okreœla po³o¿enie bazy danych z zaszyfrowanymi has³ami. Domyœlnie jest to /usr/local/samba/private/smbpasswd. Mo¿esz zmieniæ j¹ w nastêpuj¹cy sposób:
[global]
smb passwd file = /etc/smbpasswd

Takie po³o¿enie jest charakterystyczne dla wielu dystrybucji Linuksa Red Hat.
hosts equiv
Ta globalna opcja okreœla nazwê standardowego uniksowego pliku hosts.equiv, który
pozwala hostom i u¿ytkownikom na dostêp do udzia³u bez podawania has³a.
Mo¿esz okreœliæ po³o¿enie tego pliku w nastêpuj¹cy sposób:
[global]
hosts equiv = /etc/hosts.equiv

Opcja ta domyœlnie nie okreœla ¿adnego pliku hosts.equiv. Poniewa¿ korzystanie z takiego pliku wi¹¿e siê z ogromnym zagro¿eniem bezpieczeñstwa, odradzamy stosowanie tej opcji, o ile nie jesteœ absolutnie pewien, ¿e twoja sieæ jest zabezpieczona.
use rhosts
Ta globalna opcja okreœla nazwê standardowego uniksowego pliku .rhosts, który pozwala zdalnym hostom na dostêp do udzia³u bez podawania has³a. Mo¿esz okreœliæ
po³o¿enie tego pliku w nastêpuj¹cy sposób:
[global]
use rhosts = /home/dawid/.rhosts

Opcja ta domyœlnie nie okreœla ¿adnego pliku .rhosts. Podobnie jak w przypadku
omówionej wy¿ej opcji hosts equiv, korzystanie z takiego pliku zagra¿a bezpieczeñstwu sieci. Odradzamy u¿ycie tej opcji, o ile nie jesteœ absolutnie pewien, ¿e
twoja sieæ jest dobrze zabezpieczona.

Domeny Windows
Kiedy wiesz ju¿ wszystko o u¿ytkownikach i has³ach w serwerze Samby, mo¿emy
pokazaæ ci, jak skonfigurowaæ Sambê jako podstawowy kontroler domeny dla komputerów Windows 95/98 i NT. Do czego przydaj¹ siê domeny? OdpowiedŸ prawdopodobnie nie bêdzie oczywista, dopóki nie zajrzysz za kulisy, zw³aszcza w przypadku Windows 95/98.
Przypomnij sobie, ¿e w tradycyjnych grupach roboczych Windows 95/98 po prostu
akceptuje wszystkie wpisywane podczas logowania nazwy u¿ytkownika i has³a.
W Windows 95/98 nie ma nieautoryzowanych u¿ytkowników; kiedy loguje siê
nowy u¿ytkownik, system operacyjny prosi go o wprowadzenie nowego has³a i od
tego momentu uwierzytelnia go za pomoc¹ tego has³a. Windows 95/98 u¿ywa
wprowadzonego has³a tylko wtedy, gdy próbujesz po³¹czyæ siê z udzia³em.
Logowania domenowe przypominaj¹ natomiast uniksowe mechanizmy bezpieczeñstwa. Aby zalogowaæ siê w domenie, musisz podaæ poprawn¹ nazwê u¿ytkow-

Domeny Windows

175

nika i has³o, które s¹ nastêpnie weryfikowane w bazie hase³ podstawowego kontrolera domeny. Jeœli has³o jest b³êdne, u¿ytkownik jest o tym natychmiast informowany i nie mo¿e zalogowaæ siê w domenie.
Oto dodatkowe zalety takiego rozwi¹zania: kiedy pomyœlnie zalogujesz siê w domenie, bêdziesz mia³ dostêp do wszystkich udzia³ów domeny, do których ci go przyznano, bez potrzeby ponownego uwierzytelniania siê. Mówi¹c œciœlej, podstawowy
kontroler domeny przyznaje klientowi ¿eton, który upowa¿nia do korzystania ze
wszystkich udzia³ów bez ponownego kontaktowania siê z kontrolerem. Choæ prawdopodobnie nie zauwa¿ysz ¿adnej zmiany, mo¿e to dobroczynnie wp³yn¹æ na ruch
w sieci (jeœli zechcesz, mo¿esz wy³¹czyæ tê funkcjê za pomoc¹ opcji revalidate).

Konfigurowanie Samby do obs³ugi logowania w domenach Windows
Jeœli chcesz, aby Samba dzia³a³a jako podstawowy kontroler domeny, u¿yj poni¿szych
sekcji w celu skonfigurowania Samby i jej klientów do obs³ugi logowañ domenowych.
Jeœli chcia³byœ dowiedzieæ siê wiêcej o konfigurowaniu domen, przeczytaj plik
DOMAINS.TXT z dystrybucji Samby.

Klienty Windows 95/98
Konfigurowanie Samby jako podstawowego kontrolera domeny dla klientów Windows 95/98 rozczarowuje sw¹ prostot¹. Po stronie serwera wystarczy, aby spe³nione by³y nastêpuj¹ce warunki:
· Samba jest jedynym podstawowym kontrolerem domeny w bie¿¹cej grupie roboczej.
· W sieci dostêpny jest serwer WINS – albo serwer Samby, albo serwer Windows
NT (wiêcej informacji o WINS znajdziesz w rozdziale 7, Drukowanie i odwzorowywanie nazw).
· Samba korzysta z zabezpieczeñ na poziomie u¿ytkownika (to znaczy nie ceduje
uwierzytelniania hase³ na inny komputer). Nie powinieneœ u¿ywaæ zabezpieczeñ
na poziomie domeny, jeœli sama Samba dzia³a jako PDC.
Teraz powinieneœ dopisaæ nastêpuj¹ce opcje do pliku konfiguracyjnego Samby:
[global]
workgroup = PROSTA_GRUPA
domain logons = yes
# Koniecznie ustaw zabezpieczenia na poziomie u¿ytkownika!
security = user
# Samba musi zostaæ podstawowym kontrolerem domeny!
os level = 34
local master = yes
preferred master = yes
domain master = yes

176

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Opcja domain logons umo¿liwia Sambie przeprowadzanie domenowego uwie rzytelniania w imieniu tych klientów, które tego za¿¹daj¹. Nazwa domeny bêdzie
taka sama, jak nazwa grupy wymienionej w pliku konfiguracyjnym Samby, w tym
przypadku: PROSTA_GRUPA.
Nastêpnie musisz utworzyæ niezapisywalny, niepubliczny, nieprzegl¹dalny udzia³
dyskowy o nazwie [netlogon] (niewa¿ne, na który katalog bêdzie wskazywa³ ten
udzia³, jeœli tylko bêd¹ mog³y siê z nim po³¹czyæ wszystkie klienty Windows):
[netlogon]
comment = Us³uga logowania domenowego
path = /export/samba/logon
public = no
writeable = no
browsable = no

Klienty Windows NT
Jeœli w twojej sieci s¹ klienty Windows NT, musisz wykonaæ kilka dodatkowych
czynnoœci, aby Samba mog³a zostaæ ich podstawowym kontrolerem domeny.
Aby korzystaæ z funkcji PDC dla klientów Windows NT, bêdziesz musia³ u¿yæ Samby
w wersji 2.1 lub nowszej. Wczeœniejsze wersje umo¿liwia³y tylko ograniczone uwierzytelnianie klientów NT. Kiedy oddawaliœmy tê ksi¹¿kê do druku, najnowsz¹ wersj¹
Samby by³a wersja 2.0.5, ale wersjê 2.1 mo¿na by³o pobraæ za pomoc¹ CVS. Instrukcje
dotycz¹ce pobierania wersji alfa Samby znajdziesz w dodatku E, Pobieranie Samby za pomoc¹ systemu CVS.

Jak poprzednio, musisz upewniæ siê, ¿e Samba jest podstawowym kontrolerem domeny w bie¿¹cej grupie roboczej i korzysta z zabezpieczeñ na poziomie u¿ytkownika. Musisz jednak tak¿e w³¹czyæ obs³ugê zaszyfrowanych hase³. Innymi s³owy,
zmieñ sekcjê [global] z poprzedniego przyk³adu tak, aby zawiera³a opcjê encrypted passwords = yes, jak pokazano ni¿ej:
[global]
workgroup = PROSTA_GRUPA
encrypted passwords = yes
domain logons = yes
security = user

Tworzenie kont zaufania dla klientów NT
Ten etap obowi¹zuje tylko klienty Windows NT. Wszystkie klienty NT ³¹cz¹ce siê
z podstawowym kontrolerem domeny korzystaj¹ z kont zaufania (trust accounts).
Konta ta pozwalaj¹ komputerowi na logowanie siê w samym kontrolerze domeny
(a nie w jednym z jego udzia³ów), co oznacza, ¿e PDC mo¿e zaufaæ wszystkim
przysz³ym po³¹czeniom nawi¹zywanym przez u¿ytkowników tego klienta. Prak tycznie rzecz bior¹c, konto zaufania jest równowa¿ne kontu u¿ytkownika. W rze czywistoœci bêdziemy u¿ywaæ standardowych uniksowych kont u¿ytkownika do
emulowania kont zaufania w serwerze Samby.

Domeny Windows

177

Nazwa u¿ywana przy logowaniu siê na koncie zaufania to nazwa komputera
z do³¹czonym znakiem dolara. Jeœli na przyk³ad nasz komputer Windows NT nosi nazwê chimera, wówczas konto zaufania bêdzie mia³o nazwê chimera$. Pocz¹tkowo
has³em konta jest po prostu nazwa komputera pisana ma³ymi literami. Aby zasymulowaæ konto zaufania w serwerze Samby, musisz utworzyæ konto u¿ytkownika o nazwie
odpowiadaj¹cej nazwie komputera oraz dodaæ zaszyfrowane has³o do pliku smbpasswd.
Uporajmy siê z pierwszym zadaniem. Musimy tylko zmodyfikowaæ plik /etc/passwd
w sposób pozwalaj¹cy na obs³ugê konta zaufania; nie musimy tworzyæ katalogu macierzystego ani wyznaczaæ pow³oki u¿ytkownika, poniewa¿ zale¿y nam tylko na
umo¿liwieniu logowania. Mo¿emy wiêc utworzyæ „fikcyjne” konto za pomoc¹ nastêpuj¹cego wpisu:
chimera$:*:1000:900:Konto zaufania:/dev/null:/dev/null

Zauwa¿, ¿e wy³¹czyliœmy has³o, umieszczaj¹c w jego polu gwiazdkê. Zrobiliœmy tak
dlatego, ¿e w³aœciwe has³o bêdzie przechowywane w pliku smbpasswd, a nie chcemy,
aby ktoœ zalogowa³ siê na tym koncie za poœrednictwem telnetu. W rzeczywistoœci,
jedyn¹ wartoœci¹ u¿yt¹ tutaj oprócz nazwy konta jest identyfikator u¿ytkownika na
potrzeby bazy zaszyfrowanych hase³ (1000). Liczba ta musi odpowiadaæ niepowtarzalnemu identyfikatorowi zasobu w serwerze NT i nie mo¿e kolidowaæ z innym
identyfikatorem zasobu. Zatem ¿aden inny u¿ytkownik ani grupa NT nie powinna
odpowiadaæ tej liczbie, gdy¿ spowodowa³oby to wyst¹pienie b³êdu sieciowego.
Nastêpnie dodaj zaszyfrowane has³o za pomoc¹ polecenia smbpasswd, jak ni¿ej:
# smbpasswd -a -m chimera
Added user chimera$
Password changed for user chimera$

Opcja -m informuje, ¿e generowane jest komputerowe konto zaufania. Program smbpasswd automatycznie ustawi pocz¹tkowe zaszyfrowane has³o na nazwê komputera
pisan¹ ma³ymi literami – nie musisz go wpisywaæ. Kiedy u¿ywasz tej opcji w linii
polecenia, nie wpisuj znaku dolara za nazw¹ komputera – zostanie on dodany automatycznie. Po dodaniu zaszyfrowanego has³a Samba bêdzie mog³a obs³ugiwaæ logowania domenowe klientów NT.

Konfigurowanie logowania domenowego w klientach Windows
Kiedy Samba jest ju¿ skonfigurowana do obs³ugi logowania domenowego, musisz
ustawiæ klienty Windows tak, aby po uruchomieniu logowa³y siê w domenie.
Windows 95/98
W Windows 95/98 mo¿na to zrobiæ nastêpuj¹co: otwórz okno dialogowe Sieæ z Panelu sterowania, zaznacz pozycjê Klient sieci Microsoft Networks i kliknij przycisk
W³aœciwoœci. Powinno ukazaæ siê okno dialogowe podobne do tego z rysunku 6.4.
Zaznacz pole wyboru Zaloguj do domeny Windows NT na górze okna dialogowego
i wpisz nazwê grupy roboczej, która jest wymieniona w pliku konfiguracyjnym
Samby jako domena Windows NT. Nastêpnie kliknij przycisk OK i ponownie uruchom komputer.

178

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Rysunek 6.4. Konfigurowanie logowania domenowego w kliencie Windows 95/98
Jeœli Windows poskar¿y siê, ¿e jesteœ ju¿ zalogowany w domenie, prawdopodobnie
masz aktywne po³¹czenie z udzia³em w grupie roboczej (na przyk³ad mapowanym
dyskiem sieciowym). Po prostu od³¹cz tymczasowo zasób, klikaj¹c jego ikonê prawym
przyciskiem myszy i wybieraj¹c z menu polecenie Od³¹cz.

Kiedy Windows ponownie siê uruchomi, powinieneœ zobaczyæ standardowe okno
logowania z dodatkowym polem na nazwê domeny. Nazwa ta powinna byæ ju¿
wpisana, wiêc wystarczy wprowadziæ has³o i klikn¹æ przycisk OK. W tym momencie Windows skontaktuje siê z podstawowym kontrolerem domeny (Samb¹), aby
sprawdziæ, czy has³o jest poprawne (mo¿esz zajrzeæ do plików dziennika, aby
sprawdziæ przebieg tego procesu). Jeœli wszystko dzia³a, gratulujemy! Poprawnie
skonfigurowa³eœ Sambê jako podstawowy kontroler domeny dla komputerów Windows 95/98, a twój klient pomyœlnie nawi¹za³ po³¹czenie.
Windows NT 4.0
Aby skonfigurowaæ logowanie domenowe w Windows NT, otwórz okno dialogowe
Sieæ w Panelu sterowania Windows NT. Pierwsza wyœwietlona karta umo¿liwia
zmianê identyfikacji komputera.
Kliknij przycisk Zmieñ, a uka¿e siê okno dialogowe z rysunku 6.5. W tym oknie
mo¿esz skonfigurowaæ klienta Windows NT jako cz³onka domeny, zaznaczaj¹c
opcjê Domeny w ramce Jest cz³onkiem. Nastêpnie wpisz nazwê domeny, w której
powinien logowaæ siê klient; powinna to byæ nazwa grupy roboczej, która jest wymieniona w pliku konfiguracyjnym Samby. Nie zaznaczaj pola wyboru Utwórz konto komputera w domenie – Samba nie obs³uguje jeszcze tej funkcji.

Domeny Windows

179

Rysunek 6.5. Konfigurowanie logowania domenowego w kliencie Windows NT
Podobnie jak w Windows 95/98, jeœli Windows NT poskar¿y siê, ¿e jesteœ ju¿ zalogowany w domenie, prawdopodobnie masz aktywne po³¹czenie z udzia³em w grupie roboczej (na przyk³ad mapowanym dyskiem sieciowym). Od³¹cz tymczasowo zasób,
klikaj¹c jego ikonê prawym przyciskiem myszy i wybieraj¹c z menu polecenie Od³¹cz.

Kiedy klikniesz przycisk OK, Windows powinno wyœwietliæ niewielkie okno dialogowe witaj¹ce ciê w domenie. W tym momencie bêdziesz musia³ ponownie uruchomiæ komputer, który nastêpnie powinien wyœwietliæ ekran logowania podobny do
tego w klientach Windows 95/98. Mo¿esz teraz zalogowaæ siê na dowolne istniej¹ce
ju¿ konto w serwerze Samby, które jest skonfigurowane tak, ¿e akceptuje logowanie.
SprawdŸ, czy wybra³eœ w³aœciw¹ domenê w oknie logowania Windows NT. Zbudowanie listy dostêpnych domen mo¿e chwilê potrwaæ.

Kiedy ju¿ wprowadzisz has³o, Windows NT skontaktuje siê z podstawowym kontrolerem domeny (Samb¹), aby sprawdziæ, czy has³o jest poprawne. Mo¿esz te¿ zajrzeæ do pliku dziennika, aby sprawdziæ przebieg tego procesu. Jeœli wszystko dzia³a,
jest to znak, ¿e poprawnie skonfigurowa³eœ Sambê jako podstawowy kontroler domeny dla komputerów Windows NT.

Opcje domenowe
W tabeli 6.9 zebrano opcje u¿ywane do konfigurowania logowania domenowego.

180

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Tabela 6.9. Opcje logowania domenowego Windows 95/98
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

domain
logons
domain group
map

WartoϾ
logiczna
£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)
£añcuch
(nazwa
pliku
wraz ze
œcie¿k¹)
£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)
WartoϾ
logiczna

Informuje, czy bêdzie u¿ywane
logowanie domenowe Windows
Nazwa pliku z odwzorowaniami
grup uniksowych na grupy
domenowe Windows NT

no

Globalny

Brak

Globalny

Nazwa pliku z odwzorowaniami
u¿ytkowników uniksowych na
u¿ytkowników domeny Windows
NT

Brak

Globalny

Brak
Nazwa pliku z odwzorowaniami
grup uniksowych na grupy lokalne
Windows NT

Globalny

Jeœli jest ustawiona na yes, Samba
wymusza uwierzytelnianie
u¿ytkowników przy ka¿dym
³¹czeniu siê z udzia³em

Udzia³

domain user
map

local group
map

revalidate

no

domain logons
Ta opcja sprawia, ¿e Samba akceptuje logowania domenowe jako podstawowy kontroler domeny. Kiedy klient pomyœlnie zaloguje siê w domenie, Samba przesy³a mu
specjalny ¿eton, który pozwala na dostêp do udzia³ów w domenie bez ponownego
uwierzytelniania przez PDC. Pamiêtaj, ¿e Samba musi u¿ywaæ zabezpieczeñ na poziomie u¿ytkownika (security = user) i byæ podstawowym kontrolerem domeny, aby opcja ta zadzia³a³a. Oprócz tego, komputery Windows bêd¹ spodziewaæ siê,
¿e w serwerze Samby istnieje udzia³ [netlogon] (patrz wczeœniejszy podrozdzia³
„Konfigurowanie Samby do obs³ugi logowania w domenach Windows”).
domain group map
Ta opcja okreœla po³o¿enie pliku odwzorowañ, s³u¿¹cego do t³umaczenia nazw grup
domenowych Windows NT na nazwy grup uniksowych. Plik ten powinien znajdowaæ siê w serwerze Samby, na przyk³ad:
/usr/local/samba/private/grupy.domenowe

Plik ten ma prosty format:
GrupaUniksowa = GrupaNT

Oto przyk³adowy wpis:
admin = Administratorzy

Podana grupa uniksowa powinna byæ wymieniona w pliku /etc/group. Grupa NT to
nazwa, na któr¹ powinna zostaæ odwzorowana grupa uniksowa w kliencie NT.
Opcja ta dzia³a tylko z klientami Windows NT.

Domeny Windows

181

domain user map
Ta opcja okreœla po³o¿enie pliku odwzorowañ, s³u¿¹cego do t³umaczenia nazw
u¿ytkowników uniksowych na nazwy u¿ytkowników domen Windows NT. Plik ten
powinien znajdowaæ siê w serwerze Samby, na przyk³ad:
/usr/local/samba/private/uzytkownicy.domeny

Plik ten ma prosty format:
UniksowaNazwaU¿ytkownika = [\\Domena\\]NazwaU¿ytkownikaNT

Oto przyk³adowy wpis:
rysiek = Ryszard Kwiatkowski

Podany u¿ytkownik uniksowy powinien byæ wymieniony w pliku /etc/passwd. U¿ytkownik NT to nazwa, na któr¹ powinien zostaæ odwzorowany u¿ytkownik uniksowy w kliencie NT. Opcja ta dzia³a tylko z klientami Windows NT.
Jeœli chcia³byœ dowiedzieæ siê wiêcej o u¿yciu domenowych nazw u¿ytkowników
i grup lokalnych w Windows NT, polecamy ksi¹¿kê Erica Pearce'a Windows NT in a Nutshell, opublikowan¹ przez wydawnictwo O'Reilly.

local group map
Ta opcja okreœla po³o¿enie pliku odwzorowañ, s³u¿¹cego do t³umaczenia nazw grup
lokalnych Windows NT na nazwy grup uniksowych; grupy lokalne to miêdzy innymi Administratorzy i U¿ytkownicy. Plik ten powinien znajdowaæ siê w serwerze
Samby, na przyk³ad:
/usr/local/samba/private/grupy.lokalne

Plik ten ma prosty format:
GrupaUniksowa = [BUILTIN\]GrupaNT

Oto przyk³adowy wpis:
root = BUILTIN\Administratorzy

Opcja ta dzia³a tylko z klientami Windows NT. Wiêcej informacji znajdziesz we wspomnianej ksi¹¿ce Erica Pearce'a Windows NT in a Nutshell (wydawnictwo O'Reilly).
revalidate
Ta opcja udzia³u informuje Sambê, ¿e nale¿y wymusiæ uwierzytelnianie u¿ytkowników przy ka¿dym ³¹czeniu siê z innym udzia³em w komputerze, niezale¿nie od poziomu bezpieczeñstwa u¿ywanego przez serwer Samby. Jej domyœlna wartoœæ to no,
co oznacza, ¿e Samba ufa u¿ytkownikom po ich pomyœlnym uwierzytelnieniu.
Mo¿esz zmieniæ j¹ w nastêpuj¹cy sposób:
revalidate = yes

Opcja ta mo¿e poprawiæ bezpieczeñstwo systemu. Pamiêtaj jednak o niewygodzie,
która wi¹¿e siê z wpisywaniem has³a przy dostêpie do ka¿dego udzia³u.

182

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Skrypty logowania
Samba umo¿liwia wykonywanie skryptów logowania Windows, czyli plików wsadowych (.BAT lub .CMD) uruchamianych w kliencie podczas logowania siê w domenie Windows. Zauwa¿, ¿e skrypty te s¹ przechowywane w serwerze uniksowym,
a nastêpnie przesy³ane przez sieæ do klienta i wykonywane wtedy, gdy u¿ytkownik
siê zaloguje. Skrypty logowania s¹ niezwykle przydatnym narzêdziem do dynamicznego konfigurowania parametrów sieciowych dla loguj¹cych siê u¿ytkowników. Poniewa¿ jednak wykonuj¹ siê w systemie Windows, musz¹ zawieraæ polecenia konfiguracji sieci u¿ywane w Windows.
Jeœli chcia³byœ dowiedzieæ siê wiêcej o grupie poleceñ NET, polecamy nastêpuj¹ce
podrêczniki wydawnictwa O'Reilly: Windows NT in a Nutshell, Windows 95 in a Nutshell
i Windows 98 in a Nutshell.

Mo¿esz poinformowaæ Sambê o chêci korzystania ze skryptów logowania za po moc¹ opcji logon script, jak w poni¿szym przyk³adzie:
[global]
domain logons = yes
security = user
workgroup = PROSTA_GRUPA
os level = 34
local master = yes
preferred master = yes
domain master = yes
logon script = %U.bat
[netlogon]
comment = Us³uga logowania domenowego
path = /export/samba/logon
public = no
writeable = no
browsable = no

Zwróæ uwagê, ¿e w tym przyk³adzie u¿yliœmy zmiennej %U, która pozwala zindywidualizowaæ skrypt w zale¿noœci od loguj¹cego siê u¿ytkownika. Skrypty logowania s¹ czêsto dostosowywane do komputera lub u¿ytkownika loguj¹cego siê w domenie. Dziêki
temu mog¹ ustawiaæ indywidualne parametry dla u¿ytkowników lub klientów.
Wszystkie skrypty logowania powinny byæ przechowywane w g³ównym katalogu
udzia³u [netlogon]. Jeœli na przyk³ad katalogiem udzia³u [netlogon] jest
/export/samba/logon, a skrypt logowania nosi nazwê jacek.bat, to pe³n¹ œcie¿k¹ do skryptu bêdzie /export/samba/logon/jacek.bat. Kiedy u¿ytkownik zaloguje siê w domenie, która zawiera skrypt startowy, zobaczy ma³e okno dialogowe informuj¹ce o dzia³aniu
skryptu oraz okno podobne do trybu MS-DOS z wynikami pracy skryptu.
S³owo ostrze¿enia: poniewa¿ skrypty logowania s¹ pobierane przez Windows i tam
te¿ wykonywane, musz¹ byæ sformatowane na sposób dosowy, czyli zawieraæ kombinacjê znaków powrotu karetki i nowej linii zamiast samych nowych linii charakterystycznych dla Uniksa. Najwygodniej bêdzie utworzyæ je w edytorze DOS-a lub Windows.

Skrypty logowania

183

Oto przyk³ad skryptu logowania, który synchronizuje lokalny czas z czasem serwera Samby i mapuje dwie stacje sieciowe, h oraz i, na udzia³y serwera:
# Synchronizujemy czas lokalny z czasem serwera.
# Aby polecenie to zadzia³a³o, w pliku smb.conf
# musi znajdowaæ siê opcja " time server = yes "
echo Ustawiam aktualny czas...
net time \\hydra /set /yes
# Mapujemy stacje sieciowe na udzia³y serwera Samby
echo Mapujê stacje sieciowe na udzia³y serwera Hydra...
net use h: \\hydra\dane
net use i: \\hydra\siec

Profile przechodnie
W Windows 95 i NT ka¿dy u¿ytkownik mo¿e mieæ swój w³asny profil. W profilu gromadzone s¹ informacje takie jak: wygl¹d pulpitu u¿ytkownika, aplikacje widoczne
w menu Start, t³o i inne. Jeœli profil jest przechowywany na lokalnym dysku, nazywamy go profilem lokalnym, poniewa¿ opisuje on œrodowisko pracy u¿ytkownika
w jednym komputerze. Jeœli jednak profil jest przechowywany w serwerze, u¿yt kownik mo¿e pobraæ go do ka¿dego komputera, który jest po³¹czony z serwerem.
Taki profil nazywamy przechodnim (roaming profile), poniewa¿ u¿ytkownik mo¿e korzystaæ z tego samego profilu podczas pracy na ró¿nych komputerach. Jest to szczególnie przydatne w sytuacji, gdy ktoœ jednego dnia pracuje przy w³asnym biurku,
a nastêpnego loguje siê z komputera przenoœnego spoza miejsca pracy. Rysunek 6.6
ilustruje profile lokalne i przechodnie.

Rysunek 6.6. Profile lokalne i przechodnie

184

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Samba bêdzie udostêpniaæ profile przechodnie, jeœli zostanie skonfigurowana do ob s³ugi logowania domenowego, a ty wska¿esz jej za pomoc¹ opcji logon path drzewo
katalogów u¿ywane do ich przechowywania. Opcja ta jest zwykle u¿ywana w po³¹czeniu z jedn¹ ze zmiennych okreœlaj¹cych u¿ytkownika, jak w poni¿szym przyk³adzie:
[global]
domain logons = yes
security = user
workgroup = PROSTA_GRUPA
os level = 34
local master = yes
preferred master = yes
domain master = yes
logon path = \\hydra\profile\%U

Do obs³ugi profili bêdziemy musieli utworzyæ nowy udzia³, który bêdzie prostym
udzia³em dyskowym dostêpnym tylko dla u¿ytkownika procesu Samby (roota).
Udzia³ ten musi byæ zapisywalny, ale nie mo¿e byæ przegl¹dalny. Oprócz tego musimy utworzyæ katalog dla ka¿dego loguj¹cego siê u¿ytkownika (w miejscu, które
wskazuje opcja logon path z przyk³adu powy¿ej), dostêpny tylko dla tego u¿ytkownika. Aby zwiêkszyæ bezpieczeñstwo, u¿yjemy opcji directory mode i create mode, które uniemo¿liwi¹ u¿ytkownikom ³¹cz¹cym siê z tym udzia³em przegl¹danie lub zmienianie tworzonych w nim plików.
[profile]
comment = Profile u¿ytkowników
path = /export/samba/profile
create mode = 0600
directory mode = 0700
writable = yes
browsable = no

Kiedy u¿ytkownik zaloguje siê po raz pierwszy, klient Windows utworzy plik
user.dat lub ntuser.dat – w zale¿noœci od systemu operacyjnego klienta. Klient nastêpnie zapisze w odpowiednim katalogu udzia³u zawartoœæ pulpitu, menu Start, Otoczenia sieciowego oraz folderów programów. Przy ponownym logowaniu informacje te zostan¹ pobrane z serwera i wykorzystane do skonfigurowania komputera,
z którego zalogowa³ siê u¿ytkownik. Kiedy u¿ytkownik wyloguje siê, informacje zostan¹ ponownie zapisane na serwerze a¿ do czasu nastêpnego logowania. Jeœli spojrzysz na listing katalogu z treœci¹ profilu, zobaczysz nastêpuj¹ce pliki:
# ls -al
total 321
drwxrwxr-x
drwxrwxr-x
drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx--drwxrwx---rw-------

9
4
3
3
2
2
7
2
2
1

root
root
jacek
jacek
jacek
jacek
jacek
jacek
jacek
jacek

prosta
prosta
program
program
program
program
program
program
program
program

Jul
Jul
Jul
Jul
Jul
Jul
Jul
Jul
Jul
Jul

21
22
12
12
12
12
12
12
19
21

20:44
14:32
07:15
07:15
07:15
07:15
07:15
07:15
21:05
21:59

.
..
Dane aplikacji
Menu Start
cookies
pulpit
historia
nethood
recent
user.dat

Skrypty logowania

185

Pliki user.dat to binarne pliki konfiguracyjne, tworzone automatycznie przez Win dows. Mo¿na je edytowaæ za pomoc¹ edytora profili w kliencie Windows, ale za pewnienie ich poprawnoœci czasem przysparza k³opotów. Samba obs³uguje je po prawnie a¿ do wersji NT 5.0 beta systemu Windows, ale funkcja ta jest wzglêdnie
nowa.
Wskazówki i dokumenty HOWTO dotycz¹ce obs³ugi skryptów logowania mo¿na znaleŸæ w dokumentacji Samby, w plikach docs/textdocs/DOMAIN.txt oraz docs/textdocs/
PROFILES.txt.

Profile obowi¹zkowe
U¿ytkownicy mog¹ mieæ tak¿e profile obowi¹zkowe, czyli profile przechodnie, których
nie mog¹ zmieniæ. Jeœli u¿ytkownik korzystaj¹cy z profilu obowi¹zkowego doda polecenie do menu Start we wtorek, nie znajdzie go tam, kiedy zaloguje siê ponownie
w œrodê. Profil obowi¹zkowy to po prostu plik user.dat, którego nazwa zosta³a zmieniona na user.man i który jest przeznaczony tylko do odczytu. Zwykle zawiera on
ustawienia, które administrator uzna³ za obowi¹zuj¹ce dla wszystkich u¿ytkowników. Jeœli administrator chce utworzyæ sta³¹ konfiguracjê dla u¿ytkowników, powinien wykonaæ nastêpuj¹ce czynnoœci:
1. Utworzyæ w serwerze Samby katalog przeznaczony do odczytu i zapisu.
2. Ustawiæ opcjê logon path w pliku smb.conf tak, aby wskazywa³a ten katalog.
3. Zalogowaæ siê jako u¿ytkownik z Windows 95/98, aby klient zapisa³ pliki w tym
katalogu.
4. Zmieniæ nazwê pliku user.dat na user.man.
5. Ustawiæ katalog wraz z zawartoœci¹ jako przeznaczony tylko do odczytu.
Profili obowi¹zkowych u¿ywa siê doœæ rzadko, natomiast profile przechodnie s¹
jedn¹ z najprzydatniejszych cech Windows, które Samba potrafi obs³ugiwaæ.

Opcje skryptów logowania
Tabela 6.10 podsumowuje opcje u¿ywane do konfigurowania skryptów logowania
w domenach Windows.
Tabela 6.10. Opcje skryptów logowania
Opcja
Parametry
Funkcja
logon script

logon path

£añcuch
(œcie¿ka
dosowa)
£añcuch
(nazwa UNC
serwera
i udzia³u)

WartoϾ
domyœlna

Zasiêg

Nazwa pliku wsadowego
DOS-a/NT

Brak

Globalny

Po³o¿enie przechodniego profilu
u¿ytkownika

\\%N\%U\
profile

Globalny

Dokoñczenie tabeli na str. 186

186

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Dokoñczenie tabeli ze str. 185
Tabela 6.10. Opcje skryptów logowania
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

logon drive

£añcuch
(litera
dysku)
£añcuch
(nazwa UNC
serwera
i udzia³u)

Okreœla stacjê dysków z katalogiem macierzystym (tylko NT)

Z:

Globalny

logon home

Okreœla po³o¿enie macierzystych \\%N\%U
katalogów klientów loguj¹cych
siê w domenie

Globalny

logon script
Ta opcja okreœla po³o¿enie pliku wykonywalnego Windows o rozszerzeniu .BAT lub
.CMD (z liniami zakoñczonymi sekwencjami znaków powrót karetki – nowa linia),
który zostanie uruchomiony w kliencie po zalogowaniu siê u¿ytkownika w domenie. Ka¿dy skrypt logowania powinien byæ przechowywany w g³ównym katalogu
udzia³u o nazwie [netlogon] (szczegó³y w podrozdziale „Konfigurowanie Samby
do obs³ugi logowania w domenach Windows”). W opcji tej czêsto u¿ywa siê zmiennych %U lub %m (nazwa u¿ytkownika lub NetBIOS-owa nazwa komputera), które
wskazuj¹ na konkretny skrypt. Na przyk³ad opcja:
logon script = %U.bat

spowoduje wykonanie skryptu przechowywanego w g³ównym katalogu udzia³u
[netlogon], o nazwie odpowiadaj¹cej nazwie u¿ytkownika. Jeœli ³¹cz¹cy siê u¿ytkownik to franek, a œcie¿ka udzia³u [netlogon] odpowiada katalogowi
/export/samba/netlogon, klient wykona skrypt /export/samba/netlogon/franek.bat. Poniewa¿ skrypty te s¹ pobierane przez klienta i wykonywane po stronie Windows,
musz¹ zawieraæ dosowe sekwencje znaków powrót karetki – nowa linia zamiast,
(jak w Uniksie), samych znaków nowej linii.
logon path
Opcja ta okreœla po³o¿enie profili przechodnich. Kiedy u¿ytkownik siê loguje, profil
przechodni jest przekazywany z serwera do klienta i uaktywniany dla tego u¿yt kownika. Kiedy u¿ytkownik siê wylogowuje, zawartoœæ profilu jest sk³adowana
z powrotem na serwerze a¿ do nastêpnego zalogowania.

Skrypty logowania

187

Czêsto bezpieczniej jest utworzyæ osobny udzia³ przeznaczony specjalnie na profil
u¿ytkownika:
logon path = \\hydra\profile\%U

Wiêcej informacji o tej opcji znajdziesz we wczeœniejszym podrozdziale „Skrypty logowania”.
logon drive
Opcja ta okreœla literê dysku w kliencie NT, na któr¹ bêdzie mapowany katalog macierzysty podany w opcji logon home. Opcja ta dzia³a tylko z klientami Windows
NT. Na przyk³ad:
logon home = I:

Powinieneœ zawsze u¿ywaæ takich liter dysku, które nie wejd¹ w konflikt z literami
sta³ych dysków klienta. Domyœlna litera to Z:, która jest po³o¿ona najdalej od liter
A:, C: i D:.
logon home
Ta opcja okreœla po³o¿enie katalogu macierzystego u¿ytkownika na potrzeby dosowych poleceñ NET. Aby na przyk³ad okreœliæ katalog macierzysty jako udzia³ w serwerze Samby, nale¿y napisaæ:
logon home = \\hydra\%U

Warto podkreœliæ, ¿e opcja ta dobrze dzia³a z us³ug¹ [homes], chocia¿ mo¿na podaæ
dowolny katalog. Katalogi macierzyste mo¿na mapowaæ w skrypcie logowania za
pomoc¹ nastêpuj¹cego polecenia:
NET USE I: /HOME

Mo¿esz tak¿e sprawdziæ w oknie Profil œrodowiska u¿ytkownika, otwieranym
z okna W³aœciwoœci u¿ytkownika w Mened¿erze u¿ytkowników Windows NT, czy
katalog macierzysty zosta³ automatycznie ustawiony.

Inne skrypty po³¹czeniowe
Kiedy u¿ytkownik pomyœlnie po³¹czy siê z udzia³em Samby, serwer Samby mo¿e
wykonaæ po swojej stronie program, który przygotuje udzia³ do u¿ycia. Samba pozwala na wykonywanie skryptów zarówno przed nawi¹zaniem po³¹czenia, jak i po
roz³¹czeniu z udzia³em. Nie trzeba u¿ywaæ domen Windows, aby móc skorzystaæ
z tych opcji. W tabeli 6.11 przedstawiamy niektóre opcje u¿ywane do konfigurowania œrodowiska u¿ytkownika.

188

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

Tabela 6.11. Opcje skryptów po³¹czeniowych
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

root
preexec

£añcuch
(polecenie
Uniksa)
£añcuch
(polecenie
Uniksa)

Okreœla polecenie, które ma zostaæ
wykonane z przywilejami roota przed
nawi¹zaniem po³¹czenia z udzia³em
Okreœla polecenie, które ma zostaæ
wykonane z przywilejami
u¿ytkownika przed nawi¹zaniem
po³¹czenia z udzia³em
Okreœla polecenie, które ma zostaæ
wykonane z przywilejami
u¿ytkownika po roz³¹czeniu siê
z udzia³em
Okreœla polecenie, które ma zostaæ
wykonane z przywilejami roota po
roz³¹czeniu siê z udzia³em

Brak

Udzia³

Brak

Udzia³

Brak

Udzia³

Brak

Udzia³

preexec
(exec)

postexec

£añcuch
(polecenie
Uniksa)

root
postexec

£añcuch
(polecenie
Uniksa)

root preexec
Pierwsza forma polecenia logowania nosi nazwê root preexec. Opcja ta okreœla
polecenie Uniksa, które zostanie wykonane z przywilejami roota, zanim zostanie
nawi¹zane po³¹czenie z udzia³em. Mo¿esz u¿yæ go w celu wykonania poleceñ, które
wymagaj¹ przywilejów roota, na przyk³ad do montowania CD-ROM-ów w celu
udostêpnienia ich klientom albo do tworzenia katalogów. Jeœli nie okreœlisz opcji
root preexec, nie zostanie podjêta ¿adna domyœlna czynnoœæ. Oto przyk³ad u¿ycia tej opcji w celu zamontowania CD-ROM-u:
[homes]
browseable = no
writeable = yes
root preexec = /etc/mount /dev/cdrom2

Pamiêtaj, ¿e podane polecenie zostanie wykonane z przywilejami roota. Ze wzglêdów bezpieczeñstwa u¿ytkownicy nie powinni mieæ mo¿liwoœci zmiany polecenia
w opcji root preexec.
preexec
Nastêpne polecenie uruchamiane przed zalogowaniem u¿ytkownika okreœla siê za
pomoc¹ opcji preexec (czasem nazywanej po prostu exec). Jest to zwyk³e, nie uprzywilejowane polecenie, wykonywane przez Sambê z przywilejami u¿ytkownika okreœlonego zmienn¹ %u. Opcji tej czêsto u¿ywa siê do rejestrowania po³¹czeñ,
jak w poni¿szym przyk³adzie:
[homes]
preexec = echo " %u po³¹czy³ siê z %S z komputera %m (%I) " & gt; & gt; /tmp/.log

Pamiêtaj, ¿e dane wysy³ane przez to polecenie na standardowe wyjœcie nie bêd¹ widoczne dla u¿ytkownika, lecz zostan¹ odrzucone. Jeœli chcesz u¿ywaæ skryptu preexec, upewnij siê, ¿e dzia³a on poprawnie, zanim zlecisz Sambie jego wykonywanie.

Skrypty logowania

189

postexec
Kiedy u¿ytkownik roz³¹czy siê z udzia³em, polecenie okreœlone opcj¹ postexec zostanie wykonane w serwerze Samby z przywilejami u¿ytkownika, na przyk³ad
w celu uporz¹dkowania systemu. Opcja ta bardzo przypomina opcjê preexec. Tak¿e tutaj polecenie jest wykonywane z przywilejami u¿ytkownika okreœlonego
zmienn¹ %u, a dane wysy³ane na standardowe wyjœcie s¹ ignorowane.
root postexec
Po poleceniu postexec wykonywane jest polecenie root postexec, jeœli je okreœlono. Opcja ta równie¿ przyjmuje polecenie Uniksa i wykonuje je z przywilejami roota
przed od³¹czeniem udzia³u. Powinieneœ jej u¿ywaæ tylko w celu wykonania poleceñ,
które wymagaj¹ przywilejów roota.

Wspó³praca z NIS i NFS
Samba potrafi tak¿e wspó³pracowaæ z NIS i NIS+. Jeœli w sieci znajduje siê wiêcej ni¿
jeden serwer plików, a w ka¿dym dzia³a Samba, by³oby dobrze, gdyby klient SMB
³¹czy³ siê z tym serwerem, który przechowuje macierzysty katalog u¿ytkownika.
Zwykle nie ma sensu przesy³aæ plików sieci¹ za pomoc¹ NFS do serwera Samby tylko po to, ¿eby za chwilê odes³aæ je klientowi SMB (operacja taka jest wolna – oko³o 30
procent normalnej prêdkoœci Samby). Dlatego istniej¹ dwie opcje, które informuj¹
Sambê, ¿e NIS zna nazwê w³aœciwego serwera, i wskazuj¹, w której mapie NIS mo¿na znaleŸæ odpowiednie informacje.
W tabeli 6.12 przedstawiamy kolejne opcje, które s³u¿¹ do konfigurowania œrodowiska u¿ytkownika.
Tabela 6.12. Opcje NIS
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

nis homedir

WartoϾ
logiczna

no

Globalny

homedir map

£añcuch
(nazwa
mapy NIS)

Jeœli jest ustawiona na yes, Samba
sprawdza œcie¿kê do macierzystego
katalogu u¿ytkownika w NIS, a nie
w pliku /etc/passwd
Okreœla nazwê mapy NIS, w której
nale¿y wyszukaæ macierzysty
katalog u¿ytkownika

Brak

Globalny

nis homedir i homedir map
Opcje nis homedir i homedir map s¹ przeznaczone do u¿ycia w sieciach, w których uniksowe katalogi macierzyste s¹ udostêpniane za pomoc¹ NFS, programu
montuj¹cego i NIS (Yellow Pages).
Opcja nis homedir informuje, ¿e serwer z katalogiem macierzystym u¿ytkownika
nale¿y wyszukaæ za pomoc¹ NIS. Opcja homedir map informuje Sambê, w której
mapie NIS nale¿y szukaæ serwera z katalogiem macierzystym u¿ytkownika. Musi to

190

Rozdzia³ 6: U¿ytkownicy, bezpieczeñstwo i domeny

byæ serwer Samby, aby klient móg³ nawi¹zaæ z nim po³¹czenie za pomoc¹ SMB,
a w pierwotnym serwerze Samby musi byæ zainstalowany NIS, aby mo¿na by³o
przeprowadziæ wyszukiwanie.
Jeœli na przyk³ad u¿ytkownik jacek poprosi o po³¹czenie z udzia³em [jacek],
a opcja nis homedir jest ustawiona na yes, Samba sprawdzi, czy w pliku okreœlonym opcj¹ homedir map znajduje siê informacja o katalogu macierzystym tego
u¿ytkownika. Jeœli Samba znajdzie tak¹ informacjê, wówczas zwróci klientowi
zwi¹zan¹ z ni¹ nazwê komputera. Klient spróbuje wówczas po³¹czyæ siê z drugim
komputerem i tam uzyskaæ dostêp do udzia³u. Wyszukiwanie NIS w³¹cza siê w nastêpuj¹cy sposób:
[global]
nis homedir = yes
homedir map = amd.map

Drukowanie
i odwzorowywanie nazw

7

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

W rozdziale tym zajmiemy siê dwoma zagadnieniami: konfigurowaniem drukarek
w serwerze Samby i konfigurowaniem Samby do wspó³pracy z serwerem Windows
Internet Name Service (WINS) lub do pracy w roli tego serwera. Samba umo¿liwia
klientom wysy³anie dokumentów do drukarek po³¹czonych z serwerem, a tak¿e
drukowanie dokumentów uniksowych na drukarkach pod³¹czonych do komputerów Windows. W pierwszej czêœci rozdzia³u omówimy konfigurowanie drukarek
do pracy po obu stronach po³¹czenia.
W drugiej czêœci rozdzia³u omówimy Windows Internet Name Service, implementacjê serwera nazw NetBIOS-owych (NetBIOS Name Server, NBNS) Microsoftu. Jak
wspomniano w rozdziale 1, Poznajemy Sambê, serwer NBNS pozwala komputerom
w sieci NetBIOS-owej na odwzorowywanie nazw bez uciekania siê do rozg³oszeñ.
Ka¿dy komputer wie, gdzie znajduje siê serwer WINS, i mo¿e pytaæ go o adresy IP
innych komputerów w sieci.

Wysy³anie zleceñ wydruku do Samby
Drukarka pod³¹czona do serwera Samby pojawia siê na liœcie udzia³ów w Otoczeniu
sieciowym. Jeœli drukarka jest zarejestrowana w kliencie, a klient dysponuje jej sterownikami, wówczas klient mo¿e bez problemu wysy³aæ zlecenia wydruku do drukarki pod³¹czonej do serwera Samby. Rysunek 7.1 przedstawia drukarkê Samby
w oknie Otoczenia sieciowego klienta Windows.
Do zarz¹dzania drukarkami Samby bêdzie ci potrzebna znajomoœæ procesu, który
umo¿liwia drukowanie w sieci. Wysy³anie zleceñ wydruku do drukarki pod³¹czonej do serwera Samby sk³ada siê z czterech etapów:
1. Otwarcie i uwierzytelnienie po³¹czenia z udzia³em drukarki.
2. Skopiowanie pliku przez sieæ.
3. Zamkniêcie po³¹czenia.
4. Wydrukowanie i usuniêcie kopii pliku.

192

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Rysunek 7.1. Drukarka Samby w Otoczeniu sieciowym

Kiedy Samba odbierze zlecenie wydruku, dane s¹ tymczasowo zapisywane na dysku w katalogu okreœlonym opcj¹ path udzia³u drukarki. Samba wykonuje nastêpnie uniksowe polecenie wydruku, aby przes³aæ dane do drukarki. Zlecenie jest drukowane z przywilejami uwierzytelnionego u¿ytkownika udzia³u. Warto zauwa¿yæ,
¿e mo¿e to byæ u¿ytkownik-goœæ, w zale¿noœci od tego, jak skonfigurowany jest
udzia³.

Polecenia wydruku
Aby wydrukowaæ dokument, musisz poinformowaæ Sambê, jakie polecenie s³u¿y
do drukowania i usuwania plików. W Linuksie poleceniem tym jest:
lpr -r -Pdrukarka plik

Polecenie to nakazuje programowi lpr skopiowaæ plik do katalogu buforowego,
zwykle /var/spool, wyszukaæ nazwê drukarki w systemowym pliku konfiguracyjnym (/etc/printcap) i zinterpretowaæ znalezione tam informacje w celu odpowiedniego przetworzenia danych i wys³ania ich do w³aœciwego urz¹dzenia fizycznego. Ze
wzglêdu na u¿ycie opcji -r plik podany w linii polecenia zostanie usuniêty po wydrukowaniu. Oczywiœcie, usuwana jest tylko kopia pliku z serwera Samby, pierwotny plik w kliencie pozostaje nienaruszony.
Linux u¿ywa mechanizmów wydruku Uniksa typu Berkeley (BSD), ale w Systemie
V proces przebiega podobnie. Tutaj do wydrukowania i usuniêcia pliku potrzebne
jest polecenie z³o¿one:
lp -ddrukarka -s plik; rm plik

W Systemie V plik /etc/printcap jest zast¹piony zbiorem plików konfiguracyjnych
po³o¿onych w katalogu /usr/spool/lp i nie ma opcji umo¿liwiaj¹cej usuniêcie pliku po
wydrukowaniu. Musisz zrobiæ to sam i w³aœnie dlatego do³¹czyliœmy polecenie rm.

Zmienne zwi¹zane z drukowaniem
Samba udostêpnia cztery zmienne przeznaczone do u¿ycia w opcjach konfiguracji
drukowania. Wymieniono je w tabeli 7.1.

Wysy³anie zleceñ wydruku do Samby

193

Tabela 7.1. Zmienne zwi¹zane z drukowaniem
Zmienna

Definicja

%s
%f
%p
%j

Pe³na œcie¿ka do drukowanego pliku w serwerze Samby
Sama nazwa drukowanego pliku (bez œcie¿ki) w serwerze Samby
Nazwa uniksowej drukarki, na której zostanie wydrukowany plik
Numer zlecenia wydruku (do u¿ycia w poleceniach lprm, lppause i lpresume)

Minimalna konfiguracja drukarki
Zacznijmy od prostego, ale pouczaj¹cego przyk³adu konfiguracji udzia³u drukarki.
Zak³adaj¹c, ¿e Samba dzia³a w Linuksie, a w pliku parametrów drukarek znajduje
siê drukarka o nazwie lp, dopisanie poni¿szych linii do pliku smb.conf udostêpni tê
drukarkê w sieci:
[drukarka1]
printable = yes
print command = /usr/bin/lpr -r %s
printer = lp
printing = BSD
read only = yes
guest ok = yes

Ta konfiguracja pozwala na wysy³anie danych do drukarki wszystkim u¿ytkownikom, co póŸniej zapewne zechcesz zmieniæ. W tym momencie wystarczy wiedzieæ,
¿e zmienna %s w opcji print command zostanie zast¹piona nazw¹ drukowanego
pliku, kiedy Samba wykona to polecenie. Zmiana u¿ywanego mechanizmu drukowania polega zwykle na zmodyfikowaniu prawej strony opcji print command
oraz okreœleniu innego typu mechanizmu w opcji printing.
Spójrzmy na opcje u¿ywane w Uniksie typu System V. Wykorzystuj¹c zmienne,
mo¿emy zapisaæ polecenie Systemu V w nastêpuj¹cy sposób:
print command = lp -d%p -s %s; rm %s

Jak wspomniano wczeœniej, zmienna %p oznacza nazwê drukarki, a zmienna %s –
nazwê drukowanego pliku. Powinieneœ tak¿e zmieniæ opcjê printing, aby poinformowaæ, ¿e u¿ywasz mechanizmu drukowania z Systemu V:
printing = SYSV

Jeœli u¿ywasz zabezpieczeñ na poziomie u¿ytkownika, zwróæ szczególn¹ uwagê na
konto goœcinne u¿ywane przez Sambê. Typowe ustawienie, nobody, mo¿e nie pozwalaæ na drukowanie w twoim systemie. Jeœli rzeczywiœcie tak jest, powinieneœ dopisaæ opcjê guest account w udziale drukarki (a nawet w sekcji globalnej), która
bêdzie okreœlaæ konto z zezwoleniem na wydruk. Twórcy Samby polecaj¹ konto
ftp, które czêsto jest skonfigurowane tak, aby mogli z niego bezpiecznie korzystaæ
niezaufani u¿ytkownicy-goœcie. Mo¿esz ustawiæ je za pomoc¹ poni¿szej opcji:
guest account = ftp

Z drukowaniem wi¹¿e siê te¿ inna kwestia: klienty czasem musz¹ dowiedzieæ siê,
jaki jest status zlecenia wys³anego do serwera Samby. Samba nie zapobiega wy-

194

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

s³aniu dokumentu do ju¿ zajêtego udzia³u drukarki, wiêc musi informowaæ klienty
nie tylko o statusie bie¿¹cego zlecenia wydruku, ale tak¿e o innych dokumentach
czekaj¹cych na wydrukowanie. Samba musi tak¿e udostêpniaæ klientom mo¿liwoœæ
wstrzymywania, wznawiania i usuwania zleceñ z kolejki wydruku. Istniej¹ opcje
kontroluj¹ce ka¿d¹ z tych czynnoœci. Jak ³atwo siê domyœliæ, s¹ one realizowane za
pomoc¹ poleceñ Uniksa. Odpowiednie opcje to:
· lpq command,
· lprm command,
· lppause command,
· lpresume command.
Nieco dalej znajdziesz szczegó³owy opis tych opcji, jednak¿e w wiêkszoœci przypadków za ich ustawienia jest odpowiedzialna opcja printing i nie ma potrzeby zmieniania wartoœci domyœlnych.
Oto kilka wa¿nych wskazówek dotycz¹cych udzia³ów drukarek:
· We wszystkich udzia³ach drukarek (nawet [printers]) musisz ustawiæ opcjê
printable = yes, aby Samba wiedzia³a, ¿e definiuj¹ one drukarki. Jeœli o tym
zapomnisz, udzia³y te zostan¹ uznane nie za drukarki, ale za udzia³y dyskowe.
· Jeœli ustawisz opcjê konfiguracyjn¹ path w udziale drukarki, wszystkie pliki
wysy³ane do drukarki bêd¹ kopiowane do podanego przez ciebie katalogu, a nie
do domyœlnego katalogu /tmp. Poniewa¿ w niektórych systemach uniksowych
przestrzeñ dyskowa przydzielona katalogowi /tmp jest relatywnie niewielka, wielu administratorów woli u¿ywaæ katalogu /var/spool lub innego.
· Opcja read only w udzia³ach drukarek jest ignorowana.
· Jeœli ustawisz opcjê guest ok = yes w udziale drukarki, a Samba jest skonfigurowana do pracy z zabezpieczeniami na poziomie udzia³u, ka¿dy bêdzie móg³
wys³aæ dane do drukarki, z przywilejami u¿ytkownika okreœlonego opcj¹ guest
account.
U¿ycie jednego lub kilku komputerów z Samb¹ jako serwerów wydruku pozwala na
elastyczne zarz¹dzanie zasobami sieci lokalnej. Mo¿esz ³atwo rozdzieliæ drukarki,
na przyk³ad udostêpniaj¹c czêœæ z nich tylko pracownikom jednego dzia³u lub prowadz¹c bank drukarek dostêpnych dla wszystkich. Mo¿esz tak¿e ograniczyæ dostêp
do drukarki za pomoc¹ opcji valid users, zezwalaj¹c na wydruk tylko wybranym
u¿ytkownikom:
[deskjet]
printable = yes
path = /var/spool/samba/wydruk
valid users = agata wojtek

Wszystkie inne opcje udostêpniania udzia³ów omówione w poprzednich rozdzia³ach powinny dzia³aæ tak¿e z udzia³ami drukarek. Poniewa¿ dostêp do drukarek Samby uzyskuje siê za pomoc¹ ich nazw, ³atwo jest rozdzieliæ zadania wydruku
miêdzy kilka serwerów, u¿ywaj¹c poleceñ Uniksa przeznaczonych do równowa¿enia obci¹¿enia lub konserwacji systemu.

Wysy³anie zleceñ wydruku do Samby

195

Udzia³ [printers]
W rozdziale 4, Udzia³y dyskowe, krótko przedstawiono specjalny udzia³ [printers], s³u¿¹cy do automatycznego tworzenia us³ug wydruku. Przypomnijmy, jak
to siê odbywa: jeœli w pliku konfiguracyjnym Samby utworzysz udzia³ o nazwie
[printers], Samba automatycznie wczyta plik z parametrami drukarek i utworzy
udzia³ dla ka¿dej drukarki, która jest wymieniona w tym pliku. Jeœli na przyk³ad
w pliku z parametrami drukarek w serwerze Samby znajduj¹ siê definicje drukarek
lp, pcl i ps, Samba udostêpni trzy udzia³y drukarek o takich nazwach, konfiguruj¹c je zgodnie z opcjami zawartymi w sekcji [printers].
Jak pamiêtasz, kiedy klient za¿¹da dostêpu do udzia³u niezdefiniowanego w pliku
smb.conf, Samba postêpuje wed³ug poni¿szych regu³:
· Jeœli nazwa ¿¹danego udzia³u odpowiada nazwie u¿ytkownika w systemowym
pliku hase³ i istnieje udzia³ [homes], tworzony jest nowy udzia³ o nazwie odpowiadaj¹cej nazwie u¿ytkownika i parametrach zdefiniowanych w sekcjach [homes] i [global].
· W innym przypadku, jeœli nazwa ¿¹danego udzia³u odpowiada nazwie drukarki
w systemowym pliku z parametrami drukarek, tworzony jest nowy udzia³ o nazwie odpowiadaj¹cej nazwie drukarki i parametrach zdefiniowanych w sekcji
[printers] (sekcja [global] nie jest tu brana pod uwagê).
· Jeœli Samba nie znajdzie ¿adnego z powy¿szych, wówczas szuka udzia³u okreœlonego za pomoc¹ opcji default service. Jeœli go nie znajdzie, zwraca b³¹d.
Rzecz, która wymaga podkreœlenia: nie nadawaj drukarce nazwy, któr¹ ma u¿yt kownik. Mog³oby siê bowiem zdarzyæ, ¿e po³¹czy³byœ siê z udzia³em dyskowym,
zamiast z drukark¹.
Oto przyk³adowy udzia³ [printers] dla Linuksa (mechanizm wydruku BSD).
Niektóre z tych opcji powielaj¹ wartoœci domyœlne; zamieœciliœmy je tu jednak dla
pe³nego obrazu:
[global]
printing = BSD
print command = /usr/bin/lpr -P%p -r %s
printcap file = /etc/printcap
min print space = 2000
[printers]
path = /usr/spool/public
printable = true
guest ok = true
guest account = pcguest

W przyk³adzie tym podaliœmy opcje globalne, które okreœlaj¹: typ wydruku (BSD),
polecenie wysy³aj¹ce dane do drukarki i usuwaj¹ce plik tymczasowy, nazwê pliku
z parametrami drukarek i minimaln¹ przestrzeñ buforowania wydruku równ¹
2 megabajtom.
Oprócz tego utworzyliœmy udzia³ [printers], udostêpniaj¹cy wszystkie drukarki
systemowe. Nasz tymczasowy katalog buforowy jest okreœlony opcj¹ path: /usr/spool/public. Poszczególne udzia³y bêd¹ umo¿liwia³y drukowanie, o czym informuje

196

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

opcja printable – jej u¿ycie jest konieczne, nawet w sekcji [printers]. Dwie
opcje guest s¹ przydatne, jeœli Samba u¿ywa zabezpieczeñ na poziomie u¿ytkownika: zezwalamy na goœcinny dostêp do drukarki i okreœlamy u¿ytkownika, z którego przywilejami Samba bêdzie wykonywaæ polecenia wydruku.

Test drukowania
Oto, jak przetestowaæ wydruk na drukarce Samby. Przyjmijmy najbardziej skomplikowany scenariusz i u¿yjmy konta goœcia. Najpierw wykonaj polecenie Samby testparm na pliku konfiguracyjnym zawieraj¹cym udzia³y drukarek, jak robiliœmy to
w rozdziale 2, Instalowanie Samby w Uniksie. Dziêki temu dowiesz siê, czy w pliku nie
ma ¿adnych b³êdów sk³adni. Oto, co byœ zobaczy³, gdybyœ pomin¹³ opcjê path
w poprzednim przyk³adzie:
# testparm
Load smb config files from /usr/local/samba/lib/smb.conf
Processing configuration file " /usr/local/samba/lib/smb.conf "
Processing section " [global] "
Processing section " [homes] "
Processing section " [dane] "
Processing section " [printers] "
No path in service printers - using /tmp
Loaded services file OK.
Press enter to see a dump of your service definitions
Global parameters:
load printers: Yes
printcap name: /etc/printcap
Default service parameters:
guest account: ftp
min print space: 0
print command: lpr -r -P%p %s
lpq command: lpq -P%p
lprm command: lprm -P%p %j
lppause command:
lpresume command:
Service parameters [printers]:
path: /tmp
print ok: Yes
read only: true
public: true

Nastêpnie wypróbuj polecenie testprns nazwadrukarki. Jest to prosty program, który sprawdza, czy okreœlona nazwa drukarki jest obecna w pliku printcap.
Jeœli twój plik printcap nie znajduje siê w zwyk³ym miejscu, mo¿esz podaæ jego nazwê wraz ze œcie¿k¹ jako drugi argument polecenia testprns:
# testprns lp /etc/printcap
Looking for printer lp in printcap file /etc/printcap
Printer name lp is valid.

Nastêpnie zaloguj siê jako goœæ, przejdŸ do katalogu buforowego i sprawdŸ, czy
mo¿esz drukowaæ za pomoc¹ tego samego polecenia, którego wed³ug programu
testprns bêdzie u¿ywaæ Samba. Jak wspomniano wczeœniej, dziêki temu dowiesz siê,
czy musisz zmodyfikowaæ konto goœcinne, poniewa¿ domyœlne konto czêsto nie ma
uprawnieñ do drukowania.

Wysy³anie zleceñ wydruku do Samby

197

Nastêpnie wydrukuj coœ na serwerze Samby za pomoc¹ programu smbclient
i sprawdŸ, czy zachodz¹ nastêpuj¹ce zdarzenia:
· zlecenie wydruku pojawia siê (na krótko) w katalogu buforowym Samby okreœlonym opcj¹ path,
· zlecenie pojawia siê w katalogu buforowym systemu wydruku,
· zlecenie znika z katalogu buforowego u¿ywanego przez Sambê.
Jeœli smbclient nie mo¿e drukowaæ, mo¿esz zmieniæ opcjê print command tak, aby
rejestrowa³a informacje diagnostyczne:
print command = /bin/cat %s & gt; & gt; /tmp/dziennikdruku; rm %s

albo
print command = echo " Wydrukowano %s na drukarce %p " & gt; & gt; /tmp/dziennikdruku

Problemy z konfiguracj¹ drukarek w Sambie czêsto s¹ spowodowane pominiêciem
pe³nych œcie¿ek do programów; proste polecenia czêsto nie dzia³aj¹, poniewa¿
zmienna PATH konta goœcinnego nie zawiera odpowiednich katalogów. Innym czêsto wystêpuj¹cym problemem jest brak odpowiednich praw dostêpu do katalogu
buforowego.
Wiêcej informacji o diagnozowaniu drukarek znajdziesz w dokumentacji Samby (plik
Printing.txt). Uniksowe systemy wydruku s¹ te¿ omówione w ksi¹¿ce Æeleen Frisch
Unix – administracja systemu (opublikowanej przez Wydawnictwo RM).

Konfigurowanie i testowanie klienta Windows
Kiedy Samba udostêpnia ju¿ dzia³aj¹c¹ drukarkê, musisz odpowiednio skonfigurowaæ klienta Windows. Spójrz na serwer Samby w Otoczeniu sieciowym. Powinien
on obecnie wyœwietlaæ wszystkie dostêpne drukarki. Na rysunku 7.1 widzimy drukarkê o nazwie lp.
Klient Windows musi teraz rozpoznaæ drukarkê. Zacznij od dwukrotnego klikniêcia
jej ikony. Jeœli spróbujesz wybraæ niezainstalowan¹ drukarkê (co w³aœnie zrobi³eœ),
Windows zapyta, czy ma ci dopomóc w skonfigurowaniu jej do u¿ycia przez system
Windows. Odpowiedz Tak, a pojawi siê okno Kreatora dodawania drukarki.
Kreator zapyta najpierw, czy chcesz drukowaæ z DOS-a. Za³ó¿my, ¿e nie chcesz,
wiêc wybierz Nie i kliknij przycisk Dalej, aby otworzyæ okno dialogowe pokazane
na rysunku 7.3.

Rysunek 7.2. Drukarka w Otoczeniu sieciowym

198

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

W tym oknie dialogowym powinieneœ zobaczyæ d³ug¹ listê producentów i modeli
drukarek. Jeœli nie znajdziesz na niej swojej drukarki, ale wiesz, ¿e jest to drukarka
postscriptowa, wybierz Apple jako producenta i Apple LaserWriter jako model.
Otrzymasz w ten sposób dostêp do podstawowych funkcji drukarki postscriptowej,
a konfiguracja taka jest przez wielu uwa¿ana za najbardziej niezawodn¹. Jeœli do
komputera do³¹czone s¹ ju¿ jakieœ drukarki postscriptowe, pojawi siê pytanie, czy
chcesz zast¹piæ istniej¹cy sterownik, czy wykorzystaæ go do obs³ugi nowej drukarki.
Pamiêtaj, ¿e jeœli zast¹pisz sterownik, inne drukarki mog¹ przestaæ dzia³aæ. Dlatego
zalecamy pozostawienie istniej¹cych sterowników, jeœli dzia³aj¹ poprawnie.
Nastêpnie Kreator poprosi o podanie nazwy drukarki. W przyk³adzie z rysunku 7.3
system Windows nada³ jej domyœln¹ nazwê „Apple LaserWriter (Kopia 2)”, a my
zmieniliœmy j¹ na „drukarka ps w serwerze Samby”, aby wiedzieæ, gdzie szukaæ gotowych wydruków. Mo¿esz jednak nadaæ drukarce dowoln¹ nazwê.

Rysunek 7.3. Producenci i modele drukarek

Wreszcie Kreator dodawania drukarki zapyta, czy chcesz wydrukowaæ stronê te stow¹. Kliknij Tak, a powinieneœ zobaczyæ okno dialogowe z rysunku 7.4.

Rysunek 7.4. Informacja o pomyœlnym zakoñczeniu drukowania

Wysy³anie zleceñ wydruku do Samby

199

Jeœli testowy wydruk nie powiedzie siê, kliknij przycisk Nie w oknie dialogowym
z rysunku 7.4, a Kreator dodawania drukarki przeprowadzi ciê przez kilka kroków
diagnozuj¹cych proces drukowania po stronie klienta. Jeœli testowy wydruk uda³
siê, gratulujemy! Zdalna drukarka bêdzie odt¹d dostêpna dla aplikacji PC w menu
PlikðDrukuj.

Automatyczne konfigurowanie sterowników drukarki
W poprzednim podrozdziale opisaliœmy rêczne instalowanie sterownika drukarki
w systemie Windows. Jako administrator systemu nie zawsze mo¿esz zagwarantowaæ, ¿e u¿ytkownicy bezb³êdnie wykonaj¹ wszystkie wymagane czynnoœci. Na
szczêœcie mo¿esz poinstruowaæ Sambê, aby automatycznie konfigurowa³a sterowniki dla okreœlonych drukarek.
Samba ma trzy opcje s³u¿¹ce do automatycznego konfigurowania sterowników drukarki w klientach ³¹cz¹cych siê z ni¹ po raz pierwszy. S¹ to: printer driver,
printer driver file oraz printer driver location. W podrozdziale tym
opiszemy, jak ustawiæ te opcje, aby umo¿liwiæ u¿ytkownikom pominiêcie okna wyboru producenta w Kreatorze dodawania drukarki.
Wiêcej informacji na ten temat znajdziesz w pliku PRINTER_DRIVER.TXT w dokumentacji Samby.

Procedura sk³ada siê z czterech zasadniczych etapów:
1. Zainstaluj sterowniki drukarki w kliencie Windows (drukarka nie musi byæ do
niego pod³¹czona).
2. Utwórz plik definicji drukarki, u¿ywaj¹c informacji z komputera Windows.
3. Utwórz udzia³ PRINTER$, w którym umieœcisz uzyskane pliki sterowników.
4. Odpowiednio zmodyfikuj plik konfiguracyjny Samby.
Teraz szczegó³owo opiszemy wszystkie etapy.
Instalowanie sterowników w kliencie Windows
Na tym etapie skorzystasz z klienta Windows 95/98. Nie ma znaczenia, który to bêdzie klient, jeœli tylko bêdzie mo¿na zainstalowaæ w nim odpowiednie sterowniki
drukarki. Nie musisz nawet pod³¹czaæ do niego drukarki – chodzi tylko o to, aby
skopiowaæ w³aœciwe pliki sterowników do katalogu Windows. Najpierw otwórz
okno Drukarki w folderze Mój komputer i kliknij dwukrotnie ikonê Dodaj drukarkê
(patrz rysunek 7.5).
Teraz mo¿esz u¿yæ okien dialogowych Kreatora dodawania drukarki, aby wybraæ
jej producenta i model. Jeœli pojawi siê pytanie, czy chcesz drukowaæ z DOS-a, odpowiedz przecz¹co. System Windows za³aduje odpowiednie sterowniki z CD-ROM-u
i zapyta, czy chcesz wydrukowaæ stronê testow¹. Ponownie odpowiedz przecz¹co
i zamknij okno dialogowe Kreatora.

200

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Rysunek 7.5. Okno Drukarki

Tworzenie pliku definicji drukarki
Plik definicji drukarki mo¿esz utworzyæ za pomoc¹ skryptu make_printerdef znaj duj¹cego siê w katalogu /usr/local/samba/bin. Aby skorzystaæ z tego skryptu, musisz
skopiowaæ nastêpuj¹ce cztery pliki z klienta Windows*:
C:\WINDOWS\INF\MSPRINT.INF
C:\WINDOWS\INF\MSPRINT2.INF
C:\WINDOWS\INF\MSPRINT3.INF
C:\WINDOWS\INF\MSPRINT4.INF
Kiedy ju¿ skopiujesz te pliki, mo¿esz utworzyæ plik definicji drukarki, u¿ywaj¹c odpowiedniego sterownika drukarki i jego pliku .INF. Jeœli nazwa sterownika zaczyna
siê od litery z zakresu od A do K, u¿yj albo pliku MSPRINT.INF, albo MSPRINT3.INF.
Jeœli zaczyna siê od litery z zakresu od L do Z, u¿yj albo pliku MSPRINT2.INF, albo
MSPRINT4.INF. Byæ mo¿e bêdziesz musia³ przeszukaæ te pliki poleceniem grep, aby
znaleŸæ swój sterownik. W poni¿szym przyk³adzie zlokalizowaliœmy nasz sterownik w pliku MSPRINT3.INF i utworzyliœmy plik definicji drukarki HP DeskJet 560C:
$grep " HP Deskjet 560C Printer " MSPRINT.INF MSPRINT3.INF
MSPRINT3.INF: " HP DeskJet 560C Printer " =DESKJETC.DRV,HP_DeskJet_ ...
$make_printerdef MSPRINT3.INF " HP DeskJet 560C Printer " & gt; printers.def
FOUND:DESKJETC.DRV
End of section found
CopyFiles: DESKJETC,COLOR_DESKJETC
Datasection: (null)
Datafile: DESKJETC.DRV
Driverfile: DESKJETC.DRV
Helpfile: HPVDJC.HLP
LanguageMonitor: (null)
Copy the following files to your printer$ share location:
DESKJETC.DRV
HPVCM.HPM
HPVIOL.DLL

*

W starszych klientach Windows 95 mog¹ byæ tylko dwa pierwsze pliki.

Wysy³anie zleceñ wydruku do Samby

201

HPVMON.DLL
HPVRES.DLL
HPCOLOR.DLL
HPVUI.DLL
HPVDJCC.HLP
color\HPDESK.ICM

Zapamiêtaj pliki, o których skopiowanie prosi skrypt. Bêdziesz ich potrzebowa³
w nastêpnym etapie.
Tworzenie udzia³u PRINTER$
Ten etap jest wzglêdnie ³atwy. Utwórz w pliku smb.conf udzia³ o nazwie [PRINTER$],
wskazuj¹cy na pusty katalog w serwerze Samby. Kiedy to zrobisz, skopiuj pliki
wskazane przez skrypt make_printerdef w po³o¿enie okreœlone opcj¹ konfiguracyjn¹
path udzia³u [PRINTER$]. Do pliku konfiguracyjnego mo¿esz dopisaæ na przy k³ad nastêpuj¹ce linie:
[PRINTER$]
path = /usr/local/samba/druk
read only = yes
browsable = no
guest ok = yes

Pliki wskazane przez skrypt make_printerdef znajduj¹ siê zwykle w katalogu
C:\WINDOWS\SYSTEM, ale mo¿esz poznaæ ich dok³adne po³o¿enie za pomoc¹ poleceñ:
cd C:\WINDOWS
dir nazwapliku /s

W naszym przyk³adzie ka¿dy plik musi zostaæ skopiowany do katalogu /usr/local/samba/druk w serwerze Samby. Oprócz tego skopiuj do udzia³u równie¿ utworzony przez siebie plik printers.def. Kiedy to zrobisz, wszystko bêdzie niemal gotowe.
Modyfikowanie pliku konfiguracyjnego Samby
Ostatni etap polega na zmodyfikowaniu pliku konfiguracyjnego Samby przez dopisanie poni¿szych opcji:
· printer driver,
· printer driver file,
· printer driver location.
Globalna opcja printer driver file powinna wskazywaæ na plik printers.def;
umieœæ j¹ w sekcji [global]. Pozosta³e dwie opcje nale¿y umieœciæ w udziale, dla
którego chcesz automatycznie instalowaæ sterowniki. Wartoœæ opcji printer
driver powinna odpowiadaæ nazwie, która pojawia siê w Kreatorze dodawania
drukarki w systemie Windows. Wartoœci¹ opcji printer driver location powinna byæ œcie¿ka UNC do utworzonego przez ciebie udzia³u [PRINTER$], a nie
uniksowa œcie¿ka do katalogu serwera. Móg³byœ zatem u¿yæ nastêpuj¹cych opcji:
[global]
printer driver file = /usr/local/samba/print/printers.def
[hpdeskjet]

202

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw
path = /var/spool/samba/drukarki
printable = yes
printer driver = HP DeskJet 560C Printer
printer driver location = \\%L\PRINTER$

Teraz mo¿esz wypróbowaæ swoj¹ konfiguracjê. Powinieneœ usun¹æ drukarkê Windows, któr¹ „zainstalowa³eœ” na pierwszym etapie, gdy wybra³eœ j¹ z listy w oknie
dialogowym Drukarki. Jeœli Windows zapyta, czy chcesz usun¹æ niepotrzebne pliki,
zrób to. Niebawem zostan¹ one zast¹pione plikami, które obecnie s¹ przechowywane w serwerze Samby.
Testowanie konfiguracji
Zrestartuj demony Samby i poszukaj udzia³u [hpdeskjet] pod ikon¹ serwera
w Otoczeniu sieciowym. Jeœli teraz klikniesz ikonê drukarki, powinieneœ zapocz¹tkowaæ proces jej instalacji i dojœæ do okna dialogowego pokazanego na rysunku 7.6.

Rysunek 7.6. Automatyczne konfigurowanie sterownika drukarki

Ró¿ni siê ono od okna, które pojawi³o siê wczeœniej podczas konfigurowania drukarki. Zasadniczo, Windows pyta, czy chcesz zaakceptowaæ „ju¿ zainstalowany” ste rownik – czyli ten, który udostêpnia Samba. Wybierz wiêc opcjê zachowania ist niej¹cego sterownika i kliknij przycisk Dalej. Teraz bêdziesz móg³ nadaæ drukarce
nazwê i wydrukowaæ stronê testow¹. Jeœli wszystko dzia³a, konfiguracja jest poprawna. Bêdziesz móg³ powtórzyæ tê procedurê w ka¿dym kliencie Windows.

Drukowanie na drukarkach udostêpnianych przez klienty
Windows
Jeœli masz drukarki pod³¹czone do klientów pracuj¹cych pod kontrol¹ Windows
95/98 lub NT 4.0, mo¿esz uzyskaæ do nich dostêp z Samby. Samba wyposa¿ona jest
w narzêdzie o nazwie smbprint, które s³u¿y do buforowania zleceñ wydruku kierowanych do drukarek Windows. Aby jednak z niego skorzystaæ, bêdziesz musia³

Drukowanie na drukarkach udostêpnianych przez klienty Windows

203

skonfigurowaæ drukarkê klienta jako wspó³dzielony zasób. Jeœli jeszcze tego nie zrobi³eœ, mo¿esz u¿yæ przycisku Start i otworzyæ okno Drukarki (patrz rysunek 7.7).

Rysunek 7.7. Okno Drukarki

Wybierz drukarkê pod³¹czon¹ lokalnie (w naszym przyk³adzie jest to drukarka Canona), kliknij j¹ prawym przyciskiem myszy i wybierz z menu pozycjê Udostêpnianie. Dostaniesz siê w ten sposób do karty Udostêpnianie w oknie w³aœciwoœci drukarki (patrz rysunek 7.8). Jeœli chcesz udostêpniæ j¹ goœcinnie wszystkim u¿ytkownikom sieci lokalnej, pozostaw puste pole has³a.

Rysunek 7.8. Karta Udostêpnianie w oknie w³aœciwoœci drukarki

204

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Kiedy ju¿ to zrobisz, mo¿esz dodaæ swoj¹ drukarkê do listy standardowych drukarek, a Samba mo¿e j¹ udostêpniæ wszystkim komputerom PC w grupie roboczej.
Aby u³atwiæ instalacjê w Uniksie, dystrybucja Samby zawiera dwa przyk³adowe
skrypty: smbprint i smbprint.sysv. Pierwszy dzia³a z drukarkami typu BSD, drugi jest
przeznaczony dla drukarek typu System V.
Drukarki BSD
Aby Unix typu BSD rozpozna³ zdaln¹ drukarkê, musz¹ byæ spe³nione dwa warunki:
1. Umieszczenie wpisu dla drukarki w pliku /etc/printcap (lub jego odpowiedniku).
2. Umieszczenie pliku konfiguracyjnego w katalogu /var/spool drukarki.
Najpierw otwórz plik /etc/printcap i dodaj wpis dla zdalnej drukarki. Pamiêtaj, ¿e
pole filtra wejœciowego (if) musi wskazywaæ na program smbprint, jeœli drukarka
jest pod³¹czona do komputera Windows 95/98. W Linuksie mo¿esz dopisaæ poni¿sze linie:
laserjet:\
:sd=/var/spool/lpd/laser:\
:mx#0:\
:sh:\
:if=/usr/local/samba/bin/smbprint:

#
#
#
#

katalog buforowy
maksymalny rozmiar pliku (brak)
brak nag³ówka (nie)
filtr tekstowy

Nastêpnie musisz utworzyæ plik konfiguracyjny w katalogu buforowym, który
okreœli³eœ wy¿ej parametrem sd (byæ mo¿e bêdziesz musia³ utworzyæ ten katalog).
Plik musi mieæ nazwê .config i powinien zawieraæ nastêpuj¹ce informacje:
· NetBIOS-ow¹ nazwê komputera Windows z drukark¹,
· nazwê us³ugi reprezentuj¹cej drukarkê,
· has³o dostêpu do tej us³ugi.
Ostatnie dwa parametry zosta³y wpisane na karcie Udostêpnianie dla zasobu klienta
Windows. W tym przypadku plik .config zawiera³by trzy linie:
server = feniks
service = CANON
password = " "

Kiedy to zrobisz, zresetuj demony Samby i spróbuj wydrukowaæ coœ z dowolnego
standardowego programu Uniksa.
Drukarki Systemu V
Wysy³anie zleceñ wydruku w Uniksach typu System V jest nieco ³atwiejsze. Tutaj
musisz u¿yæ skryptu smbprint.sysv z katalogu /usr/local/samba/examples/printing i zrobiæ co nastêpuje:
1. Zmieñ parametry server, service i password w skrypcie tak, aby odpowiada³y NetBIOS-owej nazwie komputera, nazwie udostêpnianej drukarki i has³u.
Dla us³ugi z poprzedniego przyk³adu u¿y³byœ nastêpuj¹cych parametrów:
server = feniks
service = CANON
password = " "

Drukowanie na drukarkach udostêpnianych przez klienty Windows

205

2. Wykonaj nastêpuj¹ce polecenia, które utworz¹ odwo³anie do drukarki w pliku
z parametrami drukarek. Zauwa¿, ¿e wpis dla nowej uniksowej drukarki nosi
nazwê canon:
# lpadmin -p canon -v /dev/null -i./smbprint.sysv
# enable canon
# accept canon

Kiedy to zrobisz, zresetuj demony Samby i spróbuj wydrukowaæ coœ z dowolnego
standardowego programu Uniksa. Teraz bêdziesz móg³ wysy³aæ dane do drukarki
pod³¹czonej do klienta Windows.

Opcje drukowania w Sambie
W tabeli 7.2 zebrano opcje drukowania w Sambie.
Tabela 7.2. Opcje konfiguracji drukowania
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

printing

bsd, sysv,
hpux, aix,
qnx, plp,
softq lub
lprng
WartoϾ
logiczna
£añcuch
(uniksowa
nazwa
drukarki)
£añcuch
(nazwa
sterownika
drukarki)
£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)
£añcuch
(œcie¿ka
sieciowa)
WartoϾ
liczbowa
(czas w
sekundach)
WartoϾ
logiczna

Ustawia typ systemu drukowania
w twojej odmianie Uniksa

Zale¿na
od systemu

Udzia³

Oznacza udzia³ jako udzia³
drukarki
Ustawia nazwê drukarki wysy³an¹
do klientów

no

Udzia³

Zale¿na
od systemu

Udzia³

Ustawia nazwê sterownika,
z którego powinny korzystaæ
klienty podczas wysy³ania danych
do drukarki
Ustawia nazwê pliku sterownika
drukarki

Brak

Udzia³

Brak

Globalny

Okreœla sieciow¹ œcie¿kê do
udzia³u z plikiem sterownika
drukarki
Ustawia czas, przez który Samba
bêdzie pamiêta³a status drukarki

Brak

Udzia³

10

Globalny

Traktuje wszystkie zlecenia
wydruku jak postscriptowe,
do³¹czaj¹c znaki %! na pocz¹tku
ka¿dego pliku

no

Udzia³

printable
(print ok)
printer
(printer
name)
printer
driver

printer
driver file

printer
driver
location
lpq cache
time

postscript

Dokoñczenie tabeli na str. 206

206

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Dokoñczenie tabeli ze str. 205
Tabela 7.2. Opcje konfiguracji drukowania
Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

load
printers

WartoϾ
logiczna

no

Globalny

print
command

£añcuch
(polecenie
pow³oki)
£añcuch
(polecenie
pow³oki)
£añcuch
(polecenie
pow³oki)
£añcuch
(polecenie
pow³oki)
£añcuch
(polecenie
pow³oki)
£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)
WartoϾ
liczbowa
(rozmiar w
kilobajtach)
£añcuch
(polecenie
pow³oki)
£añcuch
(polecenie
pow³oki)

Automatycznie ³aduje wszystkie
drukarki z pliku printcap na listê
udzia³ów
Ustawia polecenie Uniksa, które
zapocz¹tkowuje wydruk

Patrz ni¿ej

Udzia³

Ustawia polecenie Uniksa, które
informuje o statusie kolejki
wydruku
Ustawia polecenie Uniksa, które
usuwa zlecenie z kolejki wydruku

Patrz ni¿ej

Udzia³

Patrz ni¿ej

Udzia³

Ustawia polecenie Uniksa, które
wstrzymuje drukowanie zlecenia

Patrz ni¿ej

Udzia³

Ustawia polecenie Uniksa, które
wznawia drukowanie zlecenia

Patrz ni¿ej

Udzia³

Okreœla po³o¿enie pliku
z parametrami drukarek

Zale¿na
od systemu

Globalny

lpq
command
lprm
command
lppause
command
lpresume
command
printcap
name
(printcap)
min print
space

queuepause
command
queueresume
command

Okreœla minimalny rozmiar wolnej 0
przestrzeni dyskowej koniecznej
do rozpoczêcia drukowania

Udzia³

Ustawia polecenie Uniksa, które
wstrzymuje przetwarzanie kolejki
wydruku
Ustawia polecenie Uniksa, które
wznawia przetwarzanie kolejki
wydruku

Patrz ni¿ej

Udzia³

Patrz ni¿ej

Udzia³

printing
Opcja konfiguracyjna printing informuje Sambê o systemie druku u¿ywanym
przez serwer. W Uniksie istnieje kilka zbiorów poleceñ s³u¿¹cych do sterowania wydrukiem i okreœlania statusu zleceñ wydruku. Samba obs³uguje siedem ró¿nych typów, wymienionych w tabeli 7.3.

Drukowanie na drukarkach udostêpnianych przez klienty Windows

207

Tabela 7.3. Typy systemów druku
Zmienna

Definicja

BSD
SYSV
AIX
HPUX
QNX
LPRNG
SOFTQ
PLP

System Berkeley Unix
System V
System operacyjny AIX (IBM)
Unix Hewlett-Packard
System operacyjny czasu rzeczywistego QNX
LPR Next Generation (Powell)
System SOFTQ
Portable Line Printer (Powell)

Opcja ta mo¿e przyjmowaæ jedn¹ z siedmiu wartoœci wymienionych w tabeli. Na
przyk³ad:
printing = SYSV

Domyœlna wartoœæ tej opcji jest zale¿na od systemu i konfigurowana podczas kompilacji Samby. W wiêkszoœci systemów skrypt configure automatycznie wykrywa u¿ywany system druku i odpowiednio konfiguruje go w pliku makefile Samby. Jeœli jednak u¿ywasz systemów druku PLP, LPRNG lub QNX, bêdziesz musia³ to jawnie
okreœliæ w pliku makefile lub udziale drukarki.
Najczêœciej spotykane systemy druku to BSD i SYSV. Ka¿da drukarka serwera Uniksa BSD jest opisana w pliku parametrów drukarek – zwykle /etc/printcap.
Ustawiaj¹c opcjê printing, automatycznie ustawiasz wartoœci przynajmniej trzech
innych opcji danego udzia³u: print command, lpq command i lprm command. Jeœli Samba dzia³a w serwerze, który nie obs³uguje ¿adnej z powy¿szych metod druku,
po prostu okreœl rêcznie wartoœci tych opcji.
printable
Opcja printable musi zostaæ ustawiona na yes, aby oznaczyæ udzia³ jako us³ugê
drukarki. Jeœli opcja ta nie zostanie ustawiona, udzia³ zostanie wziêty za udzia³ dyskowy. Mo¿esz ustawiæ tê opcjê w nastêpuj¹cy sposób:
[drukarka1]
printable = yes

printer
Ta opcja (czasem u¿ywana w postaci printer name) okreœla nazwê drukarki serwera, której odpowiada udzia³. Opcja ta nie ma wartoœci domyœlnej i powinna zostaæ
jawnie ustawiona w pliku konfiguracyjnym, choæ systemy uniksowe czêsto same
rozpoznaj¹ nazwê lp jako domyœln¹ nazwê drukarki. Na przyk³ad:
[deskjet]
printer = hpdkjet1

208

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

printer driver
Opcja printer driver ustawia ³añcuch, za pomoc¹ którego Samba informuje
Windows, jak¹ drukark¹ dysponuje. Jeœli opcja ta zostanie ustawiona poprawnie,
Kreator dodawania drukarki w Windows bêdzie wiedzia³, jak¹ drukarkê instaluje,
co u³atwi pracê u¿ytkownikom i pozwoli im na pominiêcie jednego okna dialogowego. £añcuch podany w tej opcji powinien odpowiadaæ ³añcuchowi wyœwietlanemu
w oknie Kreatora dodawania drukarki (patrz rysunek 7.9). Na przyk³ad drukarka
Apple LaserWriter jest opisana ³añcuchem Apple LaserWriter, a drukarka Hewlett Packard Deskjet 560C – ³añcuchem HP DeskJet 560C Printer.

U¿yj tego ³añcucha
jako wartoœci opcji
printer driver

Rysunek 7.9. Okno dialogowe Kreatora dodawania drukarki w Windows 98

Automatyczne konfigurowanie sterowników drukarek przez Sambê zosta³o szczegó³owo opisane we wczeœniejszym podrozdziale „Automatyczne konfigurowanie
sterowników drukarki”.
printer driver file
Ta globalna opcja okreœla po³o¿enie pliku definicji drukarki Windows 95/98, który
jest niezbêdny do wys³ania plików sterownika do klientów korzystaj¹cych z drukarki Samby. Domyœlna wartoœæ tej opcji to /usr/local/samba/lib/printer.def. Mo¿esz zmieniæ tê wartoœæ w nastêpuj¹cy sposób:
[deskjet]
printer driver file = /var/drukarki/printers.def

Opcja ta jest opisana szczegó³owo we wczeœniejszym podrozdziale „Automatyczne
konfigurowanie sterowników drukarki”.
printer driver location
Ta opcja okreœla udzia³, który zawiera pliki sterowników i definicji drukarek Windows 95/98. Nie ma ona wartoœci domyœlnej. Mo¿esz okreœliæ po³o¿enie udzia³u za
pomoc¹ œcie¿ki sieciowej. Czêsto u¿ywa siê udzia³u w tym samym komputerze:

Drukowanie na drukarkach udostêpnianych przez klienty Windows

209

[deskjet]
printer driver location = \\%L\PRINTER$

Opcja ta jest opisana szczegó³owo we wczeœniejszym podrozdziale „Automatyczne
konfigurowanie sterowników drukarki”.
lpq cache time
Globalna opcja lpq cache time pozwala na okreœlenie czasu (w sekundach),
przez który Samba bêdzie pamiêta³a bie¿¹cy status drukarki. Po up³yniêciu tego czasu Samba wyda polecenie lpq (lub dowolne inne, które okreœli³eœ opcj¹ lpq
command), aby uzyskaæ bardziej aktualny status. Domyœlny czas to 10 sekund, ale
mo¿esz go zwiêkszyæ, jeœli twoje polecenie okreœlone opcj¹ lpq command wykonuje
siê bardzo d³ugo lub jeœli masz wiele klientów. Poni¿szy przyk³ad ustawia czas na 30
sekund:
[deskjet]
lpq cache time = 30

postscript
Opcja postscript sprawia, ¿e drukarka traktuje wszystkie wysy³ane do niej dane
jako PostScript. Osi¹ga siê to przez do³¹czenie znaków %! na pocz¹tku pierwszej linii ka¿dego zlecenia. Opcji tej zwykle u¿ywa siê z klientami PC, które wstawiaj¹
znak ^D ([Ctrl+D], czyli znak koñca pliku) na pocz¹tek pierwszej linii postscriptowego pliku. Oczywiœcie nie zamieni ona drukarki niepostscriptowej w postscriptow¹.
Domyœlna wartoœæ tej opcji to no. Mo¿esz zmieniæ j¹ nastêpuj¹co:
[deskjet]
postscript = yes

print command, lpq command, lprm command, lppause command, lpresume command
Te opcje informuj¹ Sambê, jakich poleceñ uniksowych nale¿y u¿yæ do sterowania
wydrukiem i wysy³ania danych do drukarki. Te polecenia Uniksa to: lpr (wysy³a
dane do drukarki), lpq (wyœwietla kolejkê wydruku), lprm (usuwa zlecenia z kolejki)
i, opcjonalnie, lppause oraz lpresume. Samba udostêpnia opcje o nazwach odpowiadaj¹cych ka¿demu z tych poleceñ na wypadek, gdybyœ musia³ zmieniæ domyœlne
parametry. Oto przyk³ad:
lpq command = /usr/ucb/lpq %p

Dziêki temu poleceniem lpq command by³oby /usr/ucb/lpq. Podobnie opcja:
lprm command = /usr/local/lprm -P%p %j

ustawi³aby polecenie usuniêcia zlecenia na /usr/local/lprm i dostarczy³a mu numer
zlecenia wydruku za pomoc¹ zmiennej %j.
Domyœlne wartoœci tych opcji zale¿¹ od wartoœci opcji printing. W tabeli 7.4 znajdziesz domyœlne polecenia dla ka¿dego systemu druku. Najpopularniejszym systemem druku jest BSD.

210

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Tabela 7.4. Domyœlne polecenia dla ró¿nych systemów druku
Opcja

BSD, AIX, PLP,
LPRNG

SYSV, HPUX

QNX

SOFTQ

print
command
lpq
command
lprm
command
lppause
command

lpr -r -P%p %s

lpr -r -P%p %s

lpq -P%p

lp -c -d%p %s;
rm %s
lpstat -o%p

lpq -P%p

lp -d%p -s %s;
rm %s
lpstat -o%p

lprm -P%p %j

cancel %p-%j

cancel %p-%j

cancel %p-%j

Brak

Brak

Brak

Brak

Brak

qstat -s
-j%j -r

lp -i %p-%j -H
hold
(tylko SYSV)
lpresume lp -i %p-%j -H
command resume
(tylko SYSV)

Zwykle nie ma potrzeby modyfikowania tych opcji; wyj¹tkiem bywa print command. Byæ mo¿e bêdziesz musia³ ustawiæ jawnie tê opcjê, jeœli twój system nie przyjmuje opcji -r (usun¹æ po wydrukowaniu) w poleceniu wydruku. Na przyk³ad:
/usr/local/lpr -P%p %s; /bin/rm %s

Odrobina programowania mo¿e zamieniæ te opcje w narzêdzie diagnostyczne:
print command = cat %s & gt; & gt; /tmp/dziennikdruku; lpr -r -P%p %s

Ta przyk³adowa opcja pozwoli stwierdziæ, czy pliki s¹ rzeczywiœcie dostarczane do
serwera Samby. Jeœli tak, ich zawartoœæ pojawi siê w pliku /tmp/dziennikdruku.
Drugim najpopularniejszym systemem druku po BSD jest SYSV (lub System V) i jego
odmiany, jak AIX IBM-a lub HP-UX Hewletta-Packarda. W systemach tych nie ma
pliku /etc/printcap. Opcjê printcap name mo¿na tu ustawiæ na odpowiednie polecenie lpstat, co informuje Sambê, ¿e powinna uzyskaæ listê drukarek z wyników polecenia lpstat. Mo¿na te¿ ustawiæ globaln¹ opcjê konfiguracyjn¹ printcap name na
nazwê samodzielnie utworzonego pliku printcap. Plik taki powinien zawieraæ linie
podobne do poni¿szych:
lp|druk1|Moja drukarka 1
druk2|Moja drukarka 2
druk3|Moja drukarka 3

Ka¿da linia nazywa drukarkê i okreœla jej aliasy. W tym przyk³adzie pierwsza drukarka nosi nazwy lp, druk1 lub Moja drukarka 1, a u¿ytkownik mo¿e pos³ugiwaæ siê dowoln¹ z nich. Pierwsza nazwa bêdzie u¿yta w miejsce zmiennej %p w ka¿dym poleceniu, które Samba wykona w odniesieniu do tej drukarki.
Samba obs³uguje równie¿ dwa inne systemy druku: LPRNG (LPR New Generation)
oraz PLP (Public Line Printer). S¹ to systemy typu public domain i Open Source,
u¿ywane w wielu sieciach w celu rozwi¹zania problemów zwi¹zanych z oprogramowaniem firmowym. Samba obs³uguje tak¿e systemy operacyjne czasu rzeczywistego SOFTQ i QNX.

Drukowanie na drukarkach udostêpnianych przez klienty Windows

211

load printers
Opcja load printers nakazuje Sambie utworzenie udzia³ów dla wszystkich dostêpnych drukarek i za³adowanie ich na listê przegl¹dania. Samba utworzy i umieœci
na liœcie udzia³ dla ka¿dej drukarki, której nazwa wystêpuje w pliku /etc/printcap
(lub jego systemowym odpowiedniku). Jeœli na przyk³ad twój plik printcap wygl¹da
nastêpuj¹co* :
lp:\
:sd=/var/spool/lpd/lp:\
:mx#0:\
:sh:\
:lp=/dev/lp1:\
:if=/var/spool/lpd/lp/filter:

#
#
#
#
#

katalog buforowy
maksymalny rozmiar pliku (brak)
pomijanie nag³ówków (nie)
nazwa urz¹dzenia wyjœciowego
filtr tekstowy

laser:\
:sd=/var/spool/lpd/laser:\
:mx#0:\
:sh:\
:lp=/dev/laser:\
:if=/var/spool/lpd/lp/filter:

#
#
#
#
#

katalog buforowy
maksymalny rozmiar pliku (brak)
pomijanie nag³ówków (nie)
nazwa urz¹dzenia wyjœciowego
filtr tekstowy

i u¿yjesz opcji:
load printers = yes

wówczas podczas uruchamiania Samby zostan¹ utworzone udzia³y drukarek [lp]
i [laser]. Oba udzia³y zostan¹ skonfigurowane wed³ug opcji z sekcji [printers] i zostan¹ umieszczone na liœcie przegl¹dania serwera Samby.
printcap name
Jeœli w udziale drukarki wystêpuje opcja printcap name (czasem nazywana printcap), Samba u¿yje okreœlonego pliku jako pliku parametrów drukarek. Zwykle jest
to plik /etc/printcap. Mo¿esz jednak ustawiæ tê opcjê tak, aby wskazywa³a plik tylko
z tymi drukarkami, które chcesz udostêpniæ w sieci. Wartoœci¹ tej opcji musi byæ
pe³na œcie¿ka i nazwa pliku parametrów drukarek w serwerze:
[deskjet]
printcap name = /usr/local/printcap

min print space
Opcja min print space okreœla minimaln¹ iloœæ przestrzeni buforowej, która
musi byæ dostêpna na dysku, aby drukowanie by³o mo¿liwe. Ustawienie jej na zero
(wartoœæ domyœlna) wy³¹cza test; ustawienie jej na dowoln¹ inn¹ wartoœæ okreœla
iloœæ wymaganej przestrzeni w kilobajtach. Dziêki tej opcji mo¿na unikn¹æ zape³nienia przestrzeni dyskowej przez zlecenia wydruku, które mog³oby doprowadziæ do
b³êdnej pracy innych procesów.
[deskjet]
min print space = 4000

* Poszczególne linie opatrzyliœmy komentarzami, aby wyjaœniæ ich przeznaczenie czytelnikom, którzy
dot¹d nie mieli do czynienia z tym plikiem.

212

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

queuepause command
Ta opcja konfiguracyjna okreœla polecenie, które wstrzymuje przetwarzanie ca³ej kolejki wydruku (w przeciwieñstwie do wstrzymywania pojedynczego zlecenia). Domyœlna wartoœæ zale¿y od wybranego typu systemu druku. Prawdopodobnie nie bêdziesz musia³ zmieniaæ tej opcji.
queueresume command
Ta opcja konfiguracyjna okreœla polecenie, które wznawia przetwarzanie kolejki
wydruku (w przeciwieñstwie do wznawiania pojedynczego zlecenia). Domyœlna
wartoœæ zale¿y od wybranego typu systemu druku. Prawdopodobnie nie bêdziesz
musia³ zmieniaæ tej opcji.

Odwzorowywanie nazw w Sambie
Przed opracowaniem serwerów nazw NetBIOS-owych (NBNS), odwzorowywanie
nazw opiera³o siê wy³¹cznie na rozg³oszeniach. Jeœli potrzebny by³ adres komputera, wystarczy³o rozg³osiæ jego nazwê w ca³ej sieci i czekaæ na odpowiedŸ od tego
komputera. Taka metoda jest nadal dostêpna: szukaj¹c komputera o nazwie fra
nek, mo¿na rozg³osiæ zapytanie i dowiedzieæ siê, czy taki komputer istnieje i jaki jest
jego adres (u¿yjemy tej metody do diagnozowania us³ug nazewniczych Samby za
pomoc¹ polecenia nmblookup w rozdziale 9, Rozwi¹zywanie problemów).
Jak dowiedzia³eœ siê w rozdziale 1, pakiety rozg³oszeniowe – czy to zwi¹zane
z przegl¹daniem, czy rejestracj¹ i odwzorowywaniem nazw – nie przechodz¹ przez
granice podsieci. Co gorsze, czêste rozg³oszenia obni¿aj¹ efektywnoœæ sieci. Aby rozwi¹zaæ ten problem, Microsoft opracowa³ us³ugê Windows Internet Name Service
(WINS), czyli serwer NBNS dostêpny z wielu podsieci, który Samba potrafi emulowaæ. Dziêki temu administrator mo¿e wyznaczyæ jeden z komputerów na serwer
WINS, a nastêpnie podaæ jego adres ka¿demu z klientów, które korzystaj¹ z us³ug
odwzorowywania nazw. W rezultacie ¿¹dania rejestracji i odwzorowania nazwy mog¹
byæ kierowane do jednego komputera z dowolnego punktu sieci, a nie rozg³aszane.
WINS i rozg³oszenia nie s¹ jednak jedynymi metodami odwzorowywania nazw.
W istocie Samba dysponuje czterema ró¿nymi mechanizmami:
· WINS,
· rozg³oszenia,
· plik /etc/hosts lub us³ugi NIS/NIS+,
· plik LMHOSTS.
Samba mo¿e korzystaæ z dowolnego albo ze wszystkich tych mechanizmów, w kolejnoœci okreœlonej opcj¹ name resolve order. Zanim jednak przedstawimy dostêpne opcje konfiguracyjne, omówimy plik, z którym zapewne nie mia³eœ nigdy do
czynienia: LMHOSTS.

Odwzorowywanie nazw w Sambie

213

Plik LMHOSTS
LMHOSTS to standardowy plik hostów LAN Managera, u¿ywany do odwzorowywania nazw na adresy IP w lokalnym systemie. W NBT jest on odpowiednikiem
standardowego uniksowego pliku /etc/hosts. Domyœlnie plik ten jest przechowywany w katalogu /usr/local/samba/lib i ma format podobny do pliku /etc/hosts, na
przyk³ad:
192.168.220.100
192.168.220.101

hydra
feniks

Jedyna ró¿nica polega na tym, ¿e nazwy po prawej stronie wpisów s¹ nazwami NetBIOS-owymi, a nie nazwami DNS. Poniewa¿ s¹ to nazwy NetBIOS-owe, mo¿esz
przypisaæ im tak¿e typ zasobu:
192.168.220.100
192.168.220.100
192.168.220.101

hydra#20
prosta#1b
feniks#20

W przyk³adzie tym okreœliliœmy komputer hydra jako podstawowy kontroler domeny PROSTA, o czym informuje typ zasobu & lt; 1B & gt; przypisany nazwie zwi¹zanej
z adresem IP hydry w drugiej linii. Pozosta³e dwa wpisy okreœlaj¹ standardowe stacje robocze.
Jeœli chcesz umieœciæ plik LMHOSTS w niestandardowym po³o¿eniu, bêdziesz musia³ poinformowaæ o tym proces nmbd podczas startu:
nmbd -H /etc/samba/lmhosts -D

Konfigurowanie Samby do wspó³pracy z innym serwerem WINS
Mo¿esz skonfigurowaæ Sambê do wspó³pracy z serwerem WINS znajduj¹cym siê
w innym miejscu sieci, podaj¹c po prostu adres tego serwera. S³u¿y do tego globalna
opcja konfiguracyjna wins server:
[global]
wins server = 192.168.200.122

Po dopisaniu tej opcji Samba bêdzie kierowaæ wszystkie ¿¹dania WINS do serwera
znajduj¹cego siê pod adresem 192.168.200.122. Poniewa¿ ¿¹danie jest kierowane
bezpoœrednio do innego komputera, nie wystêpuj¹ tu problemy nieod³¹cznie zwi¹zane
z metod¹ rozg³oszeniow¹. Jednak¿e, mimo podania adresu serwera WINS w pliku
konfiguracyjnym, Samba niekoniecznie u¿yje go przed wypróbowaniem innych metod odwzorowywania nazw. Kolejnoœæ, w której Samba próbuje ró¿nych metod odwzorowywania nazw, jest okreœlona opcj¹ name resolve order, o której bêdzie
mowa za chwilê.
Jeœli serwer Samby znajduje siê w podsieci u¿ywaj¹cej rozg³oszeñ i zna po³o¿enie
serwera WINS w innej podsieci, za pomoc¹ opcji wins proxy mo¿na skonfigurowaæ go tak, aby przekazywa³ wszystkie ¿¹dania odwzorowania nazwy:
[global]
wins server = 192.168.200.12
wins proxy = yes

214

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

Opcji tej powinieneœ u¿yæ tylko wtedy, gdy serwer WINS znajduje siê w innej podsieci. W przeciwnym wypadku rozg³oszenie zostanie odebrane przez serwer WINS
bez poœrednictwa Samby.

Konfigurowanie Samby jako serwera WINS
Mo¿esz skonfigurowaæ Sambê jako serwer WINS, ustawiaj¹c dwie globalne opcje
w pliku konfiguracyjnym:
[global]
wins support = yes
name resolve order = wins lmhosts hosts bcast

Opcja wins support zamienia Sambê w serwer WINS. Choæ trudno w to uwierzyæ,
to jest wszystko, co trzeba zrobiæ. Samba zajmie siê wszystkimi szczegó³ami, daj¹c
administratorowi chwilê wytchnienia. Opcje wins support=yes oraz wins server wzajemnie siê wykluczaj¹; nie mo¿esz uczyniæ Samby serwerem WINS i jednoczeœnie podaæ innego komputera jako serwera WINS.
Jeœli Samba dzia³a jako serwer WINS, prawdopodobnie powinieneœ zaznajomiæ siê
ze wspomnian¹ wczeœniej opcj¹ name resolve order. Opcja ta okreœla kolejnoœæ
metod, których Samba u¿ywa w celu odwzorowania NetBIOS-owej nazwy. Mo¿esz
podaæ w niej cztery wartoœci:
lmhosts
U¿ywa pliku LMHOSTS LAN Managera.
hosts
U¿ywa standardowych metod odwzorowywania nazw w Uniksie: pliku /etc/hosts,
DNS, NIS lub ich kombinacji (zgodnie z konfiguracj¹ systemu).
wins
U¿ywa serwera WINS.
bcast
U¿ywa metody rozg³oszeniowej.
Kolejnoœæ, w jakiej wpiszesz te wartoœci, bêdzie odpowiadaæ kolejnoœci, w jakiej
Samba wypróbuje ró¿ne metody odwzorowania nazwy podczas pracy w charakterze serwera WINS. Przyjrzyjmy siê wartoœciom podanym w poprzednim przyk³adzie:
name resolve order = wins lmhosts hosts bcast

Oznacza to, ¿e Samba najpierw spróbuje odwzorowaæ nazwê na podstawie swoich
wpisów WINS. Nastêpnie skorzysta z lokalnego pliku LAN Managera, LMHOSTS.
PóŸniej wypróbuje uniksowe metody odwzorowywania nazw, o czym informuje
wartoœæ hosts. S³owo to mo¿e byæ myl¹ce: obejmuje nie tylko u¿ycie pliku /etc/hosts,
ale tak¿e us³ug DNS lub NIS (zgodnie z konfiguracj¹ uniksowego systemu). Wreszcie, jeœli te trzy metody nie przynios¹ rezultatu, Samba spróbuje zlokalizowaæ komputer metod¹ rozg³oszeniow¹.
Mo¿esz te¿ poinstruowaæ serwer Samby dzia³aj¹cy jako serwer WINS, aby skonsultowa³ siê z systemowym serwerem DNS, jeœli nie odnajdzie ¿¹danego hosta w swojej

Odwzorowywanie nazw w Sambie

215

bazie danych WINS. W typowym systemie linuksowym mo¿esz znaleŸæ adres serwera DNS w pliku /etc/resolv.conf. Zobaczysz tam wpis podobny do poni¿szego:
nameserver 127.0.0.1
nameserver 192.168.200.192

Informuje on, ¿e serwer DNS znajduje siê pod adresem 192.168.200.192 (127.0.0.1 to
adres lokalnego hosta, który nigdy nie jest poprawnym adresem serwera DNS).
U¿yj globalnej opcji dns proxy, aby Samba korzysta³a ze skonfigurowanego w systemie serwera DNS:
[global]
wins support = yes
name resolve order = wins lmhosts hosts bcast
dns proxy = yes

Opcje konfiguracji odwzorowywania nazw
Opcje Samby zwi¹zane z WINS s¹ zebrane w tabeli 7.5.
Tabela 7.5. Opcje WINS
Opcja
Parametry Funkcja
wins
support
wins
server

wins
proxy

WartoϾ
logiczna
£añcuch
(adres IP
lub nazwa
DNS)
WartoϾ
logiczna

WartoϾ
domyœlna

Zasiêg

Jeœli jest ustawiona na yes, Samba
bêdzie dzia³aæ jako serwer WINS
Identyfikuje serwer WINS, którego
Samba bêdzie u¿ywaæ do rejestrowania i odwzorowywania nazw

no

Globalny

Brak

Globalny

Umo¿liwia Sambie poœredniczenie
w zapytaniach do serwera WINS
znajduj¹cego siê w innej podsieci
Jeœli jest ustawiona na yes, Samba
przeszuka DNS, jeœli nie znajdzie
nazwy w WINS
Okreœla kolejnoœæ metod u¿ywanych
do odwzorowywania nazw
NetBIOS-owych

no

Globalny

no

Globalny

lmhosts
hosts
wins
bcast
259200
(3 dni)

Globalny

518400
(6 dni)

Globalny

21600
(6 godzin)

Globalny

dns proxy

WartoϾ
logiczna

name
resolve
order

lmhosts,
hosts,
wins
lub bcast
WartoϾ
Okreœla maksymalny „czas ¿ycia”
liczbowa
(w sekundach) odwzorowanych nazw
NetBIOS-owych
WartoϾ
Okreœla maksymalny „czas ¿ycia”
liczbowa
(w sekundach) nazw NetBIOS-owych
zwracanych przez Sambê dzia³aj¹c¹
jako serwer WINS
WartoϾ
Okreœla minimalny „czas ¿ycia”
liczbowa
(w sekundach) nazw NetBIOS-owych
zwracanych przez Sambê dzia³aj¹c¹
jako serwer WINS

max ttl

max wins
ttl

min wins
ttl

Globalny

216

Rozdzia³ 7: Drukowanie i odwzorowywanie nazw

wins support
Samba bêdzie œwiadczyæ us³ugi WINS na rzecz wszystkich komputerów w sieci, jeœli
dopiszesz poni¿sz¹ liniê do sekcji [global] pliku smb.conf:
[global]
wins support = yes

Domyœlna wartoœæ tej opcji to no, co pozwala innemu komputerowi (zwykle serwerowi Windows NT) na pe³nienie funkcji serwera WINS. Jeœli w³¹czysz tê opcjê, pamiêtaj, ¿e Samba dzia³aj¹ca jako serwer WINS obecnie nie mo¿e wymieniaæ danych
z zapasowymi serwerami WINS. Opcja ta wzajemnie wyklucza siê z opcj¹ wins
server; jeœli obie te opcje ustawisz jednoczeœnie na yes, Samba zg³osi b³¹d.
wins server
Samba u¿yje innego dostêpnego w sieci serwera WINS, jeœli umieœcisz w pliku konfiguracyjnym opcjê wins server. Wartoœci¹ tej opcji mo¿e byæ albo adres IP, albo
nazwa DNS (nie NetBIOS-owa) serwera WINS. Na przyk³ad:
[global]
wins server = 192.168.220.110

lub
[global]
wins server = wins.przyklad.com

Aby opcja ta zadzia³a³a, opcja wins support musi byæ ustawiona na no (wartoœæ
domyœln¹). W przeciwnym wypadku Samba zg³osi b³¹d. Za pomoc¹ tej opcji mo¿esz
okreœliæ adres tylko jednego serwera WINS.
wins proxy
Ta opcja pozwala Sambie dzia³aæ jako poœrednik innego serwera WINS, a wiêc przekazywaæ kierowane do siebie ¿¹dania rejestracji i odwzorowywania nazw do rze czywistego serwera WINS, czêsto znajduj¹cego siê w innej podsieci. Adres tego serwera mo¿na okreœliæ za pomoc¹ opcji wins server. Samba bêdzie zwracaæ klientom odpowiedzi serwera WINS. Mo¿esz w³¹czyæ tê opcjê, dopisuj¹c poni¿sz¹ liniê
w sekcji [global]:
[global]
wins proxy = yes

dns proxy
Jeœli chcesz u¿ywaæ us³ug Domain Name Service (DNS) wtedy, gdy nazwa nie zostanie znaleziona w WINS, mo¿esz ustawiæ nastêpuj¹c¹ opcjê:
[global]
dns proxy = yes

Sprawi ona, ¿e proces nmbd bêdzie wyszukiwa³ nazwy komputerów za pomoc¹
standardowych us³ug DNS serwera. Zapewne zechcesz wy³¹czyæ tê opcjê, jeœli nie
masz sta³ego po³¹czenia z serwerem DNS. Mimo istnienia tej opcji, zalecamy raczej
u¿ycie serwera WINS. Jeœli w twojej sieci nie ma jeszcze serwera WINS, skonfiguruj

Odwzorowywanie nazw w Sambie

217

jeden z komputerów z Samb¹ jako serwer WINS. Nie mo¿esz jednak skonfigurowaæ
dwóch komputerów z Samb¹ jako serwerów WINS (podstawowego i zapasowego),
poniewa¿ obecnie Samba nie mo¿e wymieniaæ baz danych WINS.
name resolve order
Globalna opcja name resolve order okreœla kolejnoœæ metod u¿ywanych przez
Sambê podczas odwzorowywania nazw. Domyœlnie w celu ustalenia adresu komputera Samba najpierw sprawdza plik LMHOSTS, nastêpnie korzysta ze standardowych metod odwzorowywania nazw w Uniksie (kombinacja /etc/hosts, DNS i NIS),
póŸniej odpytuje serwer WINS, a wreszcie u¿ywa rozg³oszeñ. Mo¿esz zmieniæ wartoœæ tej opcji w nastêpuj¹cy sposób:
[global]
name resolve order = lmhosts wins hosts bcast

W tym przyk³adzie nazwy bêd¹ odwzorowywane przez sprawdzanie pliku
LMHOSTS, odpytywanie serwera WINS, sprawdzanie systemowego pliku hostów,
a wreszcie rozg³oszenia. Jeœli nie chcesz, nie musisz u¿ywaæ wszystkich czterech metod. Opcja ta jest opisana szczegó³owo we wczeœniejszym podrozdziale „Konfigurowanie Samby jako serwera WINS”.
max ttl
Ta opcja okreœla maksymalny „czas ¿ycia” (time to live, TTL), przez który nazwa NetBIOS-owa zarejestrowana w serwerze Samby pozostanie aktywna. Prawdopodobnie nie bêdziesz musia³ modyfikowaæ tej wartoœci.
max wins ttl
Ta opcja okreœla maksymalny „czas ¿ycia” (TTL), przez który nazwa NetBIOS-owa
odwzorowana przez serwer WINS pozostanie aktywna. Prawdopodobnie nie bê dziesz musia³ modyfikowaæ tej wartoœci.
min wins ttl
Ta opcja okreœla minimalny „czas ¿ycia” (TTL), przez który nazwa NetBIOS-owa odwzorowana przez serwer WINS pozostanie aktywna. Prawdopodobnie nie bêdziesz
musia³ modyfikowaæ tej wartoœci.

Dodatkowe informacje
o Sambie

8

Rozdzia³ 8: Dodatkowe informacje o Sambie

W tym rozdziale zakoñczymy opis pliku konfiguracyjnego Samby, podaj¹c ró¿norodne opcje o najrozmaitszym przeznaczeniu. Omówimy krótko opcje s³u¿¹ce do
wspierania programistów, internacjonalizacji, przesy³ania komunikatów i usuwania usterek Windows. Zwykle opcji tych bêdziesz u¿ywa³ tylko w szczególnych okolicznoœciach. Pod koniec rozdzia³u omówimy tak¿e automatyczne wykonywanie
kopii zapasowych za pomoc¹ polecenia smbtar. Bez dalszych wstêpów zajmijmy siê
wiêc pierwszym zagadnieniem: opcjami pomocnymi przy programowaniu.

Pomoc dla programistów
Jeœli z twojego serwera Samby korzystaj¹ programiœci, powinieneœ zainteresowaæ siê
opcjami wymienionymi w tabeli 8.1.
Tabela 8.1. Opcje konfiguracji wsparcia dla programistów
Opcja

Parametry Funkcja

WartoϾ
domyœlna

Zasiêg

time server

WartoϾ
logiczna

no

Globalny

time offset

WartoϾ
liczbowa
(liczba
minut)
WartoϾ
logiczna

0

Globalny

dos
filetimes

dos filetime WartoϾ
resolution
logiczna
fake
WartoϾ
directory
logiczna
create times

Jeœli jest ustawiona na yes, nmbd
bêdzie og³asza³ siê jako serwer czasu
SMB dla klientów Windows
Dodaje okreœlon¹ liczbê minut do
zg³aszanego czasu

Pozwala zmieniaæ czas modyfikacji
no
pliku u¿ytkownikom innym ni¿
w³aœciciel pliku, jeœli tylko maj¹ prawo
do zapisu w tym pliku
Sprawia, ¿e czasy modyfikacji pliku s¹ no
zaokr¹glane do nastêpnej parzystej
sekundy
Fa³szuje czasy utworzenia katalogów, no
aby uporaæ siê z usterk¹ w programie
nmake Microsoftu

Udzia³

Udzia³

Udzia³

220

Rozdzia³ 8: Dodatkowe informacje o Sambie

Synchronizacja czasu
Synchronizacja czasu mo¿e mieæ du¿e znaczenie dla programistów. Rozwa¿ nastêpuj¹ce opcje:
time server = yes
dos filetimes = yes
fake directory create times = yes
dos filetime resolution = yes
delete readonly = yes

Jeœli ustawisz te opcje, Samba bêdzie zwraca³a czasy zgodne z wymogami Visual
C++, nmake i innych narzêdzi programistycznych Microsoftu. W przeciwnym wy padku programy typu make dla komputerów PC bêd¹ uwa¿a³y, ¿e za ka¿dym razem
trzeba ponownie skompilowaæ wszystkie pliki w katalogu. Oczywiœcie, nie jest to
po¿¹dane dzia³anie.
time server
Jeœli twój serwer Samby ma dok³adny zegar lub jeœli jest klientem jednego z uniksowych serwerów czasu, mo¿esz poinstruowaæ go, aby og³asza³ siê jako serwer czasu
SMB, ustawiaj¹c opcjê time server:
[global]
time server = yes

Klient bêdzie musia³ za¿¹daæ dostarczenia mu czasu, u¿ywaj¹c poni¿szego polecenia DOS-a (w odpowiednim miejscu nale¿y podstawiæ nazwê serwera):
C:\NET TIME \\serwer /YES /SET

Polecenie to mo¿na umieœciæ w skrypcie logowania Windows (patrz rozdzia³ 6,
U¿ytkownicy, bezpieczeñstwo i domeny).
Domyœlnie opcja time server jest ustawiona na no. Jeœli w³¹czysz tê us³ugê, bêdziesz móg³ u¿yæ powy¿szego polecenia, aby zsynchronizowaæ zegary klientów.
Synchronizacja czasu jest wa¿na w klientach u¿ywaj¹cych programów takich jak
make, które kompiluj¹ pliki na podstawie czasu ostatniej modyfikacji. •le zsynchronizowany czas mo¿e spowodowaæ, ¿e albo wszystkie pliki w katalogu zostan¹ przekompilowane, co jest strat¹ czasu, albo nie zostanie skompilowany plik Ÿród³owy,
który zosta³ zmodyfikowany przed chwil¹.
time offset
Aby obs³u¿yæ klienty, które b³êdnie pos³uguj¹ siê czasem letnim, Samba udostêpnia
opcjê time offset. Jeœli opcja ta jest ustawiona, do bie¿¹cego czasu dodawana jest
okreœlona liczba minut. Przydaje siê to, jeœli pracujesz w Nowej Fundlandii, a Windows nie wie o obowi¹zuj¹cej tam 30-minutowej ró¿nicy czasu:
[global]
time offset = 30

dos filetimes
W systemach uniksowych tylko root i w³aœciciel pliku mog¹ zmieniæ czas ostatniej
modyfikacji pliku. Opcja udzia³u dos filetimes umo¿liwia Sambie naœladowa-

Magiczne skrypty

221

nie DOS-a i Windows: ka¿dy u¿ytkownik mo¿e zmieniæ czas ostatniej modyfikacji
pliku, jeœli tylko ma prawo do zapisu w tym udziale. Aby to zrobiæ, Samba korzysta
z przywilejów roota w celu zmiany znacznika czasowego pliku.
Domyœlnie opcja ta jest wy³¹czona. Ustawienie jej na yes bywa niezbêdne do za pewnienia poprawnej pracy programów make dla komputerów PC. Inaczej programy te nie bêd¹ mog³y zmieniaæ czasów ostatniej modyfikacji plików, przez co czêsto
bêd¹ rekompilowaæ wszystkie pliki, choæby nie by³o to potrzebne.
dos filetime resolution
Jest to opcja udzia³u. Jeœli jest ustawiona na yes, Samba bêdzie zaokr¹glaæ czasy modyfikacji pliku do najbli¿szej wielokrotnoœci dwóch sekund. Opcja ta s³u¿y przede
wszystkim do uporania siê z usterk¹ w Windows, przez któr¹ Visual C++ nie do strzega, ¿e plik nie zosta³ zmodyfikowany. Mo¿esz w³¹czyæ j¹ w nastêpuj¹cy sposób:
[dane]
dos filetime resolution = yes

Zalecamy u¿ycie tej opcji tylko wtedy, gdy Visual C++ u¿ywa plików w udziale korzystaj¹cym z blokad oportunistycznych.
fake directory create times
Opcja fake directory create times pozwala na poprawn¹ pracê programów
make dla komputerów PC. Systemy VFAT i NTFS zapisuj¹ czas utworzenia katalogu,
a Unix nie. Bez tej opcji Samba pobiera najwczeœniejsz¹ zarejestrowan¹ datê dla katalogu (czêsto jest to data ostatniej modyfikacji pliku) i zwraca j¹ klientowi. Jeœli to nie
wystarcza, ustaw poni¿sz¹ opcjê w definicji udzia³u:
[dane]
fake directory create times = yes

Jeœli opcja ta jest ustawiona, Samba bêdzie zg³aszaæ czas utworzenia katalogu równy
zakodowanej na sta³e wartoœci 1 stycznia 1980 roku. S³u¿y g³ównie do przekonania
programu nmake z pakietu Visual C++, ¿e pliki obiektowe w katalogach budowy zosta³y rzeczywiœcie utworzone póŸniej ni¿ sam katalog i wymagaj¹ ponownej kompilacji.

Magiczne skrypty
Poni¿sze opcje s³u¿¹ do obs³ugi magicznych skryptów w serwerze Samby. Magiczne
skrypty umo¿liwiaj¹ wykonywanie programów w Uniksie i zwracanie ich wyników
klientom SMB. Maj¹ one charakter zarazem eksperymentalny i prowizoryczny.
Mimo to niektórzy u¿ytkownicy wci¹¿ potrzebuj¹ tych dwóch opcji do zapewnienia
poprawnej pracy swoich programów. Magiczne skrypty nie ciesz¹ siê wiêkszym zaufaniem, a zespó³ twórców Samby stanowczo odradza ich u¿ycie. Wiêcej informacji
znajdziesz w tabeli 8.2.

222

Rozdzia³ 8: Dodatkowe informacje o Sambie

Tabela 8.2. Opcje konfiguracji magicznych skryptów
Opcja

Parametry

Funkcja

magic
script

£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)
£añcuch
(nazwa
pliku wraz
ze œcie¿k¹)

Ustawia nazwê pliku, który zaraz po
Brak
zamkniêciu powinien zostaæ wykonany
przez Sambê z przywilejami zalogowanego u¿ytkownika.
Ustawia nazwê pliku, w którym zostan¹ nazwaskryptu.
zapisane wyniki magicznego skryptu
out

magic
output

WartoϾ
domyœlna

Zasiêg
Udzia³

Udzia³

magic script
Jeœli w opcji magic script podasz nazwê pliku, a klient utworzy w udziale plik
o takiej nazwie, Samba wykona ten plik po jego otwarciu i zamkniêciu przez u¿ytkownika. Za³ó¿my, ¿e w udziale [ksiegowosc] umieszczono poni¿sz¹ opcjê:
[ksiegowosc]
magic script = rejestr.sh

Samba bêdzie nieprzerwanie monitorowaæ pliki w tym udziale. Gdy plik o nazwie
rejestr.sh zostanie zamkniêty przez u¿ytkownika (po uprzednim otwarciu),
Samba wykona lokalnie polecenia zawarte w tym pliku. Plik zostanie przekazany do
wykonania pow³oce; musi zatem byæ poprawnym skryptem pow³oki Uniksa. Oznacza to, ¿e linie skryptu powinny koñczyæ siê znakiem nowej linii, a nie u¿ywan¹
w Windows kombinacj¹ powrót karetki – nowa linia. Na pocz¹tku pliku warto te¿
dodaæ dyrektywê #!, aby wskazaæ pow³okê, która powinna wykonaæ skrypt.
magic output
Ta opcja okreœla plik wyjœciowy, do którego skrypt wymieniony w opcji magic
script bêdzie wysy³a³ swoje dane. Plik ten musi znajdowaæ siê w zapisywalnym
katalogu:
[ksiegowosc]
magic script = rejestr.sh
magic output = /var/log/magicznewyniki

Jeœli pominiesz tê opcjê, domyœlny plik wyjœciowy bêdzie mia³ tê sam¹ nazwê co
skrypt (okreœlony opcj¹ magic script), ale z do³¹czonym rozszerzeniem .out.

Internacjonalizacja
Samba posiada ograniczon¹ zdolnoœæ pos³ugiwania siê obcymi jêzykami: jeœli musisz pos³ugiwaæ siê znakami spoza standardowego zbioru ASCII, pomog¹ ci w tym
opcje wymienione w tabeli 8.3. Jeœli nie masz takiej potrzeby, mo¿esz pomin¹æ ten
podrozdzia³.

Internacjonalizacja

223

Tabela 8.3. Opcje obs³ugi jêzyków narodowych
Opcja

Parametry

Funkcja

Ustawia stronê kodow¹, któr¹
pos³uguj¹ siê klienty
T³umaczy strony kodowe na
alternatywne zestawy znaków
Uniksa
coding
Opisane w tym T³umaczy stronê kodow¹ 932
system
podrozdziale
na azjatycki zestaw znaków
valid chars £añcuch
Przestarza³a; poprzednio
(zbiór znaków) dodawa³a pojedyncze znaki
do strony kodowej i nale¿a³o jej
u¿ywaæ ju¿ po ustawieniu strony
kodowej klienta
client code
page
character
set

Opisane w tym
podrozdziale
Opisane w tym
podrozdziale

WartoϾ
domyœlna

Zasiêg

850

Globalny

Brak

Globalny

Brak

Globalny

Brak

Globalny

client code page
Zestawy znaków w systemach Windows bior¹ swój pocz¹tek z pierwotnej koncepcji
stron kodowych. Strony kodowe s¹ u¿ywane przez klienty DOS-a i Windows w celu
ustalenia regu³ odwzorowywania liter ma³ych na du¿e. Samba mo¿e u¿ywaæ ró¿ nych stron kodowych dziêki opcji client code page, któr¹ nale¿y ustawiæ tak,
aby odpowiada³a stronie kodowej klienta. Opcja ta powoduje za³adowanie pliku
z definicj¹ strony kodowej i mo¿e przybieraæ wartoœci wymienione w tabeli 8.4.
Tabela 8.4. Strony kodowe dostêpne w Sambie 2.0
Strona kodowa Definicja
437
737
850
852
861
866
932
936
949
950

MS-DOS Latin (Stany Zjednoczone)
Windows 95 grecki
MS-DOS Latin 1 (zachodnioeuropejski)
MS-DOS Latin 2 (wschodnioeuropejski)
MS-DOS islandzki
MS-DOS cyrylica (rosyjski)
MS-DOS japoñski Shift-JIS
MS-DOS uproszczony chiñski
MS-DOS koreañski Hangul
MS-DOS tradycyjny chiñski

Mo¿esz ustawiæ stronê kodow¹ klienta w nastêpuj¹cy sposób:
[global]
client code page = 852

Domyœlna wartoœæ tej opcji to 850. Mo¿esz u¿yæ narzêdzia make_smbcodepage dostarczanego wraz z Samb¹ (domyœlnie w katalogu /usr/local/samba/bin) w celu utworzenia w³asnych stron kodowych SMB, gdyby te wymienione w tabeli 8.4 okaza³y siê
niewystarczaj¹ce.

224

Rozdzia³ 8: Dodatkowe informacje o Sambie

character set
Globalna opcja character set s³u¿y do przekszta³cania nazw plików udostêpnianych przez dosow¹ stronê kodow¹ (patrz poprzedni podrozdzia³, „client code
page”) na odpowiedniki reprezentowane przez zestawy znaków Uniksa inne ni¿ te,
które s¹ u¿ywane w Stanach Zjednoczonych. Jeœli na przyk³ad chcia³byœ t³umaczyæ
zachodnioeuropejskie znaki MS-DOS-a na zachodnioeuropejskie znaki Uniksa,
móg³byœ dopisaæ poni¿sze opcje do pliku konfiguracyjnego:
[global]
client code page = 850
character set = IOS8859-1

Zauwa¿, ¿e musisz u¿yæ opcji client code page, aby okreœliæ przekszta³cany zestaw znaków. Zestawy znaków (i odpowiadaj¹ce im strony kodowe) dostêpne
w Sambie 2.0 s¹ wymienione w tabeli 8.5:
Tabela 8.5. Zestawy znaków dostêpne w Sambie 2.0
Zestaw znaków

Strona kodowa

Opis

ISO8859-1
ISO8859-2
ISO8859-5
KOI8-R

850
852
866
866

Zachodnioeuropejski zestaw znaków Uniksa
Wschodnioeuropejski zestaw znaków Uniksa
Rosyjski zestaw znaków Uniksa (cyrylica)
Alternatywny rosyjski zestaw znaków Uniksa (cyrylica)

Opcja character set jest domyœlnie wy³¹czona.
coding system
Opcja coding system przypomina opcjê character set. S³u¿y ona jednak do
okreœlenia, jak nale¿y przekszta³ciæ japoñsk¹ stronê kodow¹ Shift JIS na odpowiedni
zestaw znaków Uniksa. Aby u¿yæ tej opcji, musisz najpierw ustawiæ opisan¹ wczeœniej opcjê client code page na 932. Systemy kodowania akceptowane przez
Sambê 2.0 s¹ wymienione w tabeli 8.6.
Tabela 8.6. Parametry systemu kodowania w Sambie 2.0
Zestaw znaków Opis
SJIS
JIS8
J8BB
J8BH
J8@B
J8@J
J8@H
JIS7

Standardowy system Shift JIS
Oœmiobitowe kody JIS
Oœmiobitowe kody JIS
Oœmiobitowe kody JIS
Oœmiobitowe kody JIS
Oœmiobitowe kody JIS
Oœmiobitowe kody JIS
Siedmiobitowe kody JIS

Komunikaty WinPopup

225

Zestaw znaków Opis
J7BB
J7BH
J7@B
J7@J
J7@H
JUNET
JUBB
JUBH
JU@B
JU@J
JU@H
EUC
HEX
CAP

Siedmiobitowe kody JIS
Siedmiobitowe kody JIS
Siedmiobitowe kody JIS
Siedmiobitowe kody JIS
Siedmiobitowe kody JIS
Kody JUNET
Kody JUNET
Kody JUNET
Kody JUNET
Kody JUNET
Kody JUNET
Kody EUC
Trzybajtowe kody szesnastkowe
Trzybajtowe kody szesnastkowe (Columbia Appletalk Program)

valid chars
Opcja valid chars to starsza funkcja Samby, pozwalaj¹ca na dodanie pojedynczych znaków do strony kodowej. Opcja ta jednak jest wypierana przez nowoczeœniejsze systemy kodowania. Mo¿esz u¿ywaæ jej nastêpuj¹co:
valid chars = Î
valid chars = 0450:0420 0x0A20:0x0A00
valid chars = A:a

Wszystkie znaki na liœcie powinny byæ oddzielone spacjami. Jeœli miêdzy dwoma
znakami lub ich liczbowymi odpowiednikami znajduje siê dwukropek, znak po lewej stronie jest uwa¿any za du¿y, a po prawej – za ma³y. Mo¿esz podaæ znaki albo
dos³ownie (jeœli mo¿esz je wpisaæ z klawiatury), albo u¿ywaj¹c ich odpowiedników
ósemkowych, szesnastkowych lub dziesiêtnych w Unikodzie.
Nie zalecamy u¿ywania tej opcji. Zamiast niej lepiej stosowaæ jedn¹ z wymienionych
wczeœniej standardowych stron kodowych. Jeœli jednak korzystasz z tej opcji, musisz
wpisaæ j¹ po definicji strony kodowej klienta (client code page), do której chcesz
dodaæ znak. W przeciwnym wypadku znaki nie zostan¹ dodane.

Komunikaty WinPopup
Narzêdzie WinPopup (WINPOPUP.EXE) w Windows s³u¿y do wysy³ania komunikatów do u¿ytkowników, komputerów lub ca³ych grup roboczych. Narzêdzie to
wchodzi w sk³ad Windows 95 OSR2 i jest standardowym elementem Windows 98.
Zarówno w Windows 95, jak i 98 musisz uruchomiæ program WinPopup, aby
wysy³aæ i odbieraæ komunikaty. W Windows NT mo¿esz odbieraæ je bez uruchamiania ¿adnego narzêdzia; bêd¹ pojawiaæ siê automatycznie w niewielkim oknie dialogowym na ekranie. Okno aplikacji WinPopup jest pokazane na rysunku 8.1.

226

Rozdzia³ 8: Dodatkowe informacje o Sambie

Rysunek 8.1. Aplikacja WinPopup

Samba dysponuje tylko jedn¹ opcj¹ zwi¹zan¹ z komunikatami WinPopup, message
command (patrz tabela 8.7).
Tabela 8.7. Opcja konfiguracji WinPopup
Opcja

Parametry

Funkcja

message
command

£añcuch
Okreœla polecenie, które nale¿y
(pe³na nazwa
wykonaæ w Uniksie po odebraniu
wraz ze œcie¿k¹) komunikatu WinPopup

WartoϾ
domyœlna

Zasiêg

Brak

Globalny

message command
Opcja message command okreœla œcie¿kê do polecenia, które zostanie wykonane
w serwerze Samby po odebraniu komunikatu WinPopup. Polecenie to zostanie wykonane z przywilejami u¿ytkownika okreœlonego opcj¹ guest account. Prawdê
mówi¹c, nie bardzo wiadomo, co robiæ z komunikatami, poniewa¿ prawdopodobnie
s¹ przeznaczone dla administratora Samby, a Samba nie zna jego nazwiska. Jeœli
wiesz, ¿e przy konsoli serwera siedzi u¿ytkownik, mo¿esz u¿yæ polecenia sugerowanego przez zespó³ twórców Samby:
[global]
message command = /bin/csh -c 'xedit %s; rm %s' &

Zwróæ uwagê na u¿ycie zmiennych. Zmienna %s okreœla plik, w którym znajduje siê
komunikat. Plik ten powinien zostaæ usuniêty, kiedy polecenie zakoñczy pracê, poniewa¿ w przeciwnym razie w serwerze gromadzi³yby siê pliki z komunikatami.
Oprócz tego polecenie musi rozwidliæ swój proces (zauwa¿, ¿e na koñcu polecenia
jest znak & ); w przeciwnym wypadku klient móg³by siê zawiesiæ i czekaæ na powiadomienie o pomyœlnym przes³aniu wiadomoœci przed wznowieniem pracy.

Nowe opcje Samby

227

Oprócz standardowych zmiennych w opcji message command mo¿esz u¿yæ trzech
dodatkowych zmiennych, wymienionych w tabeli 8.8.
Tabela 8.8. Zmienne w opcji message command
Zmienna

Opis

%s
%f
%t

Nazwa pliku z komunikatem
Nazwa klienta, który przes³a³ komunikat
Nazwa komputera, który jest adresatem komunikatu

Nowe opcje Samby
Samba ma kilka opcji, które pojawi³y siê w wersji 2.0 i których dzia³anie nie jest
w pe³ni gwarantowane. W tym podrozdziale omówimy krótko ich przeznaczenie.
Opcje te zebrano w tabeli 8.9.
Tabela 8.9. Nowe opcje Samby
Opcja

Parametry Funkcja

WartoϾ
domyœlna

Zasiêg

change
notify
timeout

Ustawia odstêp czasu miêdzy kolejnymi
WartoϾ
liczbowa testami, wykonywanymi wtedy, gdy
(sekundy) klient prosi o powiadomienie o zmianie
zawartoœci okreœlonego katalogu
Ustawia okres odnowienia has³a
WartoϾ
liczbowa komputera w domenie NT
(sekundy)
WartoϾ
Jeœli jest ustawiona na yes, Samba
logiczna
bêdzie buforowaæ odwzorowania nazw
WartoϾ
Ustawia rozmiar bufora odwzorowañ
liczbowa

60

Globalny

machine
password
timeout
stat cache
stat cache
size

604 800
Globalny
(1 tydzieñ)
yes

Globalny

50

Globalny

change notify timeout
Globalna opcja change notify timeout emuluje mechanizm SMB Windows NT
znany jako powiadamianie o zmianie. Dziêki niemu klienty mog¹ za¿¹daæ, aby serwer
NT okresowo monitorowa³ wskazany katalog w udziale i sprawdza³, czy nie zasz³y
w nim jakieœ zmiany. Jeœli coœ by siê zmieni³o, serwer ma powiadomiæ o tym klienta.
Od wersji 2.0 Samba mo¿e œwiadczyæ tak¹ us³ugê swoim klientom. Zbyt czêste testy
mog¹ jednak znacznie spowolniæ dzia³anie serwera. Opcja ta ustawia odstêp miêdzy
kolejnymi testami. Jej domyœlna wartoœæ to jedna minuta (60 sekund), mo¿esz jednak
zmieniæ czas oczekiwania:
[global]
change notify timeout = 30

machine password timeout
Globalna opcja machine password timeout ustawia czas wa¿noœci has³a komputera w domenie NT. Jej domyœlna wartoœæ jest obecnie równa tej u¿ywanej przez

228

Rozdzia³ 8: Dodatkowe informacje o Sambie

Windows NT: 604 800 sekund (1 tydzieñ). Samba okresowo próbuje zmieniæ has³o
konta komputera, czyli has³o u¿ywane przez inny serwer specjalnie w celu zg³aszania
zmian. Opcja ta okreœla liczbê sekund, po up³yniêciu których Samba spróbuje zmieniæ to has³o. W poni¿szym przyk³adzie czas oczekiwania na zmianê has³a jest ustawiany na jeden dzieñ:
[global]
machine password timeout = 86400

stat cache
Globalna opcja stat cache w³¹cza buforowanie odwzorowañ nazw bez odró¿niania ma³ych i du¿ych liter. Jej domyœlna wartoœæ to yes. Zespó³ programistów Samby
odradza zmienianie tego parametru.
stat cache size
Globalna opcja stat cache size ustawia liczbê wpisów w buforze odwzorowañ.
Jej domyœlna wartoœæ to 50. Zespó³ programistów Samby odradza zmienianie tego
parametru.

Opcje ró¿ne
Wiele opcji Samby jest zwi¹zanych ze specyfik¹ systemu operacyjnego – Uniksa albo
Windows. Opcje wymienione w tabeli 8.10 rozwi¹zuj¹ niektóre ze znanych problemów. Zwykle nie zmieniamy ich domyœlnych wartoœci i to samo zalecamy tobie.
Tabela 8.10. Opcje ró¿ne
Opcja

Parametry

WartoϾ
liczbowa
(liczba
minut)
dfree command £añcuch
(polecenie)
deadtime

fstype

NTFS, FAT
lub Samba
keep alive
WartoϾ
liczbowa
(sekundy)
max disk size WartoϾ
liczbowa
(rozmiar
w MB)

Funkcja

WartoϾ
domyœlna

Zasiêg

Okreœla w minutach czas
0
bezczynnoœci, po którym po³¹czenie
powinno zostaæ zakoñczone

Globalny

Okreœla polecenie, które zwraca
iloϾ wolnej przestrzeni dyskowej
w formacie rozpoznawanym przez
Sambê
Ustawia typ systemu plików, który
serwer zg³asza klientom
Ustawia liczbê sekund miêdzy
kolejnymi testami nieaktywnoœci
klienta
Ustawia najwiêkszy rozmiar dysku
zwracany klientom (które mog¹
mieæ ograniczenia). Nie ma wp³ywu
na rzeczywiste operacje dyskowe

Brak

Globalny

NTFS

Globalny

0 (brak)

Globalny

0 (nieskoñ- Globalny
czonoϾ)

Opcje ró¿ne

229

Opcja

Parametry

Funkcja

WartoϾ
domyœlna

Zasiêg

max mux

WartoϾ
liczbowa

50

Globalny

max open
files

WartoϾ
liczbowa

10 000

Globalny

max xmit

65 535

Globalny

nt pipe
support

WartoϾ
liczbowa
WartoϾ
logiczna

yes

Globalny

nt smb
support

WartoϾ
logiczna

Ustawia maksymaln¹ liczbê jednoczesnych operacji SMB, które mog¹
wykonywaæ klienty
Ustawia maksymaln¹ liczbê otwartych plików poni¿ej uniksowego limitu
Okreœla maksymalny rozmiar pakietów wysy³anych przez Sambê
Wy³¹cza eksperymentaln¹ funkcjê
NT; u¿ywana w celach pomiarowych albo w razie wyst¹pienia
b³êdu
Wy³¹cza eksperymentaln¹ funkcjê
NT; u¿ywana w celach pomiarowych albo w razie wyst¹pienia
b³êdu
Przekszta³ca wychodz¹ce poza zakres ¿¹dania blokady u¿ywane w
Windows tak, aby w Uniksie mieœci³y siê w dozwolonym zakresie.
Wy³¹czenie tej opcji powoduje
b³êdy blokad w Uniksie
Program uruchamiany w razie
b³êdu serwera Samby; u¿ywana w
celach diagnostycznych
Jeœli jest ustawiona na yes, pozwala
klientom VMS na wydawanie poleceñ set dir
Ustawia polecenie, za poœrednictwem którego Samba wywo³uje polecenia pow³oki

yes

Globalny

yes

Globalny

Brak

Globalny

no

Globalny

Brak

Globalny

yes

Globalny

no

Globalny

no

Globalny

no

Globalny

ole locking
WartoϾ
compatibility logiczna

panic action

£añcuch
(polecenie)

set directory WartoϾ
logiczna
smbrun

status

£añcuch
(nazwa
polecenia
wraz ze
œcie¿k¹)
WartoϾ
logiczna

strict sync

WartoϾ
logiczna

sync always

WartoϾ
logiczna

strip dot

WartoϾ
logiczna

Jeœli jest ustawiona na yes, pozwala
Sambie na monitorowanie statusu
na potrzeby polecenia smbstatus
Jeœli jest ustawiona na no, ignoruje
proœby aplikacji Windows o natychmiastowe zapisanie danych na dysku
Jeœli jest ustawiona na yes, wymusza zapisanie wszystkich danych
klienta na dysku przed powrotem
z wywo³ania
Jeœli jest ustawiona na yes, usuwa
koñcowe kropki z uniksowych
nazw plików

230

Rozdzia³ 8: Dodatkowe informacje o Sambie

deadtime
Ta globalna opcja ustawia liczbê minut, przez które Samba bêdzie czekaæ na bezczynnego klienta, zanim zamknie jego sesjê z serwerem. Klienta uwa¿a siê za
bezczynnego, jeœli nie ma on ¿adnych otwartych plików i nie s¹ do niego przesy³ane
¿adne dane. Domyœlna wartoœæ tej opcji to 0, co oznacza, ¿e Samba nigdy nie zamyka
¿adnych po³¹czeñ, bez wzglêdu na to, jak d³ugo pozostaj¹ bezczynne. Mo¿esz zmieniæ to w nastêpuj¹cy sposób:
[global]
deadtime = 10

Opcja ta nakazuje Sambie zakoñczenie bezczynnych sesji z klientem po 10 minutach.
W wiêkszoœci sieci takie ustawienie tej opcji bêdzie odpowiednie, poniewa¿ ponowne po³¹czenia klientów z serwerem s¹ zwykle wykonywane w sposób niewidoczny
dla u¿ytkownika.
dfree command
Ta opcja globalna jest u¿ywana w systemach, które niepoprawnie okreœlaj¹ woln¹
przestrzeñ pozosta³¹ na dysku. Jak dot¹d, jedynym systemem, który wymaga u¿ycia
tej opcji, jest Ultrix. Opcja ta nie ma wartoœci domyœlnej, co oznacza, ¿e Samba wie
sama, jak obliczyæ rozmiar wolnej przestrzeni dyskowej, a uzyskane przez ni¹ wyniki s¹ uwa¿ane za wiarygodne. Mo¿esz ustawiæ wartoœæ tej opcji nastêpuj¹co:
[global]
dfree command = /usr/local/bin/dfree

Opcja ta powinna wskazywaæ na skrypt, który zwraca ca³kowit¹ iloœæ przestrzeni
dyskowej zajmowanej przez blok oraz liczbê dostêpnych bloków. Dokumentacja
Samby zaleca u¿ycie nastêpuj¹cego skryptu:
#!/bin/sh
df $1 | tail -1 | awk '{print $2 " " $4}'

W Uniksach typu System V zadzia³a poni¿szy skrypt:
#!/bin/sh
/usr/bin/df $1 | tail -1 | awk '{print $3 " " $5}'

fstype
Ta opcja udzia³u ustawia typ systemu plików, który zg³asza Samba pytaj¹cym o to
klientom. Istniej¹ trzy ³añcuchy, które mog¹ stanowiæ wartoœæ tej opcji konfiguracyjnej (patrz tabela 8.11).
Tabela 8.11. Typy systemów plików
Zmienna

Opis

NTFS
FAT
Samba

System plików NT Microsoft Windows
System plików FAT DOS-a
System plików Samby

Opcje ró¿ne

231

Domyœlna wartoœæ tej opcji to NTFS, co reprezentuje system plików Windows NT.
Prawdopodobnie nie ma potrzeby okreœlania innego typu systemu plików. Jeœli jednak zechcesz, mo¿esz zmieniæ go dla ka¿dego udzia³u z osobna, jak w przyk³adzie
poni¿ej:
[dane]
fstype = FAT

keep alive
Ta opcja globalna okreœla liczbê sekund, przez które Samba czeka miêdzy wysy³aniem NetBIOS-owych pakietów podtrzymuj¹cych po³¹czenie (keep-alive packets). Domyœlna wartoœæ tej opcji to 0, co oznacza, ¿e Samba w ogóle nie wysy³a takich pakietów. Mo¿esz zmieniæ to w nastêpuj¹cy sposób:
[global]
keep alive = 10

max disk size
Ta opcja globalna okreœla iluzoryczny limit rozmiaru (w megabajtach) ka¿dego udzia³u
u¿ywanego przez Sambê. Zwykle opcjê tê ustawia siê po to, aby klienty ze starszymi
systemami operacyjnymi nie mia³y k³opotów z przetwarzaniem du¿ych rozmiarów
dysków, na przyk³ad przekraczaj¹cych jeden gigabajt.
Domyœlna wartoœæ tej opcji to 0, co oznacza, ¿e nie ma ¿adnego górnego limitu.
Mo¿esz zmieniæ to w nastêpuj¹cy sposób:
[global]
max disk size = 1000

max mux
Ta opcja globalna okreœla maksymaln¹ liczbê jednoczesnych operacji SMB dozwolonych przez Sambê. Domyœlna wartoœæ tej opcji to 50. Mo¿esz zmieniæ j¹ w nastêpuj¹cy sposób:
[global]
max mux = 100

max open files
Ta opcja globalna okreœla maksymaln¹ liczbê plików, które mog¹ byæ jednoczeœnie
otwarte przez wszystkie procesy Samby. Wartoœæ ta musi byæ mniejsza lub równa limitowi narzucanemu przez system operacyjny. Domyœlna wartoœæ tej opcji to 10 000.
Mo¿esz zmieniæ j¹ w nastêpuj¹cy sposób:
[global]
max open files = 8000

max xmit
Ta opcja globalna okreœla maksymalny rozmiar pakietów, które Samba wymienia
z klientami. W niektórych przypadkach ustawienie mniejszego rozmiaru pakietu

232

Rozdzia³ 8: Dodatkowe informacje o Sambie

mo¿e zwiêkszyæ wydajnoœæ, zw³aszcza podczas wspó³pracy z Windows for Workgroups. Domyœlna wartoœæ tej opcji to 65 535. Mo¿esz zmieniæ j¹ nastêpuj¹co:
[global]
max xmit = 4096

Niektóre zastosowania tej opcji znajdziesz w podrozdziale „Okno odbioru TCP”
w dodatku B, Optymalizowanie wydajnoœci Samby.
nt pipe support
Ta opcja globalna jest u¿ywana przez twórców Samby, aby zabroniæ klientom Windows NT ³¹czenia siê z charakterystycznymi dla NT potokami IPC$ lub na to zezwoliæ. Jako u¿ytkownik Samby nie powinieneœ zmieniaæ wartoœci domyœlnej:
[global]
nt pipe support = yes

nt smb support
Ta opcja globalna jest u¿ywana przez twórców Samby, aby negocjowaæ charakterystyczne dla NT opcje SMB z klientami Windows NT. Zespó³ Samby odkry³, ¿e ustawienie tej opcji na no daje odrobinê lepsz¹ wydajnoœæ, ale jako u¿ytkownik Samby
raczej nie powinieneœ zmieniaæ wartoœci domyœlnej:
[global]
nt smb support = yes

ole locking compatibility
Ta opcja globalna w³¹cza lub wy³¹cza wewnêtrzne manipulacje blokadami zakresów bajtów w Sambie, które daj¹ zgodnoœæ z aplikacjami OLE (Object Linking and Embedding), u¿ywaj¹cymi blokad wysokich zakresów bajtów jako metody komunikacji
miêdzyprocesowej. Domyœlna wartoœæ tej opcji to yes. Jeœli ufasz uniksowym mechanizmom blokuj¹cym, mo¿esz zmieniæ wartoœæ tej opcji w nastêpuj¹cy sposób:
[global]
ole locking compatibility = no

panic action
Ta opcja globalna okreœla polecenie, które nale¿y wykonaæ, kiedy podczas pracy lub
uruchamiania Samby wyst¹pi powa¿ny b³¹d. Opcja ta nie ma wartoœci domyœlnej.
Mo¿esz zdefiniowaæ czynnoœæ wykonywan¹ w takiej sytuacji:
[global]
panic action = /bin/sh -c
'xedit & lt; " Samba nieoczekiwanie zakoñczy³a pracê!'

set directory
Ta opcja udzia³u umo¿liwia klientom Digital Pathworks korzystanie z polecenia
setdir w celu zmiany katalogu w serwerze. Jeœli nie u¿ywasz klientów Digital Pathworks, nie powinieneœ zmieniaæ tej opcji. Jej domyœlna wartoœæ to no. Mo¿esz
zmieniæ j¹ dla ka¿dego udzia³u z osobna w nastêpuj¹cy sposób:

Opcje ró¿ne

233

[dane]
set directory = yes

smbrun
Ta opcja ustala po³o¿enie pliku wykonywalnego smbrun, za poœrednictwem którego
Samba wywo³uje polecenia pow³oki. Jej domyœlna wartoœæ jest automatycznie ustalana podczas kompilacji Samby. Jeœli nie zainstalowa³eœ Samby w standardowym katalogu, mo¿esz okreœliæ po³o¿enie pliku wykonywalnego smbrun w nastêpuj¹cy sposób:
[global]
smbrun = /usr/local/bin/smbrun

status
Ta opcja globalna wskazuje, czy Samba powinna rejestrowaæ wszystkie aktywne
po³¹czenia w pliku statusu. Plik ten jest u¿ywany tylko przez polecenie smbstatus. Jeœli nie zamierzasz u¿ywaæ tego polecenia, mo¿esz ustawiæ tê opcjê na no, co nie znacznie zwiêkszy szybkoœæ serwera. Jej domyœlna wartoœæ to yes. Mo¿esz zmieniæ
j¹ nastêpuj¹co:
[global]
status = no

strict sync
Ta opcja udzia³u okreœla, czy Samba bêdzie spe³niaæ wszystkie ¿¹dania zsynchronizowania dysku zg³aszane przez klienta. Klienty czêsto ¿¹daj¹ synchronizacji dysku,
kiedy po prostu próbuj¹ wymusiæ zapisanie danych we w³asnych otwartych plikach, przez co znacznie spowalniaj¹ pracê serwera Samby. Domyœlna wartoœæ tej
opcji to no. Mo¿esz zmieniæ j¹ nastêpuj¹co:
[dane]
strict sync = yes

sync always
Ta opcja udzia³u okreœla, czy po ka¿dym zapisie nale¿y wykonaæ synchronizacjê
dysku, zanim wywo³anie zapisu zwróci sterowanie klientowi. Jeœli nawet opcja ta
jest ustawiona na no, klient mo¿e za¿¹daæ synchronizacji dysku (patrz opcja
strict sync powy¿ej). Domyœlna wartoœæ tej opcji to no. Mo¿esz zmieniæ j¹ dla
ka¿dego udzia³u z osobna w nastêpuj¹cy sposób:
[dane]
sync always = yes

strip dot
Ta opcja globalna okreœla, czy nale¿y usuwaæ koñcow¹ kropkê z uniksowych nazw
plików. Domyœlna wartoœæ tej opcji to no. Mo¿esz zmieniæ j¹ dla ka¿dego udzia³u
z osobna w nastêpuj¹cy sposób:
[global]
strip dot = yes

Opcja ta jest uwa¿ana za przestarza³¹; powinieneœ zamiast niej u¿ywaæ opcji mangled map (patrz rozdzia³ 5, podrozdzia³ „Przekszta³canie nazw i wielkoœæ liter”).

234

Rozdzia³ 8: Dodatkowe informacje o Sambie

Tworzenie kopii zapasowych za pomoc¹ programu smbtar
Ostatnim punktem tego rozdzia³u jest narzêdzie smbtar. W nowoczesnych komputerach PC istnieje pewna niedogodnoœæ: dyskietki, a czêsto tak¿e CD-ROM-y nie s¹
doœæ pojemne, by pomieœciæ zapasowe kopie dysków, a kupowanie stacji taœm dla
ka¿dego komputera nie jest najlepszym pomys³em. W rezultacie czêsto w ogóle nie
sporz¹dza siê kopii dysków komputerów PC, a w razie awarii ponownie instaluje siê
system z dyskietek i CD-ROM-ów.
Na szczêœcie Samba oferuje nam inn¹ opcjê: sporz¹dzanie zapasowych kopii danych
za pomoc¹ narzêdzia smbtar. Mo¿esz to robiæ regularnie, jeœli przechowujesz dane
u¿ytkowników w serwerze Samby, albo tylko okazjonalnie, aby zapisaæ lokalne
aplikacje oraz pliki konfiguracyjne i w ten sposób przyspieszyæ ponown¹ instalacjê.
Aby sporz¹dziæ zapasow¹ kopiê danych komputera PC z uniksowego serwera, musisz wykonaæ nastêpuj¹ce czynnoœci:
1. Upewniæ siê, ¿e w komputerze PC zainstalowana jest us³uga Udostêpnianie plików i drukarek w sieciach Microsoft Networks i ¿e jest ona powi¹zana z protoko³em TCP/IP.
2. Jawnie udostêpniæ dysk w komputerze PC, aby serwer móg³ go odczytaæ.
3. Utworzyæ w serwerze skrypty kopiuj¹ce dane.
Pierwsze dwie czynnoœci przeprowadzimy w Windows 95/98. Otwórz z Panelu sterowania okno Sieæ i sprawdŸ, czy w górnym okienku widnieje us³uga Udostêpnianie
plików i drukarek w sieciach Microsoft Networks (patrz rysunek 8.2).

Rysunek 8.2. Okno Sieæ

Tworzenie kopii zapasowych za pomoc¹ programu smbtar

235

Jeœli us³uga ta nie jest zainstalowana, mo¿esz to zrobiæ, klikaj¹c przycisk Dodaj
w oknie Sieæ. Bêdziesz musia³ wybraæ typ instalowanego sk³adnika sieci. Wybierz
pozycjê Us³uga i kliknij przycisk Dodaj. Zostaniesz poproszony o wskazanie producenta i us³ugi. Zaznacz pozycjê Udostêpnianie plików i drukarek w sieciach Microsoft Networks i kliknij przycisk Zakoñcz, aby zainstalowaæ us³ugê.
Kiedy zainstalujesz us³ugê udostêpniania plików i drukarek, wróæ do okna Sieæ i zaznacz protokó³ TCP/IP powi¹zany z kart¹ sieciow¹. Nastêpnie kliknij przycisk
W³aœciwoœci i wybierz kartê Powi¹zania. Powinieneœ zobaczyæ okno dialogowe podobne do tego z rysunku 8.3. Musisz upewniæ siê, ¿e zaznaczone jest pole Udostêpnianie plików i drukarek w sieciach Microsoft Networks, które daje us³udze dostêp
do protoko³u TCP/IP. Od tej chwili mo¿esz wspó³dzieliæ pliki i drukarki z innymi
komputerami w sieci.

Rysunek 8.3. Powi¹zania TCP/IP

Nastêpnie serwerowi taœm nale¿y udostêpniæ dysk z przeznaczonymi do skopiowania danymi. Otwórz okno Mój komputer i wybierz na przyk³ad katalog Moje dokumenty. Nastêpnie kliknij jego ikonê prawym przyciskiem myszy i wybierz z menu
polecenie W³aœciwoœci. Powinieneœ zobaczyæ okno dialogowe podobne do tego z rysunku 8.4.
Wybierz kartê Udostêpnianie i w³¹cz udostêpnianie plików. Mo¿esz wybraæ, czy
chcesz udostêpniæ dysk w trybie tylko do odczytu, do odczytu i zapisu (pe³nym), czy
te¿ zale¿nym od has³a. To okno dialogowe pochodzi z Windows 95/98, wiêc oferuje
tylko zabezpieczenia na poziomie udzia³u. W tym przyk³adzie wybraliœmy pe³ny
typ dostêpu i ustawiliœmy has³o (patrz rysunek 8.5). Kiedy wpiszesz has³o i klikniesz

236

Rozdzia³ 8: Dodatkowe informacje o Sambie

OK, zostaniesz poproszony o jego ponowne wprowadzenie. Na tym koñczy siê drugi etap.

Rysunek 8.4. Okno W³aœciwoœci: Moje dokumenty

Rysunek 8.5. Udostêpniony folder Moje dokumenty

Ostatnim etapem jest napisanie w serwerze taœm skryptu wykorzystuj¹cego pro gram smbtar. Najprostszy skrypt sk³ada siê z jednej linii i wygl¹da mniej wiêcej tak:
smbtar -s klient -t /dev/rst0 -x " Moje dokumenty " -p has³o

Tworzenie kopii zapasowych za pomoc¹ programu smbtar

237

Powoduje on bezwarunkowe zapisanie udzia³u //klient/Moje dokumenty w urz¹dzeniu /dev/rst0. Oczywiœcie, skrypt ten jest zbyt uproszczony i nie doœæ bezpieczny.
Czynnoœci wykonywane przez rzeczywisty skrypt zale¿¹ od obowi¹zuj¹cej procedury tworzenia kopii zapasowych.
Aby jednak zaostrzyæ twój apetyt, podajemy kilka mo¿liwoœci programu smbtar:
· Przyrostowe kopiowanie plików z u¿yciem dosowego bitu archiwalnego (opcja
-i). Wymaga to dostêpu do udzia³u klienta w trybie do odczytu i zapisu, aby program smbtar móg³ zerowaæ bity archiwalne.
· Kopiowanie tylko tych plików, które zosta³y zmodyfikowane po okreœlonej dacie
(opcja -N nazwapliku).
· Kopiowanie ca³ych dysków komputerów PC, na przyk³ad przez udostêpnienie
ca³ego dysku C: lub D: i sporz¹dzenie jego kopii.
Z wyj¹tkiem pierwszego przyk³adu, czynnoœci te mo¿na wykonaæ w trybie tylko do
odczytu, co zmniejsza ryzyko zwi¹zane z przechowywaniem hase³ w skryptach
i przekazywaniem ich w linii polecenia.

Rozwi¹zywanie
problemów

9

Rozdzia³ 9: Rozwi¹zywanie problemów

Samba jest niezwykle niezawodna. Kiedy ju¿ odpowiednio j¹ skonfigurujesz, prawdopodobnie zapomnisz, ¿e w ogóle dzia³a. Problemy wystêpuj¹ najczêœciej podczas
instalacji lub dodawania nowych funkcji do serwera. Na szczêœcie istnieje wiele narzêdzi, które umo¿liwiaj¹ szybkie postawienie diagnozy. Nie mo¿emy szczegó³owo
opisaæ rozwi¹zania ka¿dego mo¿liwego problemu, ale wskazówki zawarte w tym
rozdziale z pewnoœci¹ nie raz ci pomog¹.
W pierwszym podrozdziale opisujemy „skrzynkê z narzêdziami” – zbiór zasobów
u³atwiaj¹cych diagnozowanie Samby. W drugim podrozdziale zamieszczamy
szczegó³owy poradnik, a w trzecim wymieniamy dodatkowe Ÿród³a informacji, które mog¹ pomóc w rozwi¹zaniu szczególnie dotkliwych problemów.

Skrzynka z narzêdziami
Unix to w gruncie rzeczy zbiór aplikacji i narzêdzi. Niektóre narzêdzia s³u¿¹ do diagnozowania innych; oczywiœcie, zawsze istnieje kilka sposobów na osi¹gniêcie tego
samego celu. Kiedy próbujesz rozwi¹zaæ problem zwi¹zany z Samb¹, mo¿esz skorzystaæ z nastêpuj¹cych zasobów:
· dzienniki Samby,
· drzewo b³êdów,
· narzêdzia uniksowe,
· testowe narzêdzia Samby,
· dokumentacja i dokumenty FAQ,
· archiwa list wysy³kowych,
· grupy dyskusyjne.
W kolejnych podpunktach omówimy szczegó³owo ka¿dy z nich.

Dzienniki Samby
Pierwsz¹ czynnoœci¹ powinno byæ zawsze sprawdzenie dzienników Samby. Zawieraj¹ one odpowiedzi na znakomit¹ wiêkszoœæ pytañ, które mog¹ sobie zadawaæ

240

Rozdzia³ 9: Rozwi¹zywanie problemów

pocz¹tkuj¹cy i œrednio zaawansowani administratorzy Samby. Samba jest bardzo
elastyczna, jeœli chodzi o rejestrowanie podejmowanych przez siebie czynnoœci.
Mo¿esz skonfigurowaæ serwer tak, aby rejestrowa³ dok³adnie tyle informacji, ile
sobie za¿yczysz. Podstawianie zmiennych pozwala ci na wyodrêbnienie danych
zwi¹zanych z poszczególnymi komputerami, udzia³ami lub ich kombinacj¹.
Domyœlnie dzienniki s¹ przechowywane w plikach katalog_samby/var/smbd.log
oraz katalog_samby/var/nmbd.log, gdzie katalog_samby to katalog, w którym
zainstalowano Sambê (zwykle /usr/local/samba). Jak wspomnieliœmy w rozdziale 4,
Udzia³y dyskowe, mo¿esz zmieniæ ich po³o¿enie i nazwê za pomoc¹ opcji log file
pliku smb.conf. Opcja ta rozpoznaje wszystkie zmienne opisane w rozdziale 2, Instalowanie Samby w Uniksie, wiêc mo¿esz prowadziæ oddzielny dziennik dla ka¿dego
klienta, dopisuj¹c poni¿sz¹ opcjê do sekcji [global] pliku smb.conf:
log file = %m.log

Mo¿esz tak¿e okreœliæ katalog dzienników za pomoc¹ opcji -l w linii polecenia, na
przyk³ad:
smbd -l /usr/local/var/samba

Innym przydatnym rozwi¹zaniem jest prowadzenie dzienników dla ka¿dego udostêpnianego zasobu (udzia³u), zw³aszcza wtedy, gdy podejrzewasz, ¿e sprawc¹
k³opotów jest konkretny udzia³. Aby to skonfigurowaæ, u¿yj zmiennej %S w sekcji
[global] pliku konfiguracyjnego:
log file = %S.log

Poziomy rejestrowania
Poziom rejestrowania mo¿na ustawiæ w pliku smb.conf za pomoc¹ opcji log level
lub debug level (s¹ równowa¿ne). Poziom rejestrowania to liczba ca³kowita: wartoœæ 0 oznacza brak rejestrowania, a przy wartoœci 3 rejestrowane s¹ ju¿ znaczne iloœci danych. Za³ó¿my, ¿e klient Windows ma przejrzeæ katalog w serwerze Samby.
Aby w dziennikach pojawi³a siê niewielka liczba danych, móg³byœ u¿yæ opcji log
level = 1, która nakazuje Sambie rejestrowanie tylko pobie¿nych informacji,
w tym przypadku po prostu komunikatu o nawi¹zaniu po³¹czenia:
05/25/98 22:02:11 serwer (192.168.236.86) connect to service publ as user
pcguest (uid=503,gid=100) (pid 3377)

Wy¿sze poziomy rejestrowania powoduj¹ zapisywanie bardziej szczegó³owych informacji. Zwykle nie bêdziesz potrzebowa³ poziomów wy¿szych ni¿ 3; uzyskane
dane i tak bêd¹ wiêcej ni¿ wystarczaj¹ce dla wiêkszoœci administratorów Samby. Poziomy powy¿ej 3 s¹ przeznaczone dla programistów Samby i rejestruj¹ ogromne iloœci niezrozumia³ych informacji.
Oto przyk³adowe wyniki tej samej operacji na poziomie rejestrowania 2 i 3. Nie
przejmuj siê, jeœli nie rozumiesz wszystkich zawi³oœci po³¹czenia SMB; chcemy tylko
pokazaæ, jakie informacje s¹ zapisywane na ró¿nych poziomach rejestrowania.
/* Poziom 2 */
Got SIGHUP
Processing section " [homes] "

Skrzynka z narzêdziami
Processing section
Processing section
Allowed connection
Allowed connection

241
" [publ] "
" [tymcz] "
from 192.168.236.86 (192.168.236.86) to IPC$
from 192.168.236.86 (192.168.236.86) to IPC/

/* Poziom 3 */
05/25/98 22:15:09 Transaction 63 of length 67
switch message SMBtconX (pid 3377)
Allowed connection from 192.168.236.86 (192.168.236.86) to IPC$
ACCEPTED: guest account and guest ok
found free connection number 105
Connect path is /tmp
chdir to /tmp
chdir to /
05/25/98 22:15:09 serwer (192.168.236.86) connect to service IPC$ as user
pcguest (uid=503,gid=100) (pid 3377)
05/25/98 22:15:09 tconX service=ipc$ user=pcguest cnum=105
05/25/98 22:15:09 Transaction 64 of length 99
switch message SMBtrans (pid 3377)
chdir to /tmp
trans & lt; \PIPE\LANMAN & gt; data=0 params=19 setup=0
Got API command 0 of form & lt; WrLeh & gt; & lt; B13BWz & gt;
(tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8)
Doing RNetShareEnum
RNetShareEnum gave 4 entries of 4 (1 4096 126 4096)
05/25/98 22:15:11 Transaction 65 of length 99
switch message SMBtrans (pid 3377)
chdir to /
chdir to /tmp
trans & lt; \PIPE\LANMAN & gt; data=0 params=19 setup=0
Got API command 0 of form & lt; WrLeh & gt; & lt; B13BWz & gt;
(tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8)
Doing RNetShareEnum
RNetShareEnum gave 4 entries of 4 (1 4096 126 4096)
05/25/98 22:15:11 Transaction 66 of length 95
switch message SMBtrans2 (pid 3377)
chdir to /
chdir to /dyskpc/publ
call_trans2findfirst: dirtype = 0, maxentries = 6, close_after_first=0,
close_if_end = 0 requires_resume_key = 0 level = 260, max_data_bytes = 2432
unix_clean_name [./DESKTOP.INI]
unix_clean_name [desktop.ini]
unix_clean_name [./]
creating new dirptr 1 for path ./, expect_close = 1
05/25/98 22:15:11 Transaction 67 of length 53
switch message SMBgetatr (pid 3377)
chdir to /
[...]

Obciêliœmy ten listing po pierwszym pakiecie, poniewa¿ ci¹gn¹³by siê przez wiele
stron. Powinieneœ zdawaæ sobie sprawê, ¿e poziomy rejestrowania powy¿ej 3 szybko wype³ni¹ dysk megabajtami nieznoœnie szczegó³owych informacji o wewnêtrznych operacjach Samby. Poziom rejestrowania 3 jest niezwykle przydatny do
dok³adnego œledzenia pracy serwera i w wiêkszoœci przypadków pozwala na wy krycie miejsca wyst¹pienia b³êdu przez przejrzenie pliku dziennika.

242

Rozdzia³ 9: Rozwi¹zywanie problemów

S³owo ostrze¿enia: ustawienie wysokiego poziomu rejestrowania (3 lub powy¿ej)
znacznie spowolni pracê serwera Samby. Pamiêtaj, ¿e ka¿dy wygenerowany komunikat powoduje zapis na dysku (co jest operacj¹ z natury powoln¹), a poziomy rejestrowania wy¿sze ni¿ trzy produkuj¹ ogromne iloœci danych. Zasadniczo, poziom 3
powinieneœ w³¹czaæ tylko wtedy, gdy próbujesz wyœledziæ Ÿród³o problemu w serwerze Samby.
W³¹czanie i wy³¹czanie rejestrowania
Aby w³¹czyæ lub wy³¹czyæ rejestrowanie, musisz ustawiæ odpowiedni¹ opcjê w sekcji [global] pliku smb.conf. Nastêpnie mo¿esz albo zrestartowaæ Sambê, albo wymusiæ ponowne przetworzenie pliku konfiguracyjnego przez w³aœnie dzia³aj¹cego
demona. Mo¿esz równie¿ wys³aæ procesowi smbd sygna³ SIGUSR1, aby zwiêkszyæ
poziom rejestrowania o 1, albo SIGUSR2, aby zmniejszyæ go o 1:
# Zwiêkszamy poziom rejestrowania o 1
kill -SIGUSR1 1234
# Zmniejszamy poziom rejestrowania o 1
kill -SIGUSR2 1234

Rejestrowanie z podzia³em na poszczególne komputery i u¿ytkowników
Wydajn¹ metod¹ diagnozowania problemów bez przeszkadzania innym u¿ytkownikom jest przypisanie ró¿nym komputerom ró¿nych poziomów rejestrowania
w sekcji [global] pliku smb.conf. Mo¿emy to zrobiæ, rozszerzaj¹c omówion¹
uprzednio metodê:
[global]
log level = 0
log file = /usr/local/samba/lib/log.%m
include = /usr/local/samba/lib/smb.conf.%m

Te opcje nakazuj¹ Sambie u¿ycie odrêbnych plików dziennika i plików konfiguracyjnych dla wszystkich ³¹cz¹cych siê z ni¹ klientów. Teraz wystarczy utworzyæ plik
smb.conf dla konkretnego klienta, umieœciæ w nim opcjê log level = 3 (pozosta³e
klienty przyjm¹ domyœln¹ wartoœæ poziomu rejestrowania równ¹ 0) i u¿yæ pliku
dziennika do ustalenia przyczyny problemu.
Podobnie, jeœli problem dotyczy tylko niektórych u¿ytkowników i wêdruje za nimi
od komputera do komputera, mo¿esz utworzyæ odrêbne pliki dziennika dla poszczególnych u¿ytkowników, dopisuj¹c do pliku smb.conf poni¿sze opcje:
[global]
log level = 0
log file = /usr/local/samba/lib/log.%u
include = /usr/local/samba/lib/smb.conf.%u

Nastêpnie mo¿esz utworzyæ oddzielny plik smb.conf dla danego u¿ytkownika (na
przyk³ad /usr/local/samba/lib/smb.conf.tomek), umieœciæ w nim opcjê log level = 3
i rejestrowaæ szczegó³owo tylko po³¹czenia tego u¿ytkownika.

Skrzynka z narzêdziami

243

Narzêdzia testowe Samby
Zbiór rygorystycznych testów, którym mo¿na poddaæ g³ówne elementy Samby, jest
opisany w ró¿nych plikach zawartych w katalogu /docs/textdocs dystrybucji Samby,
przede wszystkim w pliku DIAGNOSIS.TXT. Drzewo b³êdów zamieszczone w tym
rozdziale jest bardziej szczegó³ow¹ wersj¹ podstawowych testów proponowanych
przez zespó³ twórców Samby, ale obejmuje tylko diagnozowanie instalacji i rekonfiguracji, podobnie jak DIAGNOSIS.TXT. Inne pliki w podkatalogach /docs omawiaj¹
specyficzne problemy (na przyk³ad z klientami Windows NT) i podaj¹ sposoby usuwania usterek, których nie przedstawiliœmy w tej ksi¹¿ce. Jeœli drzewo b³êdów oka¿e siê niewystarczaj¹ce, zajrzyj do DIAGNOSIS.TXT i pokrewnych plików.

Narzêdzia uniksowe
Czasem warto u¿yæ narzêdzia spoza pakietu Samby, aby sprawdziæ, co dzieje siê
w serwerze. Unix zawsze by³ systemem operacyjnym przypominaj¹cym kuchenny
zlew. Do tropienia b³êdów Samby szczególnie przydatne s¹ dwa narzêdzia diagnostyczne: trace i tcpdump.
Korzystanie z programu trace
Polecenie trace kryje siê pod kilkoma ró¿nymi nazwami, w zale¿noœci od u¿ywanego
systemu operacyjnego. W Linuksie bêdzie to strace, w Solarisie – truss, a w SGI – padc
i par. Wszystkie maj¹ zasadniczo tê sam¹ funkcjê: wyœwietlaj¹ wywo³ania wszystkich funkcji systemu operacyjnego w momencie ich wykonywania. Dziêki temu mo¿na przeœledziæ wykonanie programu, na przyk³ad serwera Samby, i wychwyciæ
wywo³anie funkcji, która sprawia problemy.
Jednym z problemów, które daj¹ siê ³atwo wykryæ za pomoc¹ trace, jest niepoprawna
wersja biblioteki do³¹czanej dynamicznie. Mo¿e siê to zdarzyæ, jeœli pobierzesz z Internetu skompilowane pliki binarne Samby. Wywo³anie odpowiedzialne za b³¹d
zwykle znajdziesz na koñcu wyników polecenia trace, tu¿ przed przerwaniem
dzia³ania programu.
Poni¿ej zamieszczamy przyk³adowe wyniki polecenia strace w Linuksie. Jest to
niewielka czêœæ pliku utworzonego podczas otwierania katalogu w serwerze Samby. Ka¿da linia zaczyna siê od nazwy wywo³ania systemowego i zawiera jego parametry oraz wartoœæ zwracan¹. Jeœli nast¹pi³ b³¹d, wyœwietlany jest kod b³êdu (na
przyk³ad ENOENT) i jego wyjaœnienie. Mo¿esz zapoznaæ siê z typami parametrów
i mo¿liwymi b³êdami na stronie podrêcznika man dla polecenia trace lub jego odpowiednika w twoim systemie operacyjnym.
chdir( " /dyskpc/publ " )
= 0
stat( " mini/desktop.ini " , 0xbffff7ec)
= -1 ENOENT (No such file or directory)
stat( " mini " , {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat( " mini/desktop.ini " , 0xbffff7ec)
= -1 ENOENT (No such file or directory)
open( " mini " , O_RDONLY)
= 5
fcntl(5, F_SETFD, FD_CLOEXEC)
= 0
fstat(5, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lseek(5, 0, SEEK_CUR)
= 0
SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 196

244

Rozdzia³ 9: Rozwi¹zywanie problemów

lseek(5, 0, SEEK_CUR)
= 1024
SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 0
close (5)
= 0
stat( " mini/desktop.ini " , 0xbffff86c)
= -1 ENOENT (No such file or directory)
write(3, " \0\0\0#\377SMB\10\1\0\2\0\200\1\0 " ..., 39) = 39
SYS_142(0xff, 0xbffffc3c, 0, 0, 0xbffffc08) = 1
read(3, " \0\0\0? " , 4)
= 4
read(3, " \377SMBu\0\0\0\0\0\0\0\0\0\0\0\0 " ..., 63) = 63
time(NULL)
= 896143871

Ten przyk³ad pokazuje, jak kilka wywo³añ stat nie znajduje plików w oczekiwanym miejscu. Nie trzeba byæ ekspertem, aby domyœliæ siê, ¿e w katalogu nie ma pliku desktop.ini. Na co dzieñ wiele trudnych problemów mo¿na zidentyfikowaæ, szukaj¹c oczywistych, powtarzalnych b³êdów w wynikach polecenia trace. Czêsto wystarczy spojrzeæ na ostatni komunikat przed za³amaniem programu.
Korzystanie z programu tcpdump
Program tcpdump, napisany przez Van Jacobsona, Craiga Leresa i Stevena McCanne'a oraz rozszerzony przez Andrew Tridgella, pozwala na monitorowanie ruchu
sieciowego w czasie rzeczywistym. Program udostêpnia wiele ró¿norodnych formatów wyjœciowych i umo¿liwia filtrowanie danych w celu wyizolowania konkretnego
typu ruchu. Program tcpdump umo¿liwia zbadanie wszystkich konwersacji miêdzy
klientem i serwerem, w tym rozg³oszeniowych komunikatów SMB i NMB. Choæ
funkcje diagnostyczne programu ograniczaj¹ siê w zasadzie do warstwy sieci w modelu OSI, jego wyniki pozwalaj¹ ogólnie zorientowaæ siê w celach, które klient i serwer próbuj¹ osi¹gn¹æ.
Poni¿ej zamieszczamy przyk³adowe wyniki programu tcpdump. W tym przyk³adzie
klient poprosi³ o listing katalogu, a serwer spe³ni³ ¿¹danie, podaj¹c nazwy katalogów: homes, publ, IPC$ i tymcz (po prawej stronie listingu do³¹czyliœmy kilka komentarzy):
$tcpdump -v -s 255 -i eth0 port not telnet
SMB PACKET: SMBtrans (REQUEST)
SMB Command
= 0x25

Pakiet ¿¹dania
¯¹danie to ls lub dir

[000] 01 00 00 10

....

& gt; & gt; & gt; NBT Packet
NBT Session Packet
Flags=0x0
Length=226

Zewnêtrzna otoczka pakietu SMB

[pominiête linie]
SMB PACKET: SMBtrans (REPLY)
SMB Command
= 0x25
Error class
= 0x0
Error code
= 0
Flags1
= 0x80
Flags2
= 0x1
Tree ID
= 105
Proc ID
= 6075
UID
= 100
MID
= 30337
Word Count
= 10

Pocz¹tek odpowiedzi na ¿¹danie
Polecenie to ls lub dir
Nie by³o b³êdów

Drzewo b³êdów
TotParamCnt=8
TotDataCnt=163
Res1=0
ParamCnt=8
ParamOff=55
Res2=0
DataCnt=163
DataOff=63
Res3=0
Lsetup=0
Param Data: (8 bytes)
[000] 00 00 00 00 05 00 05 00
Data Data: (135 bytes)
Rzeczywista zawartoϾ katalogu:
[000] 70 75 62 6C 00 00 00 00 00
[010] 64 00 00 00 74 79 6D 63 7A
[020] 00 00 00 00 65 00 00 00 68
[030] 00 00 00 00 00 00 00 00 66
[040] 00 00 00 00 00 00 00 00 00
[050] 77 65 72 00 00 00 00 00 00
[060] 81 00 00 00 00 00 00 49 50
[070] 63 65 20 28 53 61 6D 62 61
[080] 00 48 6F 6D 65 20 64

245

........
00
00
6F
00
00
00
43
20

00
00
6D
00
03
00
20
32

00
00
65
00
00
00
53
2E

00
00
73
49
67
00
65
30

00
00
00
50
00
00
72
2E

00
00
00
43
00
00
76
35

00
00
00
24
00
00
69
29

publ....
d...tymc
....e...
........
........
wer.....
.......I
ce (Samb
.Home d

........
z.......
homes...
f...IPC$
....g...
........
PC Servi
a 2.0.5)

Jest to dalsza czêœæ tej samej sesji diagnostycznej co w przyk³adzie z poleceniem trace: listing katalogu. Opcje, których u¿yliœmy to: -v (szczegó³owe wyniki), -i eth0
(okreœla interfejs, który ma byæ monitorowany przez program tcpdump, w tym przypadku port Ethernetu) oraz -s 255 (aby program zapisa³ pierwsze 255 bajtów ka¿dego pakietu, zamiast domyœlnych 68). Opcja port not telnet zapobiega³a wyœwietlaniu ruchu zwi¹zanego z telnetem, poniewa¿ byliœmy zalogowani zdalnie.
Program tcpdump ma znaczn¹ liczbê opcji, które umo¿liwiaj¹ odfiltrowanie tylko
tego ruchu, któremu chcesz siê przyjrzeæ. Jeœli u¿ywa³eœ programów snoop lub etherdump, to wyniki zapewne wydaj¹ ci siê znajome.
Mo¿esz pobraæ zmodyfikowan¹ wersjê programu tcpdump z serwera FTP Samby
pod adresem ftp://samba.anu.edu.au/pub/samba/tcpdump-smb. Inne wersje nie obs³uguj¹ protoko³u SMB; jeœli uzyskane przez ciebie wyniki ró¿ni¹ siê od tych z przy k³adu, bêdziesz musia³ zaopatrzyæ siê w wersjê z obs³ug¹ SMB.

Drzewo b³êdów
Drzewo b³êdów s³u¿y do diagnozowania i rozwi¹zywania problemów podczas instalowania i rekonfigurowania Samby. Jest to rozszerzona wersja dokumentu diagnostycznego wchodz¹cego w sk³ad dystrybucji Samby.
Zanim przyst¹pisz do tropienia b³êdów w którymkolwiek elemencie pakietu Samby, powinieneœ dysponowaæ nastêpuj¹cymi informacjami:
· adresem IP klienta (my u¿ywamy adresu 192.168.236.10),
· adresem IP serwera (my u¿ywamy adresu 192.168.236.86),
· mask¹ u¿ywan¹ w sieci (zwykle 255.255.255.0),
· czy wszystkie komputery znajduj¹ siê w tej samej podsieci (tak jest u nas).

246

Rozdzia³ 9: Rozwi¹zywanie problemów

Dla jasnoœci zmieniliœmy nazwê serwera w poni¿szych przyk³adach na serwer.przyklad.com, a klienta – na klient.przyklad.com.

Jak korzystaæ z drzewa b³êdów
Zacznij testy od tego miejsca i nie przeskakuj do przodu; dana procedura testowa nie
powinna trwaæ zbyt d³ugo (oko³o 5 minut), a ty unikniesz cofania siê po w³asnych
œladach. Jeœli test zakoñczy siê pomyœlnie, podamy ci tytu³ podrozdzia³u i numer
strony, do której powinieneœ przejœæ.

Diagnozowanie problemów z niskopoziomowym ruchem IP
Pierwsza seria testów bada niskopoziomowe us³ugi, które s¹ niezbêdne do pracy
Samby. Testy w tym podrozdziale pozwol¹ ci upewniæ siê, ¿e:
· oprogramowanie IP dzia³a poprawnie,
· sprzêtowe elementy Ethernetu dzia³aj¹ poprawnie,
· funkcjonuj¹ podstawowe us³ugi nazewnicze.
W nastêpnych sekcjach zajmiemy siê oprogramowaniem TCP/IP, demonami Samby: smbd i nmbd, kontrol¹ dostêpu na poziomie hostów, uwierzytelnianiem i kontrol¹
dostêpu na poziomie u¿ytkownika, us³ugami plikowymi i przegl¹daniem. Testy
opisaliœmy doœæ szczegó³owo, aby by³y zarozumia³e nie tylko dla doœwiadczonych
administratorów systemu i sieci, ale i dla zwyk³ych u¿ytkowników (którym jednak
nieobce s¹ kwestie techniczne).
Testowanie oprogramowania sieciowego za pomoc¹ polecenia ping
Pierwsze polecenie, które nale¿y wpisaæ zarówno w serwerze, jak i w kliencie, to
ping 127.0.0.1. Jest to adres pêtli zwrotnej, a przetestowanie go pozwoli stwierdziæ, czy w komputerze jest zainstalowana obs³uga sieci. W Uniksie mo¿esz wpisaæ
polecenie ping 127.0.0.1 z opcj¹ statystyczn¹ i przerwaæ je po wyœwietleniu kilku linii. W stacjach roboczych Suna mo¿na u¿yæ polecenia /usr/etc/ping -s
127.0.0.1; w Linuksie wystarczy po prostu ping 127.0.0.1. W kliencie Windows powinieneœ uruchomiæ polecenie ping 127.0.0.1 w oknie MS-DOS-a i zaczekaæ, a¿ samo przerwie dzia³anie po wyœwietleniu czterech linii.
Oto przyk³ad z serwera linuksowego:
serwer% ping 127.0.0.1
PING localhost: 56 data bytes
64 bytes from localhost: icmp_seq=0. time=1. ms
64 bytes from localhost: icmp_seq=1. time=0. ms
64 bytes from localhost: icmp_seq=2. time=1. ms ^C
---- 127.0.0.1 PING Statistics ---3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)
min/avg/max = 0/0/1

Jeœli otrzymasz komunikat „ping: no answer from...” lub „100% packet loss”, oznacza to, ¿e obs³uga sieci IP w ogóle nie jest zainstalowana w komputerze. Adres
127.0.0.1 to wewnêtrzny adres pêtli zwrotnej, który funkcjonuje bez wzglêdu na

Drzewo b³êdów

247

to, czy komputer jest pod³¹czony do sieci, czy nie. Jeœli ten test siê nie powiedzie,
masz powa¿ny problem z lokalnym komputerem. Protokó³ TCP/IP albo nie jest
w ogóle zainstalowany, albo jest Ÿle skonfigurowany. Jeœli problemy sprawia serwer
uniksowy, zajrzyj do dokumentacji systemu operacyjnego, jeœli zaœ klient Windows
– postêpuj wed³ug instrukcji instalowania obs³ugi sieci zamieszczonej w rozdziale 3,
Konfigurowanie klientów Windows.
Jeœli zarz¹dzasz sieci¹, mo¿esz siêgn¹æ po ksi¹¿kê Craiga Hunta TCP/IP – administracja
sieci (rozdzia³ 11) albo now¹ ksi¹¿kê Craiga Hunta i Roberta Bruce'a Thompsona Windows NT TCP/IP Administration – obie zosta³y opublikowane przez wydawnictwo O' Reilly.

Testowanie lokalnych us³ug nazewniczych za pomoc¹ polecenia ping
Nastêpnie przetestuj poleceniem ping nazwê localhost. Jest to konwencjonalna
nazwa interfejsu pêtli zwrotnej (127.0.0.1) i powinna zostaæ odwzorowana w³aœnie
na ten adres. Po wpisaniu ping localhost powinieneœ zobaczyæ nastêpuj¹ce wyniki:
serwer% ping localhost
PING localhost: 56 data bytes
64 bytes from localhost: icmp_seq=0. time=1. ms
64 bytes from localhost: icmp_seq=1. time=0. ms
64 bytes from localhost: icmp_seq=2. time=1. ms ^C

Jeœli ten test siê powiedzie, przeprowadŸ go tak¿e w kliencie. W przeciwnym wypadku:
· Jeœli otrzymasz komunikat „unknown host: localhost”, oznacza to, ¿e wystêpuje
problem z odwzorowaniem nazwy „localhost” na adres IP (byæ mo¿e po prostu
brakuje odpowiedniego wpisu w pliku hosts). PrzejdŸ do podrozdzia³u „Rozwi¹zywanie problemów z us³ugami nazewniczymi”.
· Jeœli otrzymasz komunikat „ping: no answer” lub „100% packet loss”, a testowanie adresu 127.0.0.1 przebieg³o pomyœlnie, oznacza to, ¿e us³ugi nazewnicze odwzorowuj¹ nazwê „localhost” na adres, ale adres ten jest niepoprawny. SprawdŸ
plik lub bazê danych (w systemach uniksowych jest to zwykle plik /etc/hosts) u¿ywan¹ przez us³ugi nazewnicze do odwzorowywania nazw i popraw b³êdny wpis.
Testowanie sprzêtu sieciowego za pomoc¹ polecenia ping
Nastêpnie przetestuj poleceniem ping w³asny adres IP serwera. Powinno to daæ
dok³adnie ten sam wynik, co testowanie adresu 127.0.0.1:
serwer% ping 192.168.236.86
PING 192.168.236.86: 56 data bytes
64 bytes from 192.168.236.86: icmp_seq=0. time=1. ms
64 bytes from 192.168.236.86: icmp_seq=1. time=0. ms
64 bytes from 192.168.236.86: icmp_seq=2. time=1. ms ^C
--- 192.168.236.86 PING Statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)
min/avg/max = 0/0/1

Jeœli ten test powiedzie siê w serwerze, przeprowadŸ go tak¿e w kliencie. W przeciwnym wypadku:

248

Rozdzia³ 9: Rozwi¹zywanie problemów

· Jeœli polecenie ping adres_sieciowy nie powiedzie siê w serwerze lub kliencie, a polecenie ping 127.0.0.1 zadzia³a, problem jest zwi¹zany z konfiguracj¹
TCP/IP karty sieciowej w tym komputerze. Zajrzyj do dokumentacji karty lub
systemu operacyjnego i sprawdŸ, jak poprawnie skonfigurowaæ kartê. Musisz
jednak wiedzieæ, ¿e w niektórych systemach operacyjnych polecenie ping dzia³a
nawet wtedy, gdy komputer jest od³¹czony od sieci, wiêc ten test mo¿e nie wykryæ
wszystkich problemów sprzêtowych.

Testowanie po³¹czeñ za pomoc¹ polecenia ping
Teraz przetestuj poleceniem ping nazwê serwera (a nie jego adres IP) – raz z serwera,
a raz z klienta. Jest to ogólny test sprawnoœci sprzêtu sieciowego:
serwer% ping serwer
PING serwer.przyklad.com: 56 data bytes
64 bytes from serwer.przyklad.com: icmp_seq=0. time=1. ms
64 bytes from serwer.przyklad.com: icmp_seq=1. time=0. ms
64 bytes from serwer.przyklad.com: icmp_seq=2. time=1. ms ^C
--- serwer.przyklad.com PING Statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms)
min/avg/max = 0/0/1

W Microsoft Windows testowanie serwera wygl¹da³oby tak, jak na rysunku 9.1.

Rysunek 9.1. Testowanie serwera Samby z klienta Windows za pomoc¹ polecenia ping

Jeœli test siê powiedzie, bêdziemy wiedzieli, ¿e:
1. Nazwa hosta (na przyk³ad „serwer”) jest rozpoznawana przez lokalny serwer nazw.
2. Nazwa hosta zosta³a rozwiniêta do pe³nej postaci (na przyk³ad serwer.przyklad.com).
3. Zwracany jest adres hosta (192.168.236.86).
4. Klient przes³a³ serwerowi Samby cztery pakiety UDP/IP z 56 bajtami danych.
5. Serwer Samby odpowiedzia³ na wszystkie cztery pakiety.

Drzewo b³êdów

249

Jeœli test siê nie powiedzie, w sieci wystêpuje jeden z poni¿szych problemów:
· Po pierwsze, jeœli otrzymasz komunikat „ping: no answer” lub „100% packet
loss”, oznacza to, ¿e nie jesteœ pod³¹czony do sieci, drugi komputer nie jest
pod³¹czony do sieci albo jeden z adresów jest niepoprawny. SprawdŸ adresy
zg³aszane przez polecenie ping w obu komputerach i upewnij siê, ¿e odpowiadaj¹ tym, które wstêpnie skonfigurowa³eœ.
Jeœli nie, w obu komputerach jest przynajmniej jeden niedopasowany adres.
Spróbuj wpisaæ arp -a i zobacz, czy zostanie wyœwietlony wpis dla drugiego
komputera. Polecenie arp bierze swoj¹ nazwê od protoko³u Address Resolution
Protocol. Opcja -a powoduje wyœwietlenie wszystkich adresów znanych lokalnemu komputerowi. Oto kilka mo¿liwoœci:
· Jeœli otrzymasz komunikat typu „192.168.236.86 at (incomplete)”, oznacza to,
¿e ethernetowy odpowiednik adresu 192.168.236.86 jest nieznany. Wskazuje to
na zupe³ny brak ³¹cznoœci – prawdopodobnie problem wystêpuje na samym
dole stosu protoko³ów TCP/IP, w warstwie interfejsu Ethernetu. Zagadnienie
to jest omówione w rozdzia³ach 5 i 6 ksi¹¿ki TCP/IP – administracja sieci (wydanej przez Wydawnictwo RM).
· Jeœli otrzymasz komunikat typu „serwer (192.168.236.86) at 8:0:20:12:7c:94”,
oznacza to, ¿e z serwerem skontaktowano siê ju¿ wczeœniej albo ¿e inny komputer odpowiada w jego imieniu. Jednak¿e w takim razie polecenie ping powinno dzia³aæ: albo sieæ dzia³a nieregularnie, albo masz problem z ARP.
· Jeœli adres IP wyœwietlony przez polecenie arp jest inny ni¿ oczekiwa³eœ,
sprawdŸ, gdzie kryje siê b³¹d i popraw adres rêcznie.
· Jeœli oba komputery mog¹ sprawdziæ poleceniem ping same siebie, ale nie drugi
komputer, b³¹d kryje siê w ³¹cz¹cej je sieci.
· Jeœli otrzymasz komunikat „ping: network unreachable” lub „ICMP Host Unreachable”, oznacza to, ¿e nie otrzymujesz odpowiedzi i najprawdopodobniej w grê
wchodzi wiêcej ni¿ jedna sieæ.
W zasadzie nie powinieneœ próbowaæ diagnozowania klientów i serwerów SMB
znajduj¹cych siê w ró¿nych sieciach. Spróbuj przetestowaæ serwer i klienty w tej
samej sieci. W trzech opisanych poni¿ej testach zak³adamy jednak, ¿e diagnozujesz ³¹cznoœæ miêdzy dwoma sieciami:
a. Po pierwsze, przeprowadŸ opisane wczeœniej testy ustalaj¹ce przyczynê braku odpowiedzi. Jeœli nie uda ci siê zidentyfikowaæ problemu, pozostaj¹ nastêpuj¹ce mo¿liwoœci: adres jest b³êdny, maska sieciowa jest b³êdna, sieæ jest
niedostêpna albo po prostu zosta³eœ zablokowany przez zaporê sieciow¹.
b. SprawdŸ adresy i maski sieciowe komputera Ÿród³owego i docelowego i za stanów siê, czy b³¹d nie jest oczywisty. Jeœli dwa komputery rzeczywiœcie s¹
w tej samej sieci, powinny mieæ takie same maski sieciowe, a polecenie ping
powinno zg³aszaæ poprawne adresy. Jeœli adresy s¹ b³êdne, bêdziesz musia³ je
skorygowaæ. Jeœli s¹ poprawne, byæ mo¿e programy myl¹ siê przez b³êdne
maski sieciowe. Patrz podrozdzia³ „Maski sieciowe” dalej w tym rozdziale.

250

·
·
·

·

·

·

·

Rozdzia³ 9: Rozwi¹zywanie problemów

c. Jeœli polecenia nadal zg³aszaj¹, ¿e sieæ jest nieosi¹galna, a spe³nione s¹ dwa
poprzednie warunki, jedna sieæ mo¿e byæ rzeczywiœcie nieosi¹galna z drugiej.
Rozwi¹zanie tego problemu le¿y w gestii administratora sieci.
Jeœli otrzymasz komunikat „ICMP Administratively Prohibited”, oznacza to, ¿e
natkn¹³eœ siê na zaporê sieciow¹ lub b³êdnie skonfigurowany ruter. Bêdziesz musia³ porozmawiaæ z osob¹ odpowiedzialn¹ za bezpieczeñstwo sieci.
Jeœli otrzymasz komunikat „ICMP Host redirect”, ale ping informuje, ¿e pakiety
trafiaj¹ do celu, z regu³y jest to nieszkodliwe: po prostu ruch w sieci jest przekierowywany w inne miejsce.
Jeœli otrzymasz komunikat „ICMP Host redirect”, a polecenie ping nie odbiera odpowiedzi, oznacza to, ¿e ruch jest przekierowywany, ale ¿aden komputer nie odpowiada. Potraktuj to tak samo jak przypadek „Network unreachable” i sprawdŸ
adresy oraz maski sieciowe.
Jeœli otrzymasz komunikat „ICMP Host Unreachable from gateway nazwa_bramki”, pakiety s¹ przekazywane do innej sieci, ale drugi komputer nie odpowiada,
a ruter zg³asza problem w jego imieniu. Potraktuj to tak samo jak przypadek „Network unreachable” i sprawdŸ adresy oraz maski sieciowe.
Jeœli otrzymasz komunikat „ping: unkown host nazwa_hosta”, oznacza to, ¿e nazwa komputera jest nieznana. Najczêœciej jest to symptom problemu z us³ugami
nazewniczymi, który nie wyst¹pi³ w przypadku nazwy localhost. Zajrzyj do
podrozdzia³u „Rozwi¹zywanie problemów z us³ugami nazewniczymi” dalej
w tym rozdziale.
Jeœli osi¹gniesz czêœciowy sukces – niektóre „pingi” powiod¹ siê, a inne nie –
oznacza to sporadyczne zak³ócenia w ³¹cznoœci miêdzy komputerami lub prze ci¹¿enie sieci. Przed³u¿ test i sprawdŸ, czy odnotujesz brak odpowiedzi dla wiêcej
ni¿ 3 procent pakietów. Jeœli tak jest w istocie, skontaktuj siê z administratorem
sieci: problem byæ mo¿e w³aœnie siê zaczyna. Jeœli jednak zawiod¹ tylko nieliczne
próby albo wiesz, ¿e akurat dzia³a program mocno obci¹¿aj¹cy sieæ, nie ma powodu do niepokoju. Protoko³y ICMP (i UDP) u¿ywane przez polecenie ping z za³o¿enia mog¹ gubiæ niektóre pakiety.
Jeœli otrzymasz komunikat typu „smtsvr.antares.net is alive” podczas testowania
hosta klient.przyklad.com, oznacza to, ¿e u¿ywasz adresu IP innego komputera albo
komputer ma kilka nazw i adresów. Jeœli adres jest b³êdny, odpowiedzialnoœæ za
to ponosz¹ us³ugi nazewnicze; bêdziesz musia³ zmieniæ adres w bazie danych
us³ug nazewniczych tak, aby odnosi³ siê do w³aœciwego komputera. Omawiamy
to w dalszym podrozdziale „Rozwi¹zywanie problemów z us³ugami nazewniczymi”.
Komputery pe³ni¹ce funkcje serwera s¹ czêsto po³¹czone z wieloma sieciami
i maj¹ inn¹ nazwê w ka¿dej z nich. Jeœli otrzymasz odpowiedŸ od nieoczekiwanej
nazwy takiego serwera, sprawdŸ, czy adres rzeczywiœcie znajduje siê w twojej
sieci (patrz podrozdzia³ „Maski sieciowe”). Jeœli tak jest, powinieneœ u¿ywaæ tego
adresu, a nie znajduj¹cego siê w innej sieci, ze wzglêdu na wydajnoœæ i niezawodnoœæ.

Drzewo b³êdów

251

Serwery mog¹ mieæ tak¿e kilka nazw dla jednego adresu ethernetowego, zw³aszcza wtedy, gdy s¹ serwerami WWW. Jest to nieszkodliwe, choæ bywa myl¹ce.
Prawdopodobnie lepiej bêdzie u¿yæ oficjalnej (i sta³ej) nazwy, ni¿ aliasu, który
mo¿e siê zmieniæ.
· Jeœli wszystko zadzia³a, ale polecenie zg³osi adres IP 127.0.0.1, za b³¹d odpowiedzialne s¹ us³ugi nazewnicze. Najczêœciej zdarza siê to wtedy, gdy program instalacyjny systemu operacyjnego umieœci w pliku /etc/hosts liniê: 127.0.0.1
localhost nazwahosta.nazwadomeny. Linia ta powinna mieæ postaæ 127.0.0.1
localhost lub 127.0.0.1 localhost loghost. Popraw j¹, gdy¿ w prze ciwnym razie niemo¿liwe bêdzie ustalenie, który komputer przechowuje g³ówn¹
listê przegl¹dania, a który jest g³ówn¹ przegl¹dark¹ domeny. Mo¿e tak¿e spowodowaæ b³êdy (niejednoznaczne) w póŸniejszych testach.
Jeœli wszystko funkcjonuje poprawnie w serwerze, powtórz testy w kliencie.

Rozwi¹zywanie problemów z TCP
Po przetestowaniu poleceniem ping protoko³ów IP, UDP i us³ug nazewniczych czas
na sprawdzenie protoko³u TCP. Program ping oraz us³ugi przegl¹dania korzystaj¹
z ICMP i UDP; us³ugi plikowe i us³ugi drukowania (udzia³y) korzystaj¹ z TCP. Do
dzia³ania TCP niezbêdna jest poprawna praca IP w ni¿szej warstwie sieci, a wszystkie cztery wymienione us³ugi opieraj¹ siê na us³ugach nazewniczych. Test TCP najwygodniej przeprowadziæ za pomoc¹ programu FTP (File Transfer Protocol).
Testowanie TCP za pomoc¹ FTP
Spróbuj po³¹czyæ za pomoc¹ FTP najpierw serwer z samym sob¹, a potem klienta
z serwerem:
serwer% ftp serwer
Connected to serwer.przyklad.com.
220 serwer.przyklad.com FTP server (Version 6.2/OpenBSD/Linux-0.10) ready.
Name (serwer:davecb):
331 Password required for davecb.
Password:
230 User davecb logged in.
ftp & gt; quit
221 Goodbye.

Jeœli to zadzia³a, przejdŸ do podrozdzia³u „Rozwi¹zywanie problemów z demonami
serwera”. W przeciwnym wypadku:
· Jeœli otrzyma³eœ komunikat „serwer: unknown host”, oznacza to, ¿e zawiod³y
us³ugi nazewnicze. Wróæ do podrozdzia³u „Testowanie lokalnych us³ug nazewniczych za pomoc¹ polecenia ping” i przeprowadŸ testy jeszcze raz, aby ustaliæ,
czemu nie dzia³a wyszukiwanie nazw.
· Jeœli otrzyma³eœ komunikat „ftp: connect: Connection refused”, w komputerze nie
dzia³a demon FTP. Jest to raczej niezwyk³e w przypadku uniksowego serwera.
Mo¿esz opcjonalnie przeprowadziæ ten test, ³¹cz¹c siê z komputerem za pomoc¹
telnetu zamiast FTP; komunikaty s¹ podobne, a telnet równie¿ korzysta z TCP.

252

Rozdzia³ 9: Rozwi¹zywanie problemów

· Jeœli po d³ugiej pauzie pojawi³ siê komunikat „ftp: connect: Connection timed
out”, oznacza to, ¿e komputer jest nieosi¹galny. Wróæ do podrozdzia³u „Testowanie po³¹czeñ za pomoc¹ polecenia ping”.
· Jeœli otrzyma³eœ komunikat „530 Logon Incorrect”, oznacza to, ¿e uda³o ci siê
nawi¹zaæ po³¹czenie, ale pojawi³ siê inny problem. Prawdopodobnie poda³eœ nieprawid³ow¹ nazwê u¿ytkownika lub has³o. Spróbuj jeszcze raz, wpisuj¹c swoj¹
nazwê u¿ytkownika z uniksowego serwera i podaj¹c poprawne has³o.

Rozwi¹zywanie problemów z demonami serwera
Kiedy upewnisz siê, ¿e protokó³ TCP dzia³a poprawnie, powinieneœ sprawdziæ, czy
w serwerze dzia³aj¹ demony. Wymaga to przeprowadzenia trzech oddzielnych testów, poniewa¿ ¿aden z nich sam z siebie nie pozwoli rozstrzygn¹æ, czy demony
pracuj¹ prawid³owo.
Aby upewniæ siê, ¿e demony dzia³aj¹, musisz sprawdziæ, czy demony:
1. Uruchomi³y siê.
2. S¹ zarejestrowane lub powi¹zane z portem TCP/IP przez system operacyjny.
3. Rzeczywiœcie odpowiadaj¹ na ¿¹dania.
Zanim zaczniesz
Najpierw sprawdŸ dzienniki. Jeœli uruchomi³eœ demony, powinieneœ znaleŸæ komunikat „smbd version jakaœ_liczba started”. Jeœli go nie znajdziesz, bêdziesz musia³ ponownie uruchomiæ demony.
Jeœli demon zg³asza, ¿e rzeczywiœcie rozpocz¹³ pracê, poszukaj komunikatu „bind
failed on port 139 socket_addr=0 (Address already in use)”. Oznacza on, ¿e inny demon zosta³ uruchomiony na porcie 139 (smbd). Demon nmbd zg³osi podobny b³¹d, jeœli nie zdo³a dowi¹zaæ siê do portu 137. Albo uruchomi³eœ demony dwukrotnie, albo
serwer inetd spróbowa³ uruchomiæ je w twoim imieniu. Ten drugi przypadek zdiagnozujemy za chwilê.
Wyszukiwanie procesów demona za pomoc¹ polecenia ps
Nastêpnie musisz sprawdziæ, czy demony uruchomi³y siê. U¿yj w serwerze polecenia ps z opcj¹ wyd³u¿onych wyników (zwykle ps ax lub ps -ef) i sprawdŸ, czy
zarówno smbd, jak i nmbd rzeczywiœcie dzia³aj¹. Zwykle wygl¹da to nastêpuj¹co:
serwer% ps ax
PID TTY STAT TIME COMMAND
1
?
S
0:03 init [2]
2
?
SW
0:00 (kflushd)
(...wiele linii z informacjami o procesach...)
234 ?
S
0:14 nmbd -D3
237 ?
S
0:11 smbd -D3
(...wiêcej linii, byæ mo¿e kolejne linie smbd...)

Ten przyk³ad pokazuje, ¿e procesy smbd i nmbd zosta³y ju¿ uruchomione jako autonomiczne demony (opcja -D) na poziomie rejestrowania 3.

Drzewo b³êdów

253

Wyszukiwanie demonów dowi¹zanych do portów
Demony musz¹ byæ zarejestrowane w systemie operacyjnym, aby mog³y uzyskaæ
dostêp do portów TCP/IP. Polecenie netstat poka¿e, czy tak jest w istocie. Wydaj
w serwerze polecenie netstat -a i poszukaj linii wzmiankuj¹cych netbios, 137
lub 139:
serwer% netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
udp
0
0
*.netbios*.*
tcp
0
0
*.netbios*.*
LISTEN
tcp
8370
8760
serwer.netbiosklient.1439
ESTABLISHED

(state)

lub:
serwer% netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
udp
0
0
*.137
*.*
tcp
0
0
*.139
*.*
LISTEN
tcp
8370
8760
serwer.139
klient.1439
ESTABLISHED

(state)

Pomiêdzy wieloma podobnymi liniami powinieneœ znaleŸæ przynajmniej jedn¹ liniê
UDP z portem *.netbios- lub *.137. Oznacza to, ¿e serwer nmbd jest zarejestrowany i (miejmy nadziejê) czeka, aby odpowiedzieæ na ¿¹danie. Powinna tak¿e
pojawiæ siê co najmniej jedna linia TCP wzmiankuj¹ca *.netbios- lub *.139,
prawdopodobnie w stanie nas³uchiwania (LISTENING). Oznacza to, ¿e demon smbd
dzia³a i czeka na po³¹czenia.
Mog¹ pojawiæ siê tak¿e inne linie TCP informuj¹ce o po³¹czeniach miêdzy smbd
i klientami, po jednej na ka¿dego klienta. Zwykle znajduj¹ siê w stanie ustalonym
(ESTABLISHED). Jeœli zobaczysz linie smbd w stanie ESTABLISHED, mo¿esz byæ pewien, ¿e smbd dzia³a poprawnie. Jeœli znajdziesz choæby tylko jedn¹ liniê smbd w stanie LISTENING, nie mo¿na tego stwierdziæ na pewno. Jeœli nie ma obu linii, oznacza
to, ¿e demon nie zdo³a³ siê uruchomiæ, wiêc trzeba przejrzeæ dzienniki i cofn¹æ siê do
rozdzia³u 2.
Jeœli znajdziesz linie dla poszczególnych klientów, mog¹ one pochodziæ od demona
Samby albo od nadrzêdnego demona IP, inetd. Jest ca³kiem mo¿liwe, ¿e plik startowy demona inetd zawiera wpisy uruchamiaj¹ce demony Samby, a ty nie zdajesz sobie z tego sprawy; wpisy te mog³y zostaæ tam umieszczone na przyk³ad wtedy, gdy
zainstalowa³eœ Sambê jako czêœæ dystrybucji Linuksa. Demony uruchamiane przez
inetd uniemo¿liwiaj¹ pracê naszych demonów. W takim przypadku w dziennikach
znajdziesz komunikaty typu „bind failed on port 139 socket_addr=0 (Address already in use)”.
SprawdŸ swój plik inetd.conf; jeœli nie zamierzasz uruchamiaæ z niego demonów, nie
mo¿e on zawieraæ wpisów dla serwerów netbios-ns (port UDP 137) i netbios-ssn (port TCP 139). Demon inetd udostêpnia liczne us³ugi i jest sterowany

254

Rozdzia³ 9: Rozwi¹zywanie problemów

przez wpisy w pliku inetd.conf. Jeœli demon SMB w twoim systemie jest uruchamiany
przez inetd, w pliku inetd.conf znajdziesz wpisy podobne do poni¿szych:
netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd
netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd

Sprawdzanie demona smbd za pomoc¹ telnetu
Jak na ironiê, naj³atwiejszym sposobem przetestowania serwera smbd jest przes³anie
mu bezsensownej wiadomoœci i sprawdzenie, czy j¹ odrzuci. Spróbuj wykonaæ nastêpuj¹ce polecenie:
echo halo | telnet localhost 139

Spowoduje to wys³anie b³êdnego, ale nieszkodliwego komunikatu do demona smbd.
S³owo halo jest tu istotne. Nie próbuj ³¹czyæ siê z portem i wpisywaæ dowolnych
znaków; prawdopodobnie zawiesisz tylko proces demona. Komunikat halo nie powinien wywo³aæ niepo¿¹danych skutków.
serwer% echo " halo " | telnet localhost 139
Trying
Trying 192.168.236.86 ...
Connected to localhost. Escape character is '^]'.
Connection closed by foreign host.

Jeœli otrzymasz komunikat „Connected”, a zaraz po nim „Connection closed”, oznacza to, ¿e test przebieg³ pomyœlnie. Demon smbd nas³uchuje na porcie i odrzuca
b³êdne po³¹czenia. Jeœli jednak otrzymasz komunikat „telnet: connect: Connection
refused”, najprawdopodobniej demon jest nieobecny. SprawdŸ dzienniki i wróæ do
rozdzia³u 2.
Niestety, nie ma ³atwego sposobu na przetestowanie demona nmbd. Jeœli testy telnet i netstat potwierdz¹, ¿e demon smbd dzia³a poprawnie, istnieje du¿e prawdopodobieñstwo, ¿e polecenie netstat nie myli siê tak¿e co do demona nmbd.
Testowanie demonów za pomoc¹ polecenia testparm
Kiedy upewnisz siê, ¿e demony dzia³aj¹, powinieneœ koniecznie wykonaæ polecenie
testparm, licz¹c na uzyskanie takich oto wyników:
serwer% testparm
Load smb config file from /opt/samba/lib/smb.conf
Processing section " [homes] "
Processing section " [printers] "
Processing section " [tymcz] "
Loaded services file OK. ...

Program testparm zwykle informuje o przetwarzaniu kolejnych sekcji, a jeœli
wszystko przebiegnie pomyœlnie, wyœwietla komunikat „Loaded services file OK”.
W przeciwnym wypadku wyœwietli jeden z poni¿szych komunikatów, które pojawiaj¹ siê tak¿e w dziennikach:
„Allow/Deny connection from host (n) to udzia³”
Komunikat wyœwietlany wtedy, gdy w pliku ustawione s¹ opcje uprawnionych
i nieuprawnionych u¿ytkowników. Powinieneœ upewniæ siê, ¿e jesteœ na liœcie
uprawnionych u¿ytkowników, a konta root, bin i tym podobne s¹ na liœcie nie-

Drzewo b³êdów

255

uprawnionych u¿ytkowników. W przeciwnym wypadku ty nie bêdziesz móg³
siê po³¹czyæ, a ci, którzy nie powinni mieæ takiej mo¿liwoœci – owszem.
„Warning: You have some share names that are longer than eight chars”
Ostrze¿enie dla u¿ytkowników Windows for Workgroups i starszych klientów.
Nie bêd¹ one mog³y po³¹czyæ siê z udzia³ami o d³ugich nazwach (d³u¿szych ni¿
osiem znaków) i wyœwietl¹ komunikat o przepe³nieniu.
„Warning: [nazwa] service MUST be printable!”
W udziale drukarki nie ma opcji printable = yes.
„No path in service nazwa - using /tmp”
Nie wiadomo, który katalog ma byæ udostêpniony przez udzia³ plikowy, albo
jaki katalog buforowy ma byæ wykorzystywany przez udzia³ drukarki. Jeœli nie
podasz œcie¿ki, udzia³ skorzysta ze œcie¿ki /tmp, co nie zawsze odpowiada twoim
oczekiwaniom.
„Note: Service nazwa is flagged unavailable”
Zwyk³e przypomnienie, ¿e w udziale u¿y³eœ opcji available = no.
„Can't find include file [nazwa]”
Plik konfiguracyjny okreœlony opcj¹ include nie istnieje. Jeœli do³¹czasz ten plik
bezwarunkowo, jest to b³¹d, i to zwykle powa¿ny: udzia³ bêdzie mia³ konfiguracjê
inn¹ od zamierzonej. Jeœli do³¹czasz ten plik, u¿ywaj¹c zmiennych, na przyk³ad %a
(architektura), bêdziesz musia³ zdecydowaæ, czy brak pliku dla – dajmy na to –
Windows for Workgroups stanowi problem. Czêsto nie stanowi.
„Can't copy service nazwa, unable to copy self!”
Spróbowa³eœ skopiowaæ sekcjê pliku smb.conf do samej siebie.
„Unable to copy service – source not found: nazwa”
Informuje o braku sekcji do³¹czanej opcj¹ copy = lub b³êdzie w pisowni.
„Ignoring unknown parameter nazwa”
Zwykle informuje o przestarza³ej, b³êdnie wpisanej lub nieobs³ugiwanej opcji.
„Global parameter nazwa found in service section”.
Informuje, ¿e parametr o zasiêgu globalnym znajduje siê w definicji udzia³u.
Samba zignoruje ten parametr.
Po zakoñczeniu testu wykonaj go jeszcze raz, podaj¹c w poleceniu testparm trzy
parametry: nazwê swojego pliku smb.conf, nazwê klienta i jego adres IP:
testparm katalog_samby/lib/smb.conf klient 192.168.236.10

Spowoduje to wykonanie dodatkowego testu, który porównuje nazwê i adres hosta
z wartoœciami opcji host allow oraz host deny i generuje komunikaty „Allow/Deny connection from host (n) to udzia³” dla danego klienta. Komunikaty te informuj¹ o obecnoœci opcji zezwalaj¹cych na dostêp lub zabraniaj¹cych go i okreœla,
czy klient bêdzie mia³ dostêp do poszczególnych udzia³ów, czy te¿ nie. Wprowadzenie polecenia testparm /usr/local/lib/eksperyment.conf to wygodny
sposób na przetestowanie eksperymentalnego pliku smb.conf przed wprowadzeniem go do u¿ytku.

256

Rozdzia³ 9: Rozwi¹zywanie problemów

Rozwi¹zywanie problemów z po³¹czeniami SMB
Kiedy wiesz ju¿, ¿e serwery dzia³aj¹, musisz upewniæ siê, ¿e dzia³aj¹ prawid³owo.
Zaczniemy od pliku smb.conf w katalogu katalog_samby/lib.
Najprostszy plik smb.conf
W poni¿szych testach zak³adamy, ¿e masz udzia³ [tymcz] nadaj¹cy siê do celów testowych oraz przynajmniej jedno konto. Oto plik uwzglêdniaj¹cy wy³¹cznie te za³o¿enia:
[global]
workgroup = PRZYKLAD
security = user
browsable = yes
local master = yes
[homes]
guest ok = no
browsable = no
[tymcz]
path = /tmp
public = yes

S³owo ostrze¿enia: opcja public = yes w udziale [tymcz] s³u¿y tylko celom testowym. Prawdopodobnie nie chcesz, aby u¿ytkownicy bez kont mogli zapisywaæ
pliki w twoim serwerze, wiêc wykomentuj tê sekcjê, kiedy skoñczysz testy.
Testowanie konfiguracji lokalnej za pomoc¹ programu smbclient
Pierwszy test pozwoli upewniæ siê, ¿e serwer potrafi listowaæ swoje us³ugi (udzia³y).
Wydaj polecenie smbclient z opcj¹ -L localhost, aby serwer po³¹czy³ siê sam
ze sob¹, oraz opcj¹ -U%, aby okreœliæ, ¿e u¿ytkownikiem jest goœæ. Powinieneœ zobaczyæ co nastêpuje:
serwer% smbclient -L localhost -U%
Server time is Wed May 27 17:57:40 1998 Timezone is UTC-4.0
Server=[localhost]
User=[davecb]
Workgroup=[PRZYKLAD]
Domain=[PRZYKLAD]
Sharename
Type
Comment
-----------------tymcz
Disk
IPC$
IPC
IPC Service (Samba 1.9.18)
homes
Disk
Home directories
This machine does not have a browse list

Jeœli otrzymasz takie wyniki, przejdŸ do nastêpnego testu, „Testowanie po³¹czeñ za
pomoc¹ programu smbclient”. W przeciwnym wypadku:
· Jeœli otrzymasz komunikat „Get_hostbyname: unknown host localhost”, oznacza
to, ¿e albo Ÿle wpisa³eœ nazwê, albo rzeczywiœcie wystêpuje jakiœ problem (który
powinien ujawniæ siê ju¿ w podrozdziale „Testowanie lokalnych us³ug nazewniczych za pomoc¹ polecenia ping”). W tym drugim przypadku przejdŸ do podrozdzia³u „Rozwi¹zywanie problemów z us³ugami nazewniczymi”.

Drzewo b³êdów

257

· Jeœli otrzymasz komunikat „Connect error: Connection refused”, oznacza to, ¿e
·

·
·

·

znaleziono serwer, ale nie dzia³a w nim demon nmbd. Wróæ do podrozdzia³u „Rozwi¹zywanie problemów z demonami serwera” i ponownie przetestuj demony.
Jeœli otrzymasz komunikat „Your server software is being unfriendly”, oznacza
to, ¿e pocz¹tkowy pakiet sesji wywo³a³ b³êdn¹ odpowiedŸ serwera. Byæ mo¿e serwer uleg³ awarii lub uruchomi³ siê nieprawid³owo. Przyczyny tego b³êdu mo¿na
odkryæ, szukaj¹c w dziennikach informacji o:
· b³êdnych parametrach linii polecenia smbd; patrz strona podrêcznika man dla
smbd;
· powa¿nych problemach z plikiem smb.conf, które uniemo¿liwiaj¹ uruchomienie demona smbd. Powinieneœ zawsze sprawdzaæ ten plik po dokonaniu w nim
zmian, jak zrobiliœmy to w podrozdziale „Testowanie demonów za pomoc¹
polecenia testparm”;
· braku katalogów, w których Samba przechowuje swoje pliki dziennika i blokady;
· obecnoœci innego serwera na porcie 139 dla smbd i 137 dla nmbd, co uniemo¿liwia uruchomienie naszych demonów.
Jeœli u¿ywasz inetd, a nie demonów autonomicznych, sprawdŸ, czy b³¹d nie kryje
siê w plikach /etc/inetd.conf oraz /etc/services (zajrzyj na odpowiednie strony podrêcznika man).
Jeœli wyœwietlone zostanie pytanie o has³o (Password:), oznacza to, ¿e konto goœcinne jest Ÿle skonfigurowane. Opcja %U informuje program smbclient, ¿e nale¿y
dokonaæ „pustego” logowania, które wymaga obecnoœci konta goœcinnego, ale nie
wymaga nadawania mu jakichkolwiek przywilejów.
Jeœli otrzymasz komunikat „SMBtconX failed: ERRSRV - ERRaccess”, oznacza to, ¿e
nie masz prawa dostêpu do serwera. Zwykle oznacza to, ¿e wpisa³eœ opcjê hosts
allow, która nie uwzglêdnia serwera, albo opcjê hosts deny, która go uwzglêdnia. SprawdŸ jeszcze raz plik konfiguracyjny za pomoc¹ polecenia testparm
smb.conf nazwa_hosta adres_IP (patrz podrozdzia³ „Testowanie demonów
za pomoc¹ polecenia testparm”) i popraw pomy³kowo ustalone zakazy.

Testowanie po³¹czeñ za pomoc¹ programu smbclient
Wydaj polecenie smbclient \\serwer\tymcz, które po³¹czy ciê z katalogiem
/tmp serwera, aby sprawdziæ, czy mo¿esz korzystaæ z udzia³u plikowego. Powinieneœ otrzymaæ nastêpuj¹ce wyniki:
serwer% smbclient '\\serwer\tymcz'
Server time is Tue May 5 09:49:32 1998 Timezone is UTC-4.0
Password:
smb: \ & gt; quit

· Jeœli otrzymasz komunikat „Get_Hostbyname: Unknown host name”, „Connect

error: Connection refused” lub „Your server software is being unfriendly”, mo¿liwe przyczyny tych b³êdów znajdziesz w podrozdziale „Testowanie konfiguracji
lokalnej za pomoc¹ programu smbclient”.

258

Rozdzia³ 9: Rozwi¹zywanie problemów

· Jeœli otrzymasz komunikat „\serwertymcz: Not enough '\' characters in service”,
prawdopodobnie nie uj¹³eœ adresu w cudzys³ów, wiêc Unix usun¹³ jeden z ukoœników. Mo¿esz zapisaæ polecenie tak¿e w postaci:
smbclient \\\\serwer\\tymcz

lub
smbclient //serwer/tymcz

Teraz wpisz swoje has³o uniksowego konta w linii zg³oszenia Password. Jeœli zobaczysz zg³oszenie smb:\ & gt; , oznacza to, ¿e po³¹czenie siê powiod³o. Wpisz quit i
przejdŸ do podrozdzia³u „Testowanie po³¹czeñ za pomoc¹ polecenia NET USE”. Jeœli zaœ otrzymasz komunikat „SMBtconX failed. ERRSRV - ERRinvnetname”, oznacza to, ¿e wyst¹pi³ jeden z poni¿szych problemów:
· B³êdna nazwa udzia³u: wpisa³eœ j¹ niepoprawnie, jest za d³uga, wystêpuj¹ w niej
du¿e i ma³e litery albo udzia³ jest niedostêpny. SprawdŸ za pomoc¹ polecenia testparm, czy dany udzia³ powinien byæ dostêpny (patrz podrozdzia³ „Testowanie demonów za pomoc¹ polecenia testparm”).
· U¿ywasz opcji security = share. W takim przypadku zapewne bêdziesz musia³ dodaæ opcjê -U twoje_konto do polecenia smbclient albo znaæ has³o uniksowego konta o nazwie „temp”.
· B³êdna nazwa u¿ytkownika.
· B³êdne has³o.
· Opcja valid users lub invalid users w pliku smb.conf, która uniemo¿liwia
ci nawi¹zanie po³¹czenia. Ponownie wydaj polecenie testparm smb.conf nazwa_hosta adres_IP (patrz podrozdzia³ „Testowanie demonów za pomoc¹
polecenia testparm”).
· Opcja allow hosts, która nie uwzglêdnia serwera, albo deny hosts, która go
uwzglêdnia. To tak¿e mo¿na sprawdziæ za pomoc¹ polecenia testparm.
· Problem z uwierzytelnianiem, na przyk³ad gdy serwer u¿ywa hase³ ukrytych (shadow) lub modu³ów uwierzytelniaj¹cych PAM (Pluggable Authentication Module),
a Samba nie zosta³a skompilowana z ich obs³ug¹. Jest to rzadkie, ale czasem siê zdarza, na przyk³ad kiedy pliki binarne Samby skompilowane w SunOS 4 (bez hase³
ukrytych) zostan¹ uruchomione bez rekompilacji w Solarisie (z has³ami ukrytymi).
· W pliku konfiguracyjnym jest opcja enorypted password = yes, ale w pliku
smbpasswd nie ma has³a dla twojego konta.
· Masz puste has³o w uniksowym pliku /etc/passwd lub pliku smbpasswd.
· £¹czysz siê z udzia³em [tymcz], a w sekcji [tymcz] pliku smb.conf nie ma opcji
guest ok = yes.
· £¹czysz siê z udzia³em [tymcz] przed po³¹czeniem siê ze swoim katalogiem macierzystym, a twoje konto goœcia jest b³êdnie skonfigurowane. Jeœli mo¿esz po³¹czyæ
siê najpierw ze swoim katalogiem macierzystym, a póŸniej z udzia³em [tymcz],
problem polega w³aœnie na tym. Zajrzyj do rozdzia³u 2, w którym znajdziesz wiêcej
informacji o tworzeniu podstawowego pliku konfiguracyjnego Samby.

Drzewo b³êdów

259

Niepoprawne konto goœcia uniemo¿liwi tak¿e drukowanie i przegl¹danie, dopóki nie zalogujesz siê w swoim katalogu macierzystym.
Istnieje jeszcze jedna mo¿liwa przyczyna takiego b³êdu, która nie ma nic wspólnego
z has³em: linia path= w pliku smb.conf wskazuje na katalog, który nie istnieje. Polecenie testparm nie wykryje takiego b³êdu, a wiêkszoœæ klientów SMB nie potrafi odró¿niæ go od innych typów b³êdów zwi¹zanych z niepoprawnymi kontami u¿yt kowników. Bêdziesz musia³ sprawdziæ to rêcznie.
Kiedy uda ci siê po³¹czyæ z udzia³em [tymcz], powtórz test, tym razem loguj¹c siê
w swoim katalogu macierzystym (na przyk³ad przez mapowanie dysku sieciowego
serwer\davecb) i upewnij siê, ¿e wszystko przebiega bezb³êdnie. Jeœli bêdziesz
musia³ coœ skorygowaæ, ponownie przetestuj udzia³ [tymcz].
Testowanie po³¹czeñ za pomoc¹ polecenia NET USE
Wydaj polecenie net use * \serwer\tymcz w kliencie DOS-a lub Windows
i sprawdŸ, czy mo¿esz po³¹czyæ siê z serwerem. Powinieneœ zobaczyæ pytanie
o has³o, a nastêpnie otrzymaæ komunikat „Polecenie zosta³o wykonane pomyœlnie”
(patrz rysunek 9.2).

Rysunek 9.2. Wyniki polecenia NET USE

Jeœli pomyœlnie nawi¹za³eœ po³¹czenie, przejdŸ do podrozdzia³u „Testowanie po ³¹czeñ za pomoc¹ Eksploratora Windows”. W przeciwnym wypadku:
· Jeœli otrzymasz komunikat „Odnalezienie podanego, udostêpnionego katalogu
jest niemo¿liwe”, oznacza to, ¿e nazwa udzia³u zosta³a wpisana b³êdnie lub nie

260

Rozdzia³ 9: Rozwi¹zywanie problemów

ma jej w pliku smb.conf. Komunikat ten mo¿e tak¿e ostrzegaæ o nazwach zawieraj¹cych mieszane litery oraz spacje lub d³u¿szych ni¿ osiem znaków.
· Jeœli otrzymasz komunikat „Lokalizacja nazwy komputera okreœlonej w œcie¿ce
sieciowej jest niemo¿liwa”, oznacza to, ¿e b³êdnie wpisa³eœ nazwê komputera, zawiod³y us³ugi nazewnicze, wystêpuje problem z sieci¹, albo opcja hosts deny =
uwzglêdnia twojego hosta.
· Jeœli nie pope³ni³eœ b³êdu w pisowni, powinieneœ cofn¹æ siê przynajmniej do
podrozdzia³u „Testowanie po³¹czeñ za pomoc¹ programu smbclient”, aby
sprawdziæ, czemu po³¹czenie siê nie powiod³o.
· Jeœli program smbclient dzia³a, problem polega na b³êdnej pracy us³ug nazewniczych w kliencie. Powinieneœ przejœæ do podrozdzia³u „Testowanie serwera za pomoc¹ polecenia nmblookup” i sprawdziæ, czy mo¿esz wyszukaæ serwer i klienta.
· Jeœli otrzymasz komunikat „Has³o dla \\serwer\tymcz jest niew³aœciwe”, kopia has³a przechowywana lokalnie w kliencie nie odpowiada has³u przechowywanemu w serwerze. Zostaniesz poproszony o wpisanie w³aœciwego has³a.
Klienty Windows 95 i 98 przechowuj¹ lokalny plik password, ale jest to po prostu zapamiêtana kopia has³a wysy³anego do Samby i serwerów NT w celu uwierzytelnienia
u¿ytkownika i w³aœnie o to has³o jesteœ pytany. W samym komputerze Windows (ale
nie NT) mo¿esz zalogowaæ siê bez podawania has³a.

Jeœli podane przez ciebie has³o nie zostanie przyjête, mo¿e to znaczyæ, ¿e: has³o nie
odpowiada temu przechowywanemu w serwerze, opcja valid users lub invalid users zabrania ci dostêpu, komunikacjê zak³óca protokó³ NetBEUI albo wystêpuje problem z zaszyfrowanymi has³ami opisany w nastêpnym akapicie.
· Jeœli twoim klientem jest NT 4.0, NT 3.5 z SP3, Windows 95 z SP3, Windows 98 lub
dowolny z tych systemów z zainstalowanym Internet Explorerem 4.0, to domyœlnie u¿ywa on hase³ zaszyfrowanych algorytmem Microsoftu (omawiamy to
w rozdziale 6, w podrozdziale „Has³a”, gdzie podajemy tak¿e alternatywne rozwi¹zania). Ogólnie rzecz bior¹c, jeœli niedawno zainstalowa³eœ któr¹œ z bardziej
rozbudowanych aplikacji Microsoftu, byæ mo¿e wraz z ni¹ zainstalowa³eœ uaktualnienie systemu i w³¹czy³eœ szyfrowanie hase³.
Internet Explorer uznaje adresy URL typu file://pewienhost/pewienplik i nawi¹zuje z nimi
po³¹czenia SMB, a klienty Windows a¿ do wersji Windows 95 z poprawk¹ 2 wysy³a³y
has³a jawnym tekstem do serwerów SMB w Internecie. Nie by³o to najszczêœliwsze rozwi¹zanie, wiêc Microsoft doœæ szybko zdecydowa³, ¿e w protokole SMB bêd¹ u¿ywane
wy³¹cznie zaszyfrowane has³a. Odpowiednia poprawka wchodzi w sk³ad kolejnych
wersji wszystkich produktów Microsoftu. Jeœli tylko nie u¿ywasz Internet Explorera
bez zapory sieciowej, zaszyfrowane has³a tak naprawdê nie s¹ potrzebne, wiêc w prywatnych sieciach mo¿esz œmia³o korzystaæ z hase³ niezaszyfrowanych.

· Jeœli has³o uniksowe sk³ada siê z mieszanki ma³ych i du¿ych liter, klient prawdopodobnie zrównuje wielkoœæ wszystkich liter w haœle. Jeœli zmiana liter has³a na
jedn¹ wielkoœæ odniesie skutek, problem polega w³aœnie na tym. Wszystkie klien-

Drzewo b³êdów

261

ty (oprócz najstarszych) obs³uguj¹ has³a pisane du¿ymi literami, wiêc Samba próbuje je dopasowaæ, u¿ywaj¹c raz du¿ych, a raz ma³ych liter. Jeœli chcesz korzystaæ
z hase³ pisanych literami ró¿nej wielkoœci, mo¿esz skorzystaæ z opcji password
level, opisanej w rozdziale 6.
· Mo¿esz mieæ problem z opcj¹ valid users, co mo¿na sprawdziæ za pomoc¹
programu smbclient (patrz podrozdzia³ „Testowanie po³¹czeñ za pomoc¹ programu smbclient”).
· Z us³ug¹ klienta sieci Microsoft mo¿e byæ powi¹zany protokó³ NetBEUI. Taka
konfiguracja czêsto powoduje d³ugie opóŸnienia i nieoczekiwane b³êdy, a czasem
prowadzi tak¿e do odrzucania poprawnych hase³.
Termin „powi¹zanie” oznacza tutaj po³¹czenie jednego elementu oprogramowania
z innym. Klient SMB Microsoftu jest „wi¹zany” z TCP/IP na karcie Powi¹zania okna
W³aœciwoœci: Protokó³ TCP/IP otwieranego z apletu Sieæ Panelu sterowania. TCP/IP
jest z kolei powi¹zany z kart¹ Ethernetu. S³owo to oznacza tutaj coœ innego, ni¿ w przypadku wi¹zania demona SMB z portem TCP/IP.

Testowanie po³¹czeñ za pomoc¹ Eksploratora Windows
Uruchom Eksploratora Windows lub Eksploratora Windows NT (nie Internet Explorera), wybierz polecenie NarzêdziaðMapuj dysk sieciowy i wpisz \\serwer\tymcz, aby sprawdziæ, czy uda ci siê sk³oniæ Eksploratora do po³¹czenia z katalogiem /tmp. Powinieneœ zobaczyæ okno podobne do tego z rysunku 9.3. Jeœli tak
jest, po³¹czenie powiod³o siê, wiêc mo¿esz przejœæ do podrozdzia³u „Rozwi¹zywanie problemów z przegl¹daniem”.

Rysunek 9.3. Dostêp do katalogu /tmp z Eksploratora Windows

S³owo ostrze¿enia: Eksplorator Windows i Eksplorator Windows NT nie s¹ najlepszymi narzêdziami diagnostycznymi. Informuj¹ ciê, ¿e wyst¹pi³ b³¹d, ale rzadko

262

Rozdzia³ 9: Rozwi¹zywanie problemów

wskazuj¹ jego przyczynê. Jeœli po³¹czenie siê nie powiedzie, powinieneœ u¿yæ polecenia NET USE, które znacznie dok³adniej opisuje b³êdy.
· Jeœli otrzymasz komunikat „Has³o dla tego po³¹czenia jest ju¿ niepoprawne”,
przyczyny mog¹ byæ nastêpuj¹ce:
· Kopia has³a zapamiêtana lokalnie w kliencie nie odpowiada has³u przechowywanemu w serwerze.
· Nie poda³eœ nazwy u¿ytkownika i has³a, kiedy logowa³eœ siê w kliencie. Eksplorator czêsto nadal wysy³a pust¹ nazwê u¿ytkownika i puste has³o, nawet
wtedy, gdy w miêdzyczasie poda³eœ ju¿ has³o.
· B³êdnie wpisa³eœ has³o.
· Istniej¹ opcje invalid users lub valid users, które zakazuj¹ ci dostêpu.
· Twój klient to NT 4.0, NT 3.5 z SP3, Windows 95 z SP3, Windows 98 lub dowolny z tych systemów z zainstalowanym Internet Explorerem 4.0. Wszystkie te
klienty korzystaj¹ z zaszyfrowanych hase³.
· Has³o sk³ada siê z liter ró¿nej wielkoœci, a twój klient zrównuje wielkoœæ liter
w haœle.
· Jeœli otrzymasz komunikat „Odnalezienie komputera lub udzia³u jest niemo¿liwe”, przyczyny mog¹ byæ nastêpuj¹ce:
· Ÿle wpisana nazwa,
· b³êdnie dzia³aj¹ca us³uga,
· awaria udzia³u,
· problem z sieci¹,
· b³êdna linia path,
· linia hosts deny, która uniemo¿liwia ci dostêp.
· Jeœli otrzymasz komunikat „Aby uzyskaæ to po³¹czenie, musisz podaæ has³o”,
oznacza to, ¿e has³o w kliencie nie jest zsynchronizowane z has³em w serwerze
albo wpisa³eœ to has³o pierwszy raz i klient jeszcze nie zapamiêta³ go lokalnie.
· Jeœli otrzymasz komunikat „Odnalezienie podanej nazwy udzia³u nie jest mo¿liwe”, oznacza to, ¿e: poda³eœ b³êdn¹ nazwê udzia³u lub u¿y³eœ z³ej sk³adni, nazwa
udzia³u ma wiêcej ni¿ osiem znaków, zawiera spacje lub sk³ada siê z liter o ró¿nej
wielkoœci.
Kiedy zdo³asz siê bezproblemowo po³¹czyæ z udzia³em [tymcz], spróbuj po³¹czyæ
siê ze swoim katalogiem macierzystym. Jeœli bêdziesz musia³ dokonaæ zmian, ¿eby
uzyskaæ dostêp do katalogów macierzystych, wówczas jeszcze raz przetestuj
po³¹czenie z udzia³em [tymcz] i vice versa – o czym by³a ju¿ mowa w podrozdziale
„Testowanie po³¹czeñ za pomoc¹ polecenia NET USE”. Jeœli Eksplorator zawiedzie,
wróæ do tego podrozdzia³u i tam spróbuj postawiæ diagnozê.

Drzewo b³êdów

263

Rozwi¹zywanie problemów z przegl¹daniem
Teraz pora zaj¹æ siê przegl¹daniem. Zostawiliœmy je na koniec, nie dlatego, ¿e jest
najtrudniejsze, ale dlatego, ¿e jest opcjonalne i czêœciowo oparte na protokole, który
nie gwarantuje dostarczenia pakietów. Przegl¹danie bywa trudne do zdiagnozowania, jeœli nie jesteœ pewien, czy dzia³aj¹ wszystkie inne us³ugi.
Przegl¹danie jest ca³kowicie opcjonalne: jest to po prostu sposób na wyszukanie
w sieci serwerów i oferowanych przez nie us³ug. Unix nie dysponuje podobnym mechanizmem i jakoœ sobie bez niego radzi. Przegl¹danie wymaga, aby wszystkie komputery znajdowa³y siê w sieci lokalnej, gdzie dozwolone s¹ rozg³oszenia.
Mechanizm przegl¹dania najpierw identyfikuje komputer za pomoc¹ zawodnego
protoko³u UDP, a nastêpnie nawi¹zuje zwyk³e (niezawodne) po³¹czenie TCP/IP,
aby uzyskaæ listê udzia³ów udostêpnianych przez komputer.
Testowanie przegl¹dania za pomoc¹ programu smbclient
Zaczniemy od przetestowania niezawodnych po³¹czeñ. Z serwera spróbuj wylistowaæ jego w³asne udzia³y, u¿ywaj¹c programu smbclient z opcj¹ -L i nazw¹ serwera.
Powinieneœ uzyskaæ nastêpuj¹ce wyniki:
serwer% smbclient -L serwer
Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0
Server time is Tue Apr 28 09:57:28 1998 Timezone is UTC-4.0
Password:
Domain=[PRZYKLAD]
OS=[Unix]
Server=[Samba 1.9.18]
Server=[serwer]
User=[davecb]
Workgroup=[PRZYKLAD]
Domain=[PRZYKLAD]
Sharename
Type
Comment
-----------------cdrom
Disk
CD-ROM
cl
Printer
Color Printer 1
davecb
Disk
Home Directories
This machine has a browse list:
Server
Comment
--------------SERWER
Samba 1.9.18
This machine has a workgroup
Workgroup
--------PRZYKLAD

list:
Master
------SERWER

· Jeœli nie zosta³a wyœwietlona lista udzia³ów, oznacza to, ¿e serwer nie pozwala na

przegl¹danie ¿adnych udzia³ów. Coœ takiego nie powinno mieæ miejsca, jeœli przetestowa³eœ dowolny udzia³ za pomoc¹ Eksploratora Windows lub polecenia NET
USE. Jeœli nie przeprowadzi³eœ jeszcze testu smbclient -L localhost -U%
(patrz podrozdzia³ „Testowanie konfiguracji lokalnej za pomoc¹ programu smbclient”), zrób to teraz. Byæ mo¿e udzia³y nie s¹ wyœwietlane ze wzglêdu na b³êdn¹

264

Rozdzia³ 9: Rozwi¹zywanie problemów

konfiguracjê konta goœcia. SprawdŸ tak¿e plik smb.conf i upewnij siê, ¿e nie ma
w nim opcji browsable = no; proponujemy skorzystaæ z minimalnego pliku
smb.conf (patrz podrozdzia³ „Najprostszy plik smb.conf”). Opcja browsable
musi byæ w³¹czona, abyœ móg³ zobaczyæ przynajmniej udzia³ [tymcz].
· Jeœli nie uzyska³eœ listy przegl¹dania, oznacza to, ¿e serwer nie dostarcza informacji o komputerach w sieci. Przynajmniej jeden komputer musi obs³ugiwaæ listy
przegl¹dania. Jeœli chcesz, ¿eby Samba by³a g³ówn¹ przegl¹dark¹ lokaln¹, umieœæ
opcjê local master = yes w pliku smb.conf.
· Jeœli uzyska³eœ listê przegl¹dania, ale bez udzia³u [tymcz], prawdopodobnie
problem kryje siê w pliku smb.conf. Cofnij siê do podrozdzia³u „Testowanie demonów za pomoc¹ polecenia testparm”.
· Jeœli nazwa twojej grupy nie pojawi³a siê na liœcie grup roboczych, byæ mo¿e grupa
jest Ÿle skonfigurowana w pliku smb.conf.
· Jeœli w ogóle nie uzyska³eœ listy grup roboczych, sprawdŸ, czy w pliku smb.conf
jest opcja workgroup = PRZYKLAD.
· Jeœli nie otrzymasz ¿adnych wyników, spróbuj jeszcze raz, u¿ywaj¹c opcji -I adres_ip -n nazwa_netbiosowa -W grupa_robocza -d3 i wpisuj¹c nazwê
NetBIOS-ow¹ i nazwê grupy roboczej du¿ymi literami (opcja -d3 ustawia po ziom diagnostyczny równy 3).
Jeœli nadal nie otrzymujesz ¿adnych wyników, nie powinieneœ dojœæ do tego miejsca.
Cofnij siê przynajmniej do rozdzia³u „Testowanie TCP za pomoc¹ FTP”, a nawet
„Testowanie po³¹czeñ za pomoc¹ polecenia ping”. Natomiast:
· Jeœli otrzymasz komunikat „SMBtconX failed. ERRSRV – ERRaccess”, oznacza to,
¿e nie masz prawa dostêpu do serwera. Zwykle oznacza to, ¿e istnieje opcja
hosts allow, która nie uwzglêdnia serwera, albo opcja hosts deny, która go
uwzglêdnia.
· Jeœli otrzymasz komunikat „Bad Password”, przyczyn¹ mo¿e byæ:
· B³êdna linia hosts allow lub hosts deny.
· B³êdna linia valid users lub invalid users.
· Has³o sk³adaj¹ce siê z ma³ych liter oraz klienty OS/2 i Windows for Workgroups.
· Nieistniej¹ce lub b³êdnie skonfigurowane konto goœcinne.
SprawdŸ, które konto jest u¿ywane jako goœcinne (patrz podrozdzia³ „Testowanie konfiguracji lokalnej za pomoc¹ programu smbclient”), zweryfikuj plik
smb.conf za pomoc¹ polecenia testparm smb.conf nazwa_hosta adres_ip
(patrz podrozdzia³ „Testowanie demonów za pomoc¹ polecenia testparm”)
i zmieñ lub wykomentuj wszystkie linie hosts allow, hosts deny, valid
users i invalid users.
· Jeœli otrzymasz komunikat „Connection refused”, oznacza to, ¿e serwer smbd nie
dzia³a lub uleg³ awarii. Za pomoc¹ polecenia netstat sprawdŸ, czy serwer jest aktywny i nas³uchuje w sieci (patrz podrozdzia³ „Testowanie demonów za pomoc¹
polecenia testparm”).

Drzewo b³êdów

265

· Jeœli otrzymasz komunikat „Get_Hostbyname: Unknown host name”, przyczyny

mog¹ byæ nastêpuj¹ce: zrobi³eœ b³¹d w pisowni, istnieje niezgodnoœæ miêdzy
uniksow¹ a NetBIOS-ow¹ nazw¹ hosta albo b³êdnie dzia³aj¹ us³ugi nazewnicze.
Przetestuj us³ugi nazewnicze wed³ug wskazówek z podrozdzia³u „Testowanie
po³¹czeñ za pomoc¹ polecenia NET USE”. Jeœli to zadzia³a, mo¿esz podejrzewaæ
niezgodnoœæ nazw, wiêc przejdŸ do podrozdzia³u „Rozwi¹zywanie problemów
z nazwami NetBIOS-owymi”.
· Jeœli otrzymasz komunikat „Session request failed”, oznacza to, ¿e serwer odrzuci³ po³¹czenie. Zwykle jest to spowodowane b³êdem wewnêtrznym, na przyk³ad
iloœci¹ pamiêci nie wystarczaj¹c¹ do rozwidlenia procesu.
· Jeœli otrzymasz komunikat „Your server software is being unfriendly”, oznacza
to, ¿e pocz¹tkowy pakiet sesji wywo³a³ b³êdn¹ odpowiedŸ serwera. Byæ mo¿e serwer uleg³ awarii lub uruchomi³ siê nieprawid³owo. PrzejdŸ do podrozdzia³u
„Testowanie konfiguracji lokalnej za pomoc¹ programu smbclient”, gdzie zanalizowano ten problem.
· Jeœli podejrzewasz, ¿e serwer nie dzia³a, przejdŸ do podrozdzia³u „Wyszukiwanie procesów demona za pomoc¹ polecenia ps” i upewnij siê, ¿e w³aœnie to jest
przyczyn¹ braku odpowiedzi.
Testowanie serwera za pomoc¹ polecenia nmblookup
Ten test zbada system „reklamowy”, u¿ywany przez mechanizm przegl¹dania
i us³ugi nazewnicze Windows. Zadaniem tego systemu jest poinformowanie o swojej obecnoœci i gotowoœci do œwiadczenia us³ug. W³aœnie ten element przegl¹dania
korzysta z zawodnego protoko³u (UDP) i dzia³a tylko w sieciach rozg³oszeniowych,
takich jak Ethernet. Program nmblookup rozg³asza zapytania o okreœlon¹ przez ciebie
nazwê i zwraca adres IP oraz nazwê komputera, podobnie jak czyni program nslookup z nazwami DNS. W poni¿szych przyk³adach opcja -d okreœla poziom diagnostyczny, a opcja -B kieruje zapytanie do okreœlonego komputera.
Najpierw sprawdzimy sam serwer. Wydaj polecenie nmblookup z opcj¹ -B i nazw¹
serwera, aby wys³aæ zapytanie do serwera Samby, oraz z parametrem _ _ SAMBA_ _
jako nazw¹ do wyszukania. Powinieneœ uzyskaæ nastêpuj¹ce wyniki:
serwer% nmblookup -B serwer _ _ SAMBA_ _
Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask =
255.255.255.0
Sending queries to 192.168.236.86 192.168.236.86 _ _ SAMBA_ _

Powinieneœ uzyskaæ adres IP serwera, a po nim nazwê _ _ SAMBA_ _ , co oznacza, ¿e
serwer og³osi³, ¿e dysponuje us³ug¹ o tej nazwie _ _ SAMBA_ _ , a zatem poprawnie
dzia³a co najmniej czêœæ NetBIOS-owych us³ug nazewniczych.
· Jeœli otrzymasz komunikat „Name_query failed to find name _ _ SAMBA_ _ ”, byæ
mo¿e poda³eœ z³y adres w opcji -B albo nie dzia³a demon nmbd. Opcja -B w istocie przyjmuje adres rozg³oszeniowy; my podaliœmy nazwê komputera, aby okreœliæ adres jednostkowy i zapytaæ serwer, czy roœci sobie prawa do nazwy
_ _ SAMBA_ _ .

266

Rozdzia³ 9: Rozwi¹zywanie problemów

· Spróbuj jeszcze raz, u¿ywaj¹c opcji -B adres_ip, a jeœli to równie¿ siê nie powiedzie, bêdzie to znaczy³o, ¿e nmbd nie uzna³ nazwy za w³asn¹. Wróæ na
chwilê do podrozdzia³u „Testowanie demonów za pomoc¹ polecenia testparm” i sprawdŸ, czy demon nmbd dzia³a. Jeœli tak, byæ mo¿e nie przyw³aszcza
sobie nazw; oznacza to, ¿e Samba nie udostêpnia us³ug przegl¹dania (zapewne
b³¹d w konfiguracji). W takim przypadku sprawdŸ, czy w pliku smb.conf nie
ma opcji browsing = no.

Testowanie klienta za pomoc¹ polecenia nmblookup
Nastêpnie przetestuj adres klienta, wpisuj¹c polecenie nmblookup z opcj¹ -B i nazw¹
klienta oraz parametrem '*', który oznacza „cokolwiek”, jak w przyk³adzie poni¿ej:
serwer% nmblookup -B klient '*'
Sending queries to 192.168.236.10 192.168.236.10 *
Got a positive name query response from 192.168.236.10 (192.168.236.10)

· Jeœli otrzymasz komunikat „Name_query failed to find name *”, oznacza to, ¿e

pope³ni³eœ pomy³kê przy wpisywaniu polecenia lub ¿e oprogramowanie klienckie w komputerze PC nie jest zainstalowane, uruchomione lub powi¹zane z protoko³em TCP/IP. Zajrzyj do rozdzia³ów 2 i 3, aby upewniæ siê, ¿e oprogramowanie
klienckie jest zainstalowane i nas³uchuje w sieci.
Jeœli wyst¹pi³y jakieœ b³êdy, powtórz to polecenie z nastêpuj¹cymi opcjami:
· Jeœli polecenie nmblookup -B adres_IP_klienta dzia³a, a -B nazwa_klienta nie, oznacza to, ¿e us³ugi nazewnicze maj¹ problem z nazw¹ klienta. PrzejdŸ
do podrozdzia³u „Rozwi¹zywanie problemów z us³ugami nazewniczymi”.
· Jeœli polecenie nmblookup -B 127.0.0.1 '*' dzia³a, a -B adres_IP_klienta nie, wina le¿y po stronie sprzêtu i polecenie ping równie¿ nie powinno dzia³aæ.
Skontaktuj siê z administratorem sieci.
Testowanie sieci za pomoc¹ polecenia nmblookup
Wydaj polecenie nmblookup z opcj¹ -d 2 (poziom diagnostyczny 2) i parametrem
'*'. Tym razem sprawdzamy, czy programy (takie jak nmblookup) mog¹ u¿ywaæ
rozg³oszeñ. Jest to zasadniczo test ³¹cznoœci, korzystaj¹cy z domyœlnego adresu
rozg³oszeniowego.
Hosty u¿ywaj¹ce NetBIOS-u i TCP/IP powinny odpowiedzieæ komunikatami „got
a positive name query response”. Samba mo¿e nie wy³apaæ wszystkich odpowiedzi
w czasie dzia³ania polecenia, wiêc nie zawsze zobaczysz wszystkie klienty w sieci.
Powinieneœ jednak uzyskaæ odpowiedzi od wiêkszoœci z nich:
serwer% nmblookup -d 2 '*'
Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask = 255.255.255.0
Sending queries to 192.168.236.255
Got a positive name query response from 192.168.236.191 (192.168.236.191)
Got a positive name query response from 192.168.236.228 (192.168.236.228)
Got a positive name query response from 192.168.236.75 (192.168.236.75)
Got a positive name query response from 192.168.236.79 (192.168.236.79)
Got a positive name query response from 192.168.236.206 (192.168.236.206)
Got a positive name query response from 192.168.236.207 (192.168.236.207)

Drzewo b³êdów

267

Got a positive name query response from 192.168.236.217 (192.168.236.217)
Got a positive name query response from 192.168.236.72 (192.168.236.72) 192.168.
236.86 *

Jednak¿e:
· Jeœli w wynikach nie zobaczysz uprzednio przetestowanego adresu klienta, domyœlny adres rozg³oszeniowy jest b³êdny. Wypróbuj polecenie nmblookup -B
255.255.255.255 -d 2 '*' (adres rozg³oszeniowy sk³adaj¹cy siê z samych
jedynek). Jeœli pojawi¹ siê odpowiedzi, oznacza to, ¿e u¿yty poprzednio adres
rozg³oszeniowy jest niepoprawny. Rozwi¹zanie tego problemu omówiono w dalszym podrozdziale „Adresy rozg³oszeniowe”.
· Jeœli adres 255.255.255.255 równie¿ nie zadzia³a, przypomnij sobie, czy klient
i serwer nie znajduj¹ siê w innych podsieciach (ustali³eœ to podczas testowania
po³¹czeñ za pomoc¹ polecenia ping). Powinieneœ diagnozowaæ przegl¹danie, u¿ywaj¹c serwera i klienta w tej samej podsieci, ale jeœli jest to niemo¿liwe, spróbuj
podaæ adres rozg³oszeniowy zdalnej podsieci w opcji -B. Metodê ustalania tego
adresu omawiamy w podrozdziale poœwiêconym rozwi¹zywaniu problemów
z rozg³oszeniami, „Adresy rozg³oszeniowe”. Opcja -B mo¿e zadzia³aæ, jeœli twój
ruter obs³uguje ukierunkowane rozg³oszenia; jeœli nie, bêdziesz musia³ wykonaæ
ten test na kliencie z tej samej podsieci.
Testowanie przegl¹dania w kliencie za pomoc¹ polecenia NET VIEW
W kliencie wpisz polecenie net view \\serwer w oknie DOS-a, aby zobaczyæ,
czy mo¿esz po³¹czyæ siê z serwerem i zapytaæ go o udostêpniane udzia³y. Powinieneœ zobaczyæ listê udostêpnianych zasobów, jak na rysunku 9.4.

Rysunek 9.4. U¿ycie polecenia NET VIEW

Jeœli uzyska³eœ tak¹ listê, przejdŸ do podrozdzia³u „Inne problemy”.
· Jeœli otrzymasz komunikat „Lokalizacja nazwy komputera okreœlonej w œcie¿ce
sieciowej jest niemo¿liwa” dla nazwy, któr¹ ju¿ przetestowa³eœ w podrozdziale
„Testowanie klienta za pomoc¹ polecenia nmblookup”, wina le¿y po stronie oprogramowania klienta. Upewnij siê, ¿e tak jest w istocie, wykonuj¹c polecenie nmblookup z nazw¹ klienta; jeœli to zadzia³a, a polecenie NET VIEW nie, za b³¹d
odpowiedzialny jest klient.

268

Rozdzia³ 9: Rozwi¹zywanie problemów

· Oczywiœcie, jeœli polecenie nmblookup nie powiedzie siê, oznacza to problem

z us³ugami nazewniczymi NetBIOS-u, co omówiono w podrozdziale „Rozwi¹zywanie problemów z nazwami NetBIOS-owymi”.
· Jeœli otrzymasz komunikat „Brak koniecznych uprawnieñ do u¿ywania zasobu
sieciowego” albo „Podany serwer nie jest skonfigurowany do akceptowania wpisanego polecenia”, oznacza to, ¿e albo twoje konto goœcinne jest Ÿle skonfigurowane (patrz podrozdzia³ „Testowanie konfiguracji lokalnej za pomoc¹ programu
smbclient”), albo w pliku konfiguracyjnym istnieje linia hosts allow lub hosts
deny, która uniemo¿liwia dostêp twojemu komputerowi. Problemy te powinny
zostaæ wykryte podczas testów opisanych w podrozdziale „Testowanie
przegl¹dania za pomoc¹ programu smbclient”.
· Jeœli otrzymasz komunikat „Podany komputer nie otrzymuje ¿¹dañ”, mo¿e to
oznaczaæ, ¿e: b³êdnie wpisa³eœ nazwê, komputer jest nieosi¹galny dla transmisji
rozg³oszeniowych (co sprawdzaliœmy w podrozdziale „Testowanie sieci za po moc¹ polecenia nmblookup”) lub nie dzia³a w nim demon nmbd.
· Jeœli otrzymasz komunikat „Podane has³o sieciowe jest niepoprawne”, prawdopodobnie wyst¹pi³ problem z zaszyfrowanymi has³ami, który omówiono w rozdziale 6 (tam te¿ zasugerowano rozwi¹zanie).
Przegl¹danie zasobów serwera z klienta
Spróbuj przejrzeæ zasoby serwera w oknie Otoczenia sieciowego (w starszych wersjach Windows u¿yj Mened¿era plików). Serwer Samby powinien widnieæ na liœcie
przegl¹dania lokalnej grupy roboczej. Po dwukrotnym klikniêciu nazwy serwera
powinieneœ uzyskaæ listê udzia³ów (patrz rysunek 9.5).

Rysunek 9.5. Lista udzia³ów serwera

· Jeœli otrzymasz komunikat „Has³o nie jest poprawne” w klientach NT 4.0, NT 3.5

z SP3, Windows 95 z SP3 , Windows 98 lub w dowolnym z tych systemów z zainstalowanym Internet Explorerem 4.0, przyczyn¹ jest zapewne szyfrowanie hase³.
Wszystkie te klienty u¿ywaj¹ algorytmu Microsoftu do szyfrowania hase³ (patrz
rozdzia³ 6).
· Jeœli otrzymasz komunikat „Przegl¹danie sieci nie jest mo¿liwe”, przyczyny
mog¹ byæ nastêpuj¹ce:

Drzewo b³êdów

269

· Przegl¹dasz sieæ zbyt wczeœnie, zanim dobieg³y koñca transmisje rozg³osze -

niowe i uaktualnienia; odczekaj 30 sekund przed kolejn¹ prób¹.
· W sieci istnieje problem, którego dot¹d nie zdiagnozowaliœmy.
· W sieci nie ma g³ównej przegl¹darki. Dodaj opcjê konfiguracyjn¹ local master = yes do pliku smb.conf.
· ¯aden z udzia³ów w pliku smb.conf nie zawiera opcji browsable = yes.
· Jeœli otrzymasz komunikat „\\serwer nie jest dostêpny”, mo¿e to oznaczaæ, ¿e:
· Wystêpuje problem z zaszyfrowanymi has³ami.
· Komputer rzeczywiœcie nie jest dostêpny.
· Komputer nie obs³uguje przegl¹dania.

Inne problemy
Jeœli dotar³eœ do tego miejsca, to znaczy, ¿e rozwi¹za³eœ problem, albo trafi³eœ na taki,
z którym siê jeszcze nie spotkaliœmy. W nastêpnych podrozdzia³ach omawiamy
czynnoœci konieczne do zapewnienia infrastruktury dla pracy Samby.
Praca bez zalogowania siê
Czasem mo¿e siê zdarzyæ, ¿e zapomnisz zalogowaæ siê w kliencie albo zalogujesz siê
jako nieprawid³owy (nie maj¹cy konta) u¿ytkownik. W tym pierwszym przypadku
nie otrzymasz ¿adnego ostrze¿enia: Windows próbuje byæ przyjazny i pozwala ci
korzystaæ z komputera. Tylko lokalnie! W tym drugim przypadku Windows po prostu powita ciê i utworzy nowe konto. W obu przypadkach spotkasz siê z odmowami
po³¹czenia i powtarzaj¹cymi siê proœbami o podanie has³a. Jeœli nic nie da siê na to
poradziæ, spróbuj wylogowaæ siê lub zamkn¹æ system i zalogowaæ siê ponownie.

Rozwi¹zywanie problemów z us³ugami nazewniczymi
W tym podrozdziale zajmiemy siê rozwi¹zywaniem problemów z us³ugami nazewniczymi, ograniczaj¹c siê do tych, które maj¹ wp³yw na pracê Samby.
Diagnozowanie ró¿nych us³ug nazewniczych jest opisane w kilku dobrych ksi¹¿kach:
Domain Name Service (DNS) w ksi¹¿ce Paula Albitza i Cricketa Liu DNS i Bind (wydanej przez Wydawnictwo RM), NIS („Yellow Pages”) w ksi¹¿ce Hala Sterna NFS and NIS
(obie opublikowane przez wydawnictwo O'Reilly), natomiast Windows Internet Name
Service (WINS), pliki hosts i LMHOSTS oraz NIS+ s¹ najdok³adniej omówione w
podrêcznikach producentów.
Problemy, które omówimy w tym podrozdziale, to:
· Identyfikowanie us³ug nazewniczych.
· Nie mo¿na wyszukaæ nazwy hosta.
· D³uga forma nazwy hosta dzia³a, ale krótka nie.
· Krótka forma nazwy hosta dzia³a, ale d³uga nie.
· Przed uzyskaniem oczekiwanego rezultatu nastêpuje d³uga zw³oka.

270

Rozdzia³ 9: Rozwi¹zywanie problemów

Identyfikowanie us³ug nazewniczych
Najpierw sprawdŸ, czy serwer i klient u¿ywaj¹ DNS, WINS, NIS lub plików hosts,
aby okreœliæ adres IP hosta na podstawie podanej nazwy. Ró¿ne typy komputerów
maj¹ ró¿ne priorytety:
· Komputery Windows 95 i 98 sprawdzaj¹ najpierw WINS i plik LMHOSTS, na stêpnie u¿ywaj¹ rozg³oszeñ, a na koñcu sprawdzaj¹ DNS i plik hosts.
· Komputery NT najpierw sprawdzaj¹ WINS, nastêpnie u¿ywaj¹ rozg³oszeñ,
wreszcie sprawdzaj¹ plik hosts i DNS.
· Programy dla Windows u¿ywaj¹ce standardu Winsock (na przyk³ad klienty NFS
dla komputerów PC) sprawdzaj¹ plik hosts, DNS, WINS, a wreszcie u¿ywaj¹
rozg³oszeñ. Nie zak³adaj, ¿e jeœli dzia³a us³uga nazewnicza innego programu, to
bêdzie dzia³aæ równie¿ us³uga nazewnicza klienta SMB!
· Demony Samby sprawdzaj¹ plik LMHOSTS, WINS, póŸniej uniksowe mechanizmy nazewnicze, a na koñcu u¿ywaj¹ rozg³oszeñ.
· Hosty uniksowe mo¿na skonfigurowaæ tak, aby u¿ywa³y dowolnej kombinacji
DNS, pliku hosts oraz NIS i NIS+, praktycznie w dowolnej kolejnoœci.
Zalecamy, aby klienty u¿ywa³y WINS i DNS, podobnie jak demony Samby, natomiast serwer uniksowy powinien u¿ywaæ DNS. Bêdziesz musia³ sprawdziæ swoje
notatki i poszczególne komputery, aby dowiedzieæ siê, jakie us³ugi s¹ w u¿yciu.
W klientach wszystkie us³ugi nazewnicze konfiguruje siê w oknie W³aœciwoœci:
Protokó³ TCP/IP otwieranym z apletu Sieæ Panelu sterowania, co omówiono w rozdziale 3. Byæ mo¿e bêdziesz musia³ tam zajrzeæ, aby dowiedzieæ siê, które us³ugi s¹
w³¹czone. W serwerze sprawdŸ, czy istnieje plik /etc/resolv.conf. Jeœli istnieje, oznacza
to, ¿e u¿ywasz DNS. Byæ mo¿e korzystasz jednak tak¿e z innych us³ug. Bêdziesz
musia³ sprawdziæ, czy u¿ywasz NIS lub pewnej kombinacji us³ug nazewniczych.
W Solarisie i Systemie V sprawdŸ, czy istnieje plik /etc/nsswitch.conf. Jeœli tak, poszukaj w nim linii zaczynaj¹cej siê od s³owa host:, po którym nastêpuje jeden lub kilka
spoœród nastêpuj¹cych parametrów: files, bind, nis lub nis+. S¹ to u¿ywane
us³ugi nazewnicze, wymienione w kolejnoœci, przy czym w nawiasach kwadratowych mog¹ znajdowaæ siê ich dodatkowe parametry. Parametr files oznacza u¿ycie
pliku hosts, natomiast parametr bind (skrót od Berkeley Internet Name Daemon) oznacza u¿ycie DNS.
Jeœli klient i serwer stosuj¹ inne us³ugi, najpierw nale¿y je zsynchronizowaæ. Klienty
mog¹ u¿ywaæ tylko DNS, WINS, plików hosts i plików lmhosts, lecz nie NIS i NIS+.
Serwery mog¹ u¿ywaæ plików hosts, DNS, NIS i NIS+, ale nie mog¹ u¿ywaæ WINS
– nawet wtedy, gdy Samba œwiadczy us³ugi WINS. Jeœli nie mo¿esz skonfigurowaæ
wszystkich systemów tak, aby korzysta³y z tych samych us³ug, musisz upewniæ siê,
¿e serwer i klienty dysponuj¹ tymi samymi danymi.
W Sambie 2.0 (i póŸniejszych wydaniach wersji 1.9) dodano opcjê -R (kolejnoœæ odwzorowywania nazw) do programu smbclient. Jeœli chcia³byœ na przyk³ad zdiagnozowaæ problem z WINS, móg³byœ wydaæ polecenie:
smbclient -L serwer -R wins

Drzewo b³êdów

271

Opcja ta mo¿e przybieraæ wartoœci hosts (co oznacza wszystkie mechanizmy u¿ywane w Uniksie, nie tylko plik /etc/hosts), lmhosts, wins i bcast (rozg³oszenia).
W poni¿szych przyk³adach u¿ywamy terminu d³uga nazwa na okreœlenie pe³nej
nazwy domenowej (fully-qualified domain name, FQDN), jak na przyk³ad serwer.przyklad.com, a terminu krótka nazwa na okreœlenie czêœci hosta w pe³nej nazwie, jak na
przyk³ad serwer.
Nie mo¿na wyszukaæ nazwy hosta
Spróbuj zrobiæ co nastêpuje:
· DNS:
Wydaj polecenie nslookup nazwa. Jeœli to siê nie powiedzie, przyczyn¹ mo¿e
byæ b³¹d w pliku resolv.conf, awaria serwera DNS albo problem z krótkimi i d³ugimi nazwami (patrz nastêpny podrozdzia³). W takim przypadku powinieneœ postêpowaæ w opisany ni¿ej sposób:
· Plik /etc/resolv.conf powinien zawieraæ jedn¹ lub kilka linii zaczynaj¹cych siê od
s³owa nameserver, po którym nastêpuje adres IP. S¹ to adresy twoich serwerów DNS. SprawdŸ ka¿dy z tych adresów za pomoc¹ polecenia ping. Jeœli polecenie nie zadzia³a dla jednego z nich, mo¿esz podejrzewaæ komputer. Jeœli nie
zadzia³a dla ¿adnego, mo¿esz podejrzewaæ sieæ.
· Spróbuj ponownie przeprowadziæ wyszukiwanie, tym razem u¿ywaj¹c pe³nej
nazwy domenowej (na przyk³ad serwer.przyklad.com), jeœli za pierwszym razem
u¿y³eœ krótkiej, lub pos³uguj¹c siê nazw¹ krótk¹, jeœli za pierwszym razem
u¿y³eœ d³ugiej. Jeœli rezultaty siê ró¿ni¹, przejdŸ do nastêpnego podrozdzia³u.
· Rozg³oszenia i WINS:
Rozg³oszenia i WINS mog¹ odwzorowywaæ tylko nazwy krótkie, takie jak serwer (a nie d³ugie, jak na przyk³ad serwer.przyklad.com). Wydaj polecenie
nmblookup -S serwer. Wyœwietli ono wszystkie us³ugi, które zarejestrowano
dla danej nazwy. W naszym przyk³adzie lista wygl¹da nastêpuj¹co:
Looking up status of 192.168.236.86
received 10 names
SERWER
& lt; 00 & gt; SERWER
& lt; 03 & gt; SERWER
& lt; 1f & gt; SERWER
& lt; 20 & gt; .._ _ MSBROWSE_ _ .. & lt; 01 & gt; - & lt; GROUP & gt;
MOJAGRUPA
& lt; 00 & gt; - & lt; GROUP & gt;
MOJAGRUPA
& lt; 1b & gt; MOJAGRUPA
& lt; 1c & gt; - & lt; GROUP & gt;
MOJAGRUPA
& lt; 1d & gt; MOJAGRUPA
& lt; 1e & gt; - & lt; GROUP & gt;

M
M
M
M
M
M
M
M
M
M

& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;
& lt; ACTIVE & gt;

Wymagany wpis to SERWER & lt; 00 & gt; , który identyfikuje s³owo SERWER jako NetBIOS-ow¹ nazwê komputera. Powinieneœ tak¿e zobaczyæ kilkakrotnie wymienion¹ nazwê swojej grupy roboczej. Jeœli nie ujrzysz tych linii, oznacza to, ¿e
rozg³oszenia i WINS nie mog¹ wyszukiwaæ nazw i wymagaj¹ bli¿szego sprawdzenia.

272

Rozdzia³ 9: Rozwi¹zywanie problemów

Liczby w nawiasach ostrok¹tnych w poprzednim przyk³adzie identyfikuj¹ nazwy NetBIOS-owe jako grupy robocze, stacje robocze, u¿ytkowników us³ugi pos³añca, g³ówne
przegl¹darki lokalne, przegl¹darki domeny, kontrolery domeny i tak dalej. Najczêœciej
u¿ywane kody to: & lt; 00 & gt; , (który identyfikuje komputer), oraz & lt; 20 & gt; , (który oznacza, ¿e
komputer jest serwerem). Pe³na lista jest dostêpna pod adresem http://support.microsoft.
com/support/kb/articles/q163/4/09.asp.

· NIS:
Wydaj polecenie ypmatch nazwa hosts. Jeœli to siê nie powiedzie, NIS nie
dzia³a. Odszukaj nazwê serwera NIS za pomoc¹ polecenia ypwhich i za pomoc¹
polecenia ping sprawdŸ, czy jest on dostêpny.
· NIS+:
Jeœli korzystasz z NIS+, wydaj polecenie nismatch nazwa hosts. Jeœli to siê
nie powiedzie, NIS nie dzia³a. Odszukaj nazwê serwera NIS za pomoc¹ polecenia
niswhich i za pomoc¹ polecenia ping sprawdŸ, czy jest on dostêpny.
· Pliki hosts:
Przejrzyj plik hosts w kliencie (C:\WINDOWS\HOSTS). Ka¿da linia powinna zaczynaæ siê od adresu IP, po którym nastêpuje jedna lub wiêcej nazw – najpierw
nazwa podstawowa, a potem opcjonalne aliasy. Oto przyk³ad:
127.0.0.1
192.168.236.1
192.168.236.10
192.168.236.11
192.168.236.86
192.168.236.254

localhost
dns.srw.przyklad.com
klient.przyklad.com klient
zapas.przyklad.com loghost
serwer.przyklad.com serwer
ruter.srw.przyklad.com

W Uniksie nazwa localhost powinna byæ zawsze zwi¹zana z adresem
127.0.0.1, natomiast w komputerze PC mo¿e to byæ po prostu alias nazwy hosta.
W kliencie sprawdŸ, czy na koñcu linii nie ma dyrektyw #XXX; s¹ to dyrektywy
LAN Managera/NetBIOS-u i powinny znajdowaæ siê tylko w plikach LMHOSTS
(C:\WINDOWS\LMHOSTS).
· Pliki LMHOSTS:
Ten plik to lokalne Ÿród³o nazw LAN Managera (nazw NetBIOS-owych). Formatem przypomina pliki /etc/hosts, ale nie obs³uguje d³ugich nazw domenowych (takich jak serwer.przyklad.com), a po nazwach mog¹ wystêpowaæ opcjonalne
dyrektywy #XXX. Zauwa¿, ¿e w katalogu C:\WINDOWS znajduje siê zwykle plik
lmhosts.sam (rozszerzenie pochodzi od s³owa sample, próbka), ale nie jest on u¿ywany, dopóki nie zmienisz jego nazwy na C:\WINDOWS\LMHOSTS.
D³ugie i krótkie nazwy hostów
Jeœli dzia³a d³uga (FQDN) nazwa hosta, a krótka nie (na przyk³ad mo¿na wyszukaæ
nazwê klient.przyklad.com, ale nie klient), przyczyny mog¹ byæ nastêpuj¹ce:
· DNS:
Zwykle oznacza to, ¿e nie ma domyœlnej domeny, w której mo¿na by wyszukaæ
krótk¹ nazwê. SprawdŸ, czy w pliku /etc/resolv.conf w serwerze Samby znajduje siê

Drzewo b³êdów

273

linia default z nazw¹ twojej domeny lub linia search z jedn¹ lub kilkoma nazwami domen. Aby mo¿na by³o korzystaæ z krótkich nazw, jedna z tych linii musi byæ
obecna; która to bêdzie, zale¿y od producenta i wersji programu odwzorowuj¹cego.
Spróbuj dodaæ liniê domain twoja_domena do pliku resolv.conf i zapytaj administratora sieci lub serwera DNS, jaka powinna byæ zawartoœæ tego pliku.
· Rozg³oszenia i WINS:
Rozg³oszenia i WINS nie obs³uguj¹ d³ugich nazw, zatem problem ten tutaj nie
wystêpuje.
· NIS:
Spróbuj wydaæ polecenie ypmatch nazwahosta hosts. Jeœli nie znajdziesz
pasuj¹cego wpisu, oznacza to, ¿e tabele NIS nie zawieraj¹ krótkich nazw. Porozmawiaj z administratorem sieci; byæ mo¿e nieobecnoœæ krótkich nazw jest przypadkowa, a byæ mo¿e wynika z za³o¿eñ administracyjnych. W niektórych
sieciach w ogóle nie u¿ywa siê krótkich (wieloznacznych) nazw.
· NIS+:
Spróbuj wydaæ polecenie nismatch nazwahosta hosts, a w razie niepowodzenia postêpuj tak, jak w przypadku NIS.
· Pliki hosts:
Jeœli krótkiej nazwy nie ma w pliku hosts, mo¿esz dodaæ j¹ jako alias. Jeœli jest to
mo¿liwe, nie stosuj nazw krótkich jako podstawowych (pierwszych w linii).
Wpisz je jako aliasy, jeœli system na to pozwala.
· Pliki LMHOSTS:
LAN Manager nie obs³uguje d³ugich nazw, zatem problem ten tutaj nie wystêpuje.
Jeœli zaœ dzia³a krótka forma nazwy, a d³uga nie, przyczyny mog¹ byæ nastêpuj¹ce:
· DNS:
Jest to doœæ dziwne; skontaktuj siê z administratorem sieci lub DNS, gdy¿ jest to
prawdopodobnie usterka w konfiguracji.
· Rozg³oszenia i WINS:
Jest to normalne. W rozg³oszeniach i WINS nie mo¿na u¿ywaæ d³ugiej formy.
Rozwa¿, czy nie zastosowaæ DNS. Microsoft og³osi³, ¿e przejdzie na DNS, choæ
us³uga ta nie dostarcza typów nazw, jak na przyk³ad & lt; 00 & gt; .
· NIS:
Jeœli polecenie ypmatch wyszukuje krótk¹ formê, ale nie d³ug¹, mo¿esz dodaæ
d³ug¹ formê do tabeli NIS przynajmniej jako alias.
· NIS+:
Tak samo jak w przypadku NIS, z tym ¿e do wyszukiwania nazw u¿ywa siê polecenia nismatch zamiast ypmatch.
· Pliki hosts:
Dodaj d³ug¹ formê przynajmniej jako alias, a najlepiej jako formê podstawow¹.
Jeœli jest to mo¿liwe do zastosowania w praktyce, rozwa¿ u¿ycie DNS.

274

Rozdzia³ 9: Rozwi¹zywanie problemów

· Pliki LMHOSTS:
Jest to normalne. LAN Manager nie mo¿e u¿ywaæ d³ugich form; rozwa¿ zastosowanie DNS lub plików hosts.
Niezwyk³e opóŸnienia
Jeœli przed osi¹gniêciem zamierzonego rezultatu wystêpuje d³uga zw³oka:
· DNS:
Przetestuj tê sam¹ nazwê za pomoc¹ polecenia nslookup w komputerze (kliencie
lub serwerze), który dzia³a wolno. Jeœli polecenie nslookup równie¿ pracuje wolno, oznacza to problem z DNS. Jeœli dzia³a wolniej w kliencie, oznacza to, ¿e
z kart¹ Ethernetu powi¹zanych jest zbyt wiele protoko³ów. Wyeliminuj NetBEUI,
który jest znany z powolnoœci, a opcjonalnie protokó³ Novela, jeœli go nie potrzebujesz. Jest to szczególnie istotne w systemie Windows 95, który jest bardzo wra¿liwy na nadmiarowe protoko³y.
· Rozg³oszenia i WINS:
Przetestuj klienta za pomoc¹ polecenia nmblookup, a jeœli zadzia³a ono szybciej,
prawdopodobnie problem stanowi¹ nadmiarowe protoko³y, jak opisano w po przednim punkcie.
· NIS:
Wypróbuj polecenie ypmatch, a jeœli dzia³a ono wolno, zg³oœ problem administratorowi sieci.
· NIS+:
Podobnie, wypróbuj polecenie nismatch.
· Pliki hosts:
Pliki hosts, jeœli maj¹ rozs¹dn¹ wielkoœæ, zawsze s¹ szybkie. Prawdopodobnie
problem zwi¹zany jest z protoko³ami, jak opisano powy¿ej w punkcie dotycz¹cym DNS.
· Pliki LMHOSTS:
Problem nie jest zwi¹zany z wyszukiwaniem nazw; pliki LMHOSTS s¹ tak samo
szybkie, jak pliki hosts.
Problemy z lokalnym hostem
Jeœli nazwie localhost nie odpowiada adres 127.0.0.1, spróbuj zrobiæ co nastêpuje:
· DNS:
Prawdopodobnie brak rekordu dla lokalnego hosta: localhost. A 127.0.0.1.
Dodaj ten rekord, a tak¿e rekord odwrotny: 1.0.0.127.IN-ADDR.ARPA PTR
127.0.0.1
· Rozg³oszenia i WINS:
Nie dotyczy.

Drzewo b³êdów

275

· NIS:
Jeœli w tablicy nie ma wpisu dla nazwy localhost, dodaj j¹.
· NIS+:
Jeœli w tablicy nie ma wpisu dla nazwy localhost, dodaj j¹.
· Pliki hosts:
Dodaj do pliku hosts liniê o postaci: 127.0.0.1 localhost.
· Pliki LMHOSTS:
Nie dotyczy.

Rozwi¹zywanie problemów z adresami sieciowymi
Kilka czêsto spotykanych problemów jest spowodowanych b³êdnym trasowaniem
do adresów internetowych lub niepoprawnym przydzia³em adresów. W tym podrozdziale powiemy, jak mo¿esz ustaliæ swoje adresy.
Maski sieciowe
Maski sieciowe informuj¹ komputery, które adresy mo¿na osi¹gn¹æ bezpoœrednio
(poniewa¿ znajduj¹ siê w sieci lokalnej), a które wymagaj¹ przekazania pakietów
przez ruter. Jeœli maska sieciowa jest b³êdna, komputer pope³ni jedn¹ z dwóch
pomy³ek. Pierwsza polega na wysy³aniu lokalnych pakietów do rutera, co obni¿a
wydajnoœæ – taka konfiguracja mo¿e dzia³aæ ca³kiem szybko, mo¿e dzia³aæ wolno,
mo¿e te¿ zawieœæ ca³kowicie. Druga polega na niewysy³aniu pakietów zdalnych do
rutera, co uniemo¿liwi przekazanie ich do zdalnego komputera.
Maska sieciowa to liczba przypominaj¹ca adres IP, przy czym bity ustawione na 1
wyznaczaj¹ w adresie czêœæ sieci, a bity ustawione na 0 – czêœæ hosta. Maska sieciowa, jak sama nazwa wskazuje, s³u¿y do maskowania czêœci adresu w kodzie
TCP/IP. Jeœli maska sieciowa ma wartoœæ 255.255.0.0, wówczas dwa pierwsze bajty
adresu stanowi¹ czêœæ sieci, a dwa pozosta³e – czêœæ hosta. Czêœciej u¿ywana jest maska 255.255.255.0, w której trzy pierwsze bajty stanowi¹ czêœæ sieci, a ostatni – czêœæ
hosta.
Za³ó¿my, ¿e twój adres IP to 192.168.0.10, a adres serwera Samby to 192.168.236.86.
Jeœli twoja maska sieciowa ma wartoœæ 255.255.255.0, wówczas sieciow¹ czêœci¹ adresu s¹ pierwsze trzy bajty, a czêœæ hosta zajmuje ostatni bajt. Oznacza to, ¿e czêœci
sieciowe siê ró¿ni¹, a komputery mog¹ znajdowaæ siê w ró¿nych sieciach:
Czêœæ sieci

Czêœæ hosta

192 168 000
192 168 236

10
86

Jeœli twoja maska sieciowa ma wartoœæ 255.255.0.0, wówczas sieciow¹ czêœci¹ adresu
s¹ tylko dwa pierwsze bajty. W takim przypadku czêœci sieciowe s¹ takie same,
a komputery znajduj¹ siê w tej samej sieci:

276

Rozdzia³ 9: Rozwi¹zywanie problemów

Czêœæ sieci

Czêœæ hosta

192 168
192 168

000 10
236 86

Oczywiœcie, jeœli twoja maska sieciowa mówi jedno, a administrator sieci co innego,
oznacza to, ¿e maska jest b³êdna.
Adresy rozg³oszeniowe
Adres rozg³oszeniowy to zwyk³y adres, w którym wszystkie bity w czêœci hosta s¹
ustawione na 1. Oznacza on „wszystkie hosty w sieci”. Mo¿esz obliczyæ go ³atwo na
podstawie swojej maski sieciowej i adresu: weŸ adres i umieœæ w nim bity o wartoœci
1 we wszystkich pozycjach, w których maska sieciowa ma bity o wartoœci 0 (czyli
w czêœci hosta). Ilustruje to poni¿sza tabela:
Czêœæ sieci
Adres IP
Maska sieciowa
Adres rozg³oszeniowy

Czêœæ hosta

192 168 236
255 255 255
192 168 236

86
000
255

W tym przyk³adzie adresem rozg³oszeniowym dla sieci 192.168.236 jest adres
192.168.236.255. Rutery nie przekazuj¹ dalej tak zaadresowanych pakietów, ale wiêkszoœæ komputerów w sieci lokalnej odpowie na rozg³oszenie kierowane na ten adres.
Zakresy adresów sieciowych
Pewne zakresy adresów zosta³y zarezerwowane do celów testowych oraz na u¿ytek
sieci nie pod³¹czonych do Internetu; w³aœnie takich adresów u¿ywamy w ksi¹¿ce. Jeœli nie masz jeszcze adresu, mo¿esz zacz¹æ od jednego z nich. Obejmuj¹ one jedn¹
sieæ klasy A (du¿¹), 10.*.*.*, oraz 254 sieci klasy C (ma³e), od 192.168.1.* do
192.168.254.*. W niniejszej ksi¹¿ce wybraliœmy jedn¹ z sieci klasy C, 192.168.236.*.
Jeœli rzeczywiœcie ³¹czysz siê z Internetem, powinieneœ uzyskaæ prawdziwy adres
sieci oraz nazwê domenow¹, zwykle za poœrednictwem tej samej firmy, która udostêpnia ci po³¹czenie.
Ustalanie adresu sieciowego
Jeœli nie zapisa³eœ adresu swojego komputera, mo¿esz go wyœwietliæ za pomoc¹ polecenia ifconfig w Uniksie, IPCONFIG w Windows NT oraz WINIPCFG w Windows
95 (sprawdŸ na stronach podrêcznika man, jakich opcji wymaga twoja odmiana
Uniksa; w systemie Sun trzeba u¿yæ polecenia ifconfig -a). Powinieneœ zobaczyæ
wyniki podobne do poni¿szych:
serwer% ifconfig -a
le0: flags=63 & lt; UP,BROADCAST,NOTRAILERS,RUNNING & gt;
inet 192.168.236.11 netmask ffffff00 broadcast 192.168.236.255
lo0: flags=49 & lt; UP,LOOPBACK,RUNNING & gt;
inet 127.0.0.1 netmask ff000000

Drzewo b³êdów

277

Jednym z interfejsów bêdzie pêtla zwrotna (w naszym przyk³adzie lo0), a drugim –
zwyk³y interfejs IP. Znaczniki powinny wskazywaæ, ¿e interfejs dzia³a (RUNNING),
a przy interfejsach Ethernetu pojawi siê tak¿e informacja o obs³udze rozg³oszeñ (interfejsy PPP ich nie obs³uguj¹). Inne miejsca, w których mo¿na poszukaæ adresów IP,
to pliki /etc/hosts, pliki HOSTS w Windows, pliki LMHOSTS w Windows, NIS, NIS+
i DNS.

Rozwi¹zywanie problemów z nazwami NetBIOS-owymi
Protoko³y SMB by³y od pocz¹tku zale¿ne od systemu nazw NetBIOS-u, nazywanego
tak¿e systemem nazw LAN Managera. By³ to prosty schemat nazewniczy, w którym
ka¿dy komputer mia³ niepowtarzaln¹ nazwê d³ugoœci 20 znaków i rozg³asza³ j¹
w sieci lokalnej do wiadomoœci wszystkich innych komputerów. W TCP/IP u¿ywamy raczej nazw typu klient.przyklad.com, przechowywanych w plikach /etc/hosts lub
udostêpnianych przez DNS albo WINS.
Najczêœciej spotykane odwzorowywanie nazw domenowych, takich jak serwer. przyklad.com, polega po prostu na potraktowaniu czêœci „serwer” jako nazwy NetBIOS-owej
po uprzednim przekszta³ceniu jej na du¿e litery. Niestety, podejœcie takie nie zawsze
siê sprawdza, zw³aszcza wtedy, gdy nazwa komputera ma wiêcej ni¿ 20 znaków.
Nie ka¿dy komputer u¿ywa takiej samej nazwy NetBIOS-owej i DNS; doœæ czêsto
równolegle z nazw¹ typu firmavm1 u¿ywa siê nazwy typu vm1.firma.com.
Komputer, którego nazwa DNS ró¿ni siê od NetBIOS-owej, sprawia k³opoty pod czas diagnozowania problemów; jeœli to mo¿liwe, radzimy unikaæ takiej konfiguracji. Nazwy NetBIOS-owe mo¿na ustaliæ za pomoc¹ programu smbclient:
· Jeœli mo¿esz wylistowaæ udzia³y serwera Samby za pomoc¹ polecenia smbclient
z opcj¹ -L krótka_nazwa_serwera, krótka nazwa jest nazw¹ NetBIOS-ow¹.
· Jeœli otrzymasz komunikat „Get_Hostbyname: Unknown host nazwa”, prawdopodobnie zachodzi niezgodnoœæ nazw. SprawdŸ, czy nazwa NetBIOS-owa nie jest
okreœlona jawnie w pliku smb.conf.
· Spróbuj ponownie, tym razem z opcj¹ -I i adresem IP serwera Samby (na
przyk³ad smbclient -L serwer -I 192.168.236.86). W ten sposób pominiesz wyszukiwanie nazwy i wymusisz przes³anie pakietów pod podanym adresem IP. Jeœli to zadzia³a, zachodzi niezgodnoœæ nazw.
· Spróbuj ponownie, tym razem z opcj¹ -I i pe³n¹ nazw¹ domenow¹ serwera (na
przyk³ad smbclient -L serwer -I serwer.przyklad.com). W ten sposób
przetestujesz mechanizm wyszukiwania nazw domenowych u¿ywany przez serwer
Samby (na przyk³ad DNS). Jeœli to siê nie powiedzie, masz problem z us³ugami nazewniczymi. Kiedy uporasz siê z nazwami NetBIOS-owymi, powinieneœ jeszcze raz
przeczytaæ podrozdzia³ „Rozwi¹zywanie problemów z us³ugami nazewniczymi”.
· Spróbuj ponownie, tym razem z opcj¹ -n (nazwa NetBIOS-owa) i nazw¹, która
powinna zadzia³aæ (na przyk³ad smbclient -n serwer -L serwer-12), ale
nie wymuszaj¹c adresu opcj¹ -I. Jeœli to siê powiedzie, nazwa podana po opcji -n
jest rzeczywist¹ NetBIOS-ow¹ nazw¹ serwera. Jeœli otrzymasz komunikat
„Get_Hostbyname: Unknown host nazwa”, to wci¹¿ nie bêdzie ta nazwa.

278

Rozdzia³ 9: Rozwi¹zywanie problemów

· Jeœli do tej pory nic nie zadzia³a³o, powtórz testy, u¿ywaj¹c opcji -U na-

zwa_u¿ytkownika oraz -W grupa_robocza, aby upewniæ siê, ¿e na zawadzie
nie stoi niezgodnoœæ nazw u¿ytkownika lub grup roboczych.
· Jeœli nadal nic nie dzia³a, a masz dowody na b³êdne dzia³anie us³ug nazewniczych, zajrzyj do podrozdzia³u „Rozwi¹zywanie problemów z us³ugami nazewniczymi” i skoryguj ewentualne b³êdy, a nastêpnie wróæ do diagnozowania us³ug
nazewniczych NetBIOS-u.

Dodatkowe zasoby
W którymœ punkcie swojej kariery administratora Samby zapewne zechcesz zajrzeæ
do Ÿróde³ internetowych i drukowanych, aby zapoznaæ siê z nowinami, uaktualnieniami i wskazówkami.

Dokumentacja
Nie ma nic z³ego w czytaniu dokumentacji. Naprawdê. Nikt ciê na tym nie nakryje,
a i my nikomu nie powiemy. Samba jest dostarczana wraz z obszernym zbiorem plików dokumentacji i warto choæby pobie¿nie je przejrzeæ. Znajdziesz je w katalogu
/docs dystrybucji Samby w swoim komputerze, albo w witrynie Samby pod adresem
http://samba.anu.edu.au/samba/. W witrynie tej znajdziesz najbardziej aktualn¹ listê
dokumentów FAQ, informacje o usterkach w programie oraz ³¹cza do centrów dystrybucji, stron podrêcznika man Samby i dokumentów HOW-TO.

Grupy dyskusyjne Samby
W grupach Usenetu zawsze mo¿na by³o zasiêgn¹æ porady na niemal ka¿dy temat.
W ostatnich kilku latach ten niezmierzony ocean wiedzy rozwin¹³ coœ, co uczyni³o z niego wprost nieoceniony zasób: pamiêæ. Dziêki witrynom archiwizuj¹cym i wyszukiwawczym, takim jak DejaNews (http://www.dejanews.com) -kilkoma klikniêciami mo¿esz
uzyskaæ dostêp do gromadzonych przez lata rozwi¹zañ najrozmaitszych problemów.
Podstawowa grupa dyskusyjna Samby to comp.protocols.smb. W³aœnie tu powinieneœ
zajrzeæ najpierw, jeœli masz jakiœ problem. Zwykle kilka minut spêdzonych tutaj zaoszczêdzi ci d³ugich godzin samodzielnego diagnozowania problemu.
Kiedy przeszukujesz archiwum grupy dyskusyjnej, zadawaj krótkie, precyzyjne pytania. Najlepiej wyszukiwaæ rzeczywiste komunikaty o b³êdach. Jeœli nie znajdziesz
odpowiedzi natychmiast, odpêdŸ pokusê wys³ania proœby o pomoc, dopóki nie
spróbujesz sam zg³êbiæ tematu. Byæ mo¿e odkryjesz, ¿e odpowiedŸ znajduje siê
w dokumencie FAQ lub jednym z wielu innych plików dokumentacji dostarczanych
wraz z Samb¹, albo rozwi¹zanie stanie siê oczywiste, kiedy skorzystasz z narzêdzi
diagnostycznych Samby. Jeœli nic nie wskórasz, wyœlij proœbê do grupy comp.protocols.smb i opisz mo¿liwie dok³adnie swoje próby i ich rezultaty. Do³¹cz wszystkie
wyœwietlone komunikaty o b³êdach. Byæ mo¿e minie kilka dni, zanim uzyskasz pomoc, wiêc b¹dŸ cierpliwy, a czekaj¹c na odpowiedŸ, nie rezygnuj z samodzielnego
rozwi¹zania problemu.

Dodatkowe zasoby

279

Gdy wyœlesz proœbê o pomoc, spróbuj podejœæ do problemu z innej strony. Wiêkszoœci z nas zdarzy³o siê wys³aæ do grupy dyskusyjnej artyku³ z setkami zawi³ych detali
i uporaæ siê z problemem bez ¿adnej pomocy w godzinê póŸniej, gdy artyku³ zd¹¿y³
ju¿ przewêdrowaæ wszytkie kontynenty. Oto ogólna regu³a: im wiêcej ludzi przeczyta twoj¹ proœbê, tym prostsze oka¿e siê rozwi¹zanie. Zwykle oznacza to, ¿e kiedy
ju¿ ca³a uniksowa spo³ecznoœæ zapozna siê z twoim artyku³em, odpowiedŸ bêdzie
brzmia³a: „Pod³¹cz komputer do gniazdka w œcianie”.

Listy wysy³kowe Samby
Poni¿ej podajemy adresy list wysy³kowych zwi¹zanych z Samb¹. Informacje o subskrybowaniu tych grup i rezygnowaniu z subskrypcji znajdziesz na stronie g³ównej
Samby pod adresem http://www.samba.org/.
samba-binaries@samba.org
Ta lista wysy³kowa zawiera informacje o prekompilowanych plikach binarnych
Samby dla ró¿nych platform.
samba-bugs@samba.org
Na tej liœcie wysy³kowej nale¿y zg³aszaæ zauwa¿one usterki w dzia³aniu Samby.
samba-ntdom@samba.org
Na tej liœcie wysy³kowej znajdziesz informacje o obs³udze domen (zw³aszcza
Windows NT) w Sambie.
samba-technical@samba.org
Na tej liœcie wysy³kowej toczy siê dyskusja o przysz³oœci Samby.
samba@samba.org
Jest to podstawowa lista wysy³kowa, która zawiera ogólne pytania i informacje
HOW-TO („jak to zrobiæ”) dotycz¹ce Samby.

Archiwa list wysy³kowych Samby
Istnieje us³uga wyszukiwawcza dla list wysy³kowych Samby. Kiedy pisaliœmy tê
ksi¹¿kê, mo¿na do niej dotrzeæ przez ³¹cze archives na g³ównej stronie Samby i w witrynach bliŸniaczych lub bezpoœrednio przez adres http://us1.samba.org/search/smb-mail.shtml.

Dalsza lektura
Craig Hunt, TCP/IP – administracja sieci, wyd. 2., Wydawnictwo RM, Warszawa 1998 r.
Craig Hunt i Robert Bruce Thompson, Windows NT TCP/IP Network Administration.
Sebastopol, CA: O'Reilly and Associates, 1998 (ISBN 1-56592-377-4).
Paul Albitz i Cricket Liu, DNS i Bind, Wydawnictwo RM, Warszawa 1999 r.
Hal Stern, Managing NFS and NIS. Sebastopol, CA: O'Reilly and Associates, 1997
(ISBN 0-937175-75-7).

Konfigurowanie Samby
do obs³ugi SSL

A

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

W tym dodatku opisujemy konfigurowanie Samby do obs³ugi bezpiecznych po³¹czeñ miêdzy serwerem i klientami. U¿yjemy w tym celu protoko³u Secure Sockets
Layer (SSL) Netscape'a. Spróbujemy utworzyæ bezpieczne po³¹czenie miêdzy ser werem Samby a stacj¹ robocz¹ Windows NT.
Zanim przyst¹pisz do lektury, powinieneœ zapoznaæ siê z podstawowymi informacjami na temat kryptografii z kluczem publicznym oraz certyfikatów X.509. Jeœli zagadnienia te nie s¹ ci znajome, gor¹co polecamy ksi¹¿kê Bruce'a Schneiera Applied
Cryptography, 2nd Edition (wydawnictwo Wiley), która jest znakomitym Ÿród³em
wiedzy o wielu ma³o znanych aspektach kryptografii.
Jeœli chcia³byœ dowiedzieæ siê wiêcej o SSL w Sambie, przeczytaj dokument SSLeay.txt
w katalogu /docs/textdocs dystrybucji Samby, na podstawie którego napisano ten rozdzia³.

Certyfikaty
Oto kilka pytañ i odpowiedzi wziêtych z pliku SSLeay.txt, wchodz¹cego w sk³ad
dystrybucji Samby, i dotycz¹cych korzyœci p³yn¹cych ze stosowania SSL i certyfikatów. Tekst ten zosta³ napisany przez Christiana Starkjohanna w ramach projektu
Samby.

Co to jest certyfikat?
Certyfikat jest wystawiany przez wydawcê, zwykle przez serwis certyfikacyjny
(Certification Authority, CA), który potwierdza coœ przez wystawienie certyfikatu.
Podmiot tego potwierdzenia jest zale¿ny od polityki wydawcy. Serwisy certyfikacyjne dla bezpiecznych serwerów WWW (u¿ywanych na przyk³ad przez sklepy internetowe) zwykle po prostu zaœwiadczaj¹, ¿e dany klucz publiczny nale¿y do danej
nazwy domenowej. Firmowe serwisy CA mog¹ zaœwiadczaæ, ¿e jesteœ pracownikiem firmy, ¿e masz prawo do korzystania z serwera i tak dalej.

282

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Co to jest certyfikat X.509?
Technicznie rzecz bior¹c, certyfikat to blok danych podpisany przez wydawcê certyfikatu (CA). Sk³ada siê z nastêpuj¹cych pól:
· niepowtarzalny identyfikator (nazwa) wydawcy certyfikatu,
· czas, przez który certyfikat zachowuje wa¿noœæ,
· niepowtarzalny identyfikator (nazwa) potwierdzanego obiektu,
· klucz publiczny potwierdzanego obiektu,
· podpis wydawcy na³o¿ony na wszystkie te dane.
Jeœli certyfikat ma zostaæ zweryfikowany, osoba weryfikuj¹ca musi dysponowaæ tabel¹ z nazwami i kluczami publicznymi zaufanych wydawców. Dla u³atwienia tabele te powinny zawieraæ certyfikaty wydane przez serwisy CA dla samych siebie (certyfikaty podpisywane samodzielnie).

Jakie s¹ implikacje takiej struktury certyfikatu?
Oto cztery zasadnicze implikacje:
· Poniewa¿ certyfikat zawiera klucz publiczny podmiotu, do szyfrowania i deszyfrowania danych wystarczy certyfikat i klucz prywatny.
· Aby zweryfikowaæ certyfikat, potrzebne s¹ certyfikaty wszystkich zaufanych serwisów CA.
· Najprostsz¹ form¹ certyfikatu-atrapy jest taki, który zosta³ podpisany przez podmiot.
· Konieczne jest istnienie CA. Klient nie mo¿e po prostu wystawiaæ lokalnych certyfikatów dla serwerów, którym ufa, poniewa¿ to serwer wybiera prezentowany
przez siebie certyfikat.

Wymagania
Aby korzystaæ z po³¹czeñ SSL, bêdziesz musia³ pobraæ dwa programy oprócz Samby.
SSLeay
Implementacja protoko³u Secure Sockets Layer (SSL) napisana przez Erica Younga w postaci kilku bibliotek uniksowych.
SSL Proxy
Bezp³atna aplikacja SSL napisana przez grupê programistów Objective Development, która dzia³a w Uniksie oraz Windows NT i mo¿e poœredniczyæ w nawi¹zywaniu bezpiecznych po³¹czeñ.
Te dwa produkty dzia³aj¹ po stronie serwera i klienta w zaszyfrowanym po³¹czeniu
SSL. Biblioteki SSLeay kompiluje siê i instaluje bezpoœrednio w systemie uniksowym, natomiast program SSL Proxy mo¿na pobraæ w postaci Ÿród³owej lub binarnej
i zainstalowaæ po stronie klienta. Jeœli po drugiej stronie po³¹czenia SSL ma znajdowaæ siê klient Windows NT lub Samba, nie bêdzie potrzebna specjalna konfiguracja.

Instalowanie pakietu SSLeay

283

Program SSL Proxy nie dzia³a jednak w komputerach Windows 95/98. Jeœli chcesz
zapewniæ bezpieczeñstwo po³¹czeñ miêdzy serwerem Samby a klientami Windows
95/98, musisz umieœciæ serwer uniksowy lub komputer Windows NT w tej samej podsieci co klienty Windows 9x i nawi¹zywaæ wszystkie po³¹czenia sieciowe za poœrednictwem komputera z zainstalowanym programem SSL Proxy (patrz rysunek A.1).

Rysunek A.1. Dwa mo¿liwe sposoby poœredniczenia w po³¹czeniach nawi¹zywanych przez klienty Windows 95/98

W tym rozdziale spróbujemy utworzyæ proste po³¹czenie SSL miêdzy serwerem
Samby a klientem Windows NT. Mo¿na wykorzystaæ tê konfiguracjê do utworzenia
bardziej skomplikowanych sieci, wed³ug uznania administratora.

Instalowanie pakietu SSLeay
Samba korzysta z pakietu SSLeay napisanego przez (Erica Younga), który zapewnia
obs³ugê SSL po stronie serwera. Ze wzglêdu na ograniczenia eksportowe obowi¹zuj¹ce w Stanach Zjednoczonych pakiet SSLeay nie mo¿e byæ do³¹czany do dystrybucji Samby rozpowszechnianych z USA. Z tej przyczyny twórcy Samby zdecydowali, ¿e SSLeay pozostanie odrêbnym pakietem. Mo¿esz pobraæ SSLeay z wymienionych poni¿ej witryn:
· ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL

·
·
·
·

ftp://ftp.uni-mainz.de/pub/internet/security/ssl
ftp://ftp.cert.dfn.de/pub/tools/crypt/sslapps
ftp://ftp.funet.fi/pub/crypt/mirrors/ftp.psy.uq.oz.au
ftp://ftp.sunet.se/ftp/pub/security/tools/crypt/ssleay

284

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Kiedy pisaliœmy tê ksi¹¿kê, najnowsza wersja pakietu mia³a numer 0.9.0b. Pobierz
go do tego serwera, w którym znajduje siê dystrybucja Samby, zdekompresuj i rozpakuj poleceniem tar. Powinieneœ otrzymaæ katalog o nazwie SSLeay-0.9.0b. PrzejdŸ
do tego katalogu i skonfiguruj oraz skompiluj pakiet szyfrowania SSL tak samo, jak
zrobi³eœ to z Samb¹.
SSLeay wykorzystuje skrypt configure napisany w Perlu. Skrypt ten modyfikuje plik
makefile, który tworzy narzêdzia i biblioteki pakietu SSLeay. Domyœlnie skrypt
zak³ada, ¿e interpreter Perla to /usr/local/bin/perl. Byæ mo¿e bêdziesz musia³ zmodyfikowaæ go tak, aby wskazywa³ po³o¿enie pliku wykonywalnego Perla w twoim systemie. Mo¿esz ustaliæ po³o¿enie interpretera Perla za pomoc¹ nastêpuj¹cego polecenia:
# which perl
/usr/bin/perl

Nastêpnie zmodyfikuj pierwsz¹ liniê skryptu configure tak, aby korzysta³ z w³aœciwego pliku wykonywalnego Perla. W naszym systemie Red Hat zrobiliœmy to w ten
sposób:
#!/usr/bin/perl
#
# see PROBLEMS for instructions on what sort of things to do
# when tracking a bug -tjh
...

Nastêpnie musisz uruchomiæ skrypt configure, okreœlaj¹c docelow¹ platformê dla pakietu SSLeay. Oto dostêpne platformy:
BC-16
NetBSD-sparc
VC-NT
VC-WIN32
alpha-gcc
debug
dgux-R4-gcc
hpux-cc
irix-gcc
nextstep
solaris-sparc-gcc
sunos-cc

BC-32
NetBSD-x86
VC-W31-16
aix-cc
alpha400-cc
debug-irix-cc
dgux-R4-x86-gcc
hpux-gcc
linux-aout
purify
solaris-sparc-sc4
sunos-gcc

FreeBSD
SINIX-N
VC-W31-32
aix-gcc
cc
debug-linux-elf
dist
hpux-kr-cc
linux-elf
sco5-cc
solaris-usparc-sc4
unixware-2.0

NetBSD-m86
VC-MSDOS
VC-WIN16
alpha-cc
cray-t90-cc
dgux-R3-gcc
gcc
irix-cc
ncr-scde
solaris-sparc-cc
solaris-x86-gcc
unixware

W naszym systemie wpisalibyœmy nastêpuj¹ce polecenie:
# ./Configure linux-elf
CC
=gcc
CFLAG
=-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer
EX_LIBS
=
BN_MULW
=asm/bn86-elf.o
DES_ENC
=asm/dx86-elf.o asm/yx86-elf.o
BF_ENC
=asm/bx86-elf.o
CAST_ENC
=asm/cx86-elf.o
RC4_ENC
=asm/rx86-elf.o
RC5_ENC
=asm/r586-elf.o
MD5_OBJ_ASM
=asm/mx86-elf.o
SHA1_OBJ_ASM =asm/sx86-elf.o
RMD160_OBJ_ASM=asm/rm86-elf.o
THIRTY_TWO_BIT mode

Instalowanie pakietu SSLeay

285

DES_PTR used
DES_RISC1 used
DES_UNROLL used
BN_LLONG mode
RC4_INDEX mode

Kiedy pakiet zostanie skonfigurowany, mo¿esz skompilowaæ go poleceniem make.
Jeœli kompilacja nie zakoñczy siê sukcesem, zajrzyj do dokumentacji dostarczanej
wraz z dystrybucj¹ lub do dokumentu FAQ pod adresem http://www.cryptsoft.com/ssleay, aby znaleŸæ wiêcej informacji o mo¿liwych przyczynach niepowodzenia. Jeœli
kompilacja powiedzie siê, wpisz make install, aby zainstalowaæ biblioteki w systemie. Domyœlnie plik makefile instaluje pakiet w katalogu /usr/local/ssl. Jeœli zainstalujesz pakiet w innym katalogu, zapamiêtaj jego po³o¿enie, poniewa¿ bêdziesz musia³ je znaæ podczas konfigurowania Samby.

Konfigurowanie pakietu SSLeay
Najpierw musisz ustawiæ zmienn¹ œrodowiskow¹ PATH w twoim systemie tak, aby
zawiera³a katalog /bin dystrybucji SSL. Mo¿na to zrobiæ za pomoc¹ polecenia:
PATH=$PATH:/usr/local/ssl/bin

To ³atwiejsza czêœæ zadania. Teraz bêdziesz musia³ utworzyæ losow¹ seriê znaków,
które pos³u¿¹ do zainicjowania generatora liczb losowych w SSLeay. Generator ten
bêdzie u¿ywany do tworzenia par kluczy dla klientów i serwera. Mo¿esz utworzyæ
losow¹ seriê, wype³niaj¹c plik tekstowy d³ugim ci¹giem dowolnych znaków. W tym
celu mo¿esz skorzystaæ z edytora tekstów albo wydaæ poni¿sze polecenie i wpisaæ
losowe znaki na standardowym wejœciu:
# cat & gt; /tmp/prywatne.txt

Dokumentacja Samby zaleca, aby pisaæ d³u¿ej ni¿ minutê przed zamkniêciem strumienia wejœciowego sekwencj¹ [Ctrl+D]. Nie wpisuj samych znaków alfabetycznych, dorzuæ tak¿e trochê symboli i cyfr. Kiedy utworzysz losowy plik, mo¿esz zainicjowaæ generator liczb losowych za pomoc¹ polecenia:
# ssleay genrsa -rand /tmp/prywatne.txt & gt; /dev/null
2451 semi-random bytes loaded
Generating RSA private key. 512 bit long modulus
..+++++
.................................+++++
e is 65537 (0x10001)

Mo¿esz zignorowaæ wyniki tego polecenia. Kiedy zakoñczy ono pracê, usuñ ci¹g
znaków u¿yty do utworzenia klucza, poniewa¿ móg³by on zostaæ wykorzystany do
odtworzenia kluczy prywatnych utworzonych za pomoc¹ generatora liczb losowych:
# rm -f /tmp/prywatne.txt

W wyniku dzia³ania tego polecenia otrzymasz ukryty plik .rnd, który jest zapisany
w twoim katalogu macierzystym. SSLeay bêdzie korzysta³ z tego pliku podczas tworzenia par kluczy.

286

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Konfigurowanie Samby do korzystania z SSL
W tym momencie mo¿esz skompilowaæ Sambê z do³¹czon¹ obs³ug¹ SSL. Jak pamiêtasz z rozdzia³u 2, Instalowanie Samby w Uniksie, przed kompilacj¹ Samby musisz
uruchomiæ skrypt configure, który inicjuje plik makefile. Aby Samba mog³a korzystaæ
z SSL, musisz zrekonfigurowaæ plik makefile:
# ./configure --with-ssl

Nastêpnie mo¿esz skompilowaæ Sambê za pomoc¹ nastêpuj¹cych poleceñ:
# make clean
# make all

Jeœli otrzymasz komunikat o b³êdzie, który poinformuje ciê, ¿e nie mo¿na utworzyæ
pliku wykonywalnego smbd ze wzglêdu na brak pliku ssl.h, prawdopodobnie oznacza to, ¿e nie zainstalowa³eœ SSLeay w domyœlnym katalogu. U¿yj opcji konfiguracyjnej --with-sslinc, aby wskazaæ podstawowy katalog dystrybucji – w tym
przypadku katalog, który zawiera plik include/ssl.h.
Jeœli zaœ kompilacja przebiegnie prawid³owo, mo¿esz przejœæ do nastêpnego etapu:
tworzenia certyfikatów.

W³asny serwis certyfikacyjny
Protokó³ SSL wymaga u¿ycia certyfikatów X.509 w fazie negocjacji po³¹czenia. Pozwalaj¹ one stwierdziæ, ¿e jedna b¹dŸ obie strony zaanga¿owane w komunikacjê
rzeczywiœcie s¹ tym, za kogo siê podaj¹. Rzeczywiste certyfikaty, na przyk³ad te
u¿ywane w po³¹czeniach SSL przez publiczne serwery WWW, kosztuj¹ oko³o 300
dolarów rocznie. Dzieje siê tak dlatego, ¿e certyfikat musi byæ oznaczony cyfrowym
podpisem serwisu certyfikacyjnego. Serwis certyfikacyjny to jednostka, która gwarantuje autentycznoœæ cyfrowego certyfikatu, podpisuj¹c go w³asnym kluczem prywatnym. W ten sposób ka¿dy, kto chce potwierdziæ autentycznoœæ certyfikatu, mo¿e po
prostu u¿yæ publicznego klucza serwisu certyfikacyjnego, aby sprawdziæ podpis.
Pakiet SSLeay pozwala na wykorzystanie publicznych serwisów certyfikacyjnych.
Nie musisz jednak tego robiæ. Zamiast tego mo¿esz zadeklarowaæ w³asny serwer
jako serwis certyfikacyjny – okreœliæ, którym klientom ufasz, a którym nie. W tym
celu bêdziesz musia³ wykonaæ kilka czynnoœci, aby odpowiednio skonfigurowaæ pakiet SSLeay.
Najpierw musisz okreœliæ bezpieczn¹ lokacjê, w której bêd¹ przechowywane certyfikaty klientów i ewentualnie serwera. My wybraliœmy domyœlny katalog /etc/certificates. Wykonaj poni¿sze polecenia jako root:
# cd /etc
# mkdir certificates
# chmod 700 certificates

Zauwa¿, ¿e wszyscy u¿ytkownicy z wyj¹tkiem roota nie maj¹ ¿adnych praw dostêpu do tego katalogu. Jest to bardzo istotne.
Teraz musisz skonfigurowaæ skrypty i pliki konfiguracyjne SSLeay tak, aby korzysta³y z plików przechowywanych w tym katalogu. W tym celu zmodyfikuj skrypt

Instalowanie pakietu SSLeay

287

CA.sh (/usr/local/ssl/bin/CA.sh) tak, aby okreœla³ po³o¿enie w³aœnie utworzonego katalogu. ZnajdŸ liniê, która zawiera nastêpuj¹cy wpis:
CATOP=./demoCA

Nastêpnie zmieñ j¹ na:
CATOP=/etc/certificates

Teraz bêdziesz musia³ zmodyfikowaæ plik /usr/local/ssl/lib/ssleay.cnf tak, aby wskazywa³ ten sam katalog. ZnajdŸ wpis:
[ CA_default ]
dir
= ./demoCA

# Where everything is kept

Nastêpnie zmieñ go na:
[ CA_default ]
dir
= /etc/certificates

# Where everything is kept

Nastêpnie uruchom skrypt inicjacyjny serwisu certyfikacyjnego, CA.sh, aby utwo rzyæ certyfikaty. Zrób to z tego samego konta u¿ytkownika, z którego inicjowa³eœ generator liczb losowych:
# /usr/local/ssl/bin/CA.sh -newca
mkdir: cannot make directory '/etc/certificates': File exists
CA certificate filename (or enter to create)

Naciœnij klawisz [Enter], aby utworzyæ certyfikat dla serwisu CA. Powinieneœ zobaczyæ nastêpuj¹ce komunikaty:
Making CA certificate ...
Using configuration from /usr/local/ssl/lib/ssleay.cnf
Generating a 1024 bit RSA private key
.............................+++++
.........................+++++
writing new private key to /etc/certificates/private/cakey.pem
Enter PEM pass phrase:

Wpisz nowe has³o dla certyfikatu. Bêdziesz musia³ zrobiæ to dwukrotnie, zanim
SSLeay je zaakceptuje:
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:

Zapamiêtaj wpisane has³o. Bêdzie ono potrzebne w przysz³oœci do podpisywania
certyfikatów klientów. Kiedy SSLeay zaakceptuje has³o, bêdziesz musia³ odpowiedzieæ na kilka pytañ dotycz¹cych ró¿nych pól certyfikatu X.509:
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

Wype³nij resztê pól informacjami o swojej organizacji. Nasz przyk³adowy certyfikat
wygl¹da nastêpuj¹co:

288

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
Locality Name (eg, city) []:Sebastopol
Organization Name (eg, company) []:O'Reilly
Organizational Unit Name (eg, section) []:Books
Common Name (eg, YOUR name) []:John Doe
Email Address []:doe@ora.com

Teraz pakiet SSLeay jest skonfigurowany jako serwis certyfikacyjny i bêdzie móg³
podpisywaæ certyfikaty dla klientów ³¹cz¹cych siê z serwerem Samby.

Tworzenie certyfikatów dla klientów
Tworzenie certyfikatu dla klienta jest bardzo proste. Najpierw musisz wygenerowaæ
parê kluczy publiczny/prywatny dla ka¿dej jednostki, utworzyæ plik wniosku o certyfikat, a nastêpnie podpisaæ ten plik jako zaufany serwis certyfikacyjny.
Dla naszego przyk³adowego klienta o nazwie feniks sprowadza siê to do wydania
trzech poleceñ SSLeay. Pierwsze generuje parê kluczy dla klienta i umieszcza je
w pliku feniks.key. Prywatny klucz bêdzie zaszyfrowany, w tym przypadku potrójnym algorytmem DES. Wpisz has³o, kiedy zostaniesz o to poproszony – bêdzie ci
ono potrzebne w nastêpnym etapie:
# ssleay genrsa -des3 1024 & gt; feniks.key
1112 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
........................................+++++
.............+++++
e is 65537 (0x10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:

Kiedy to polecenie zakoñczy dzia³anie, wpisz poni¿sze polecenie:
# ssleay req -new -key feniks.key -out feniks-csr
Enter PEM pass phrase:

Wpisz has³o dla w³aœnie utworzonego certyfikatu klienta (nie dla serwisu certyfikacyjnego). W tym momencie bêdziesz musia³ jeszcze raz wype³niæ kwestionariusz,
tym razem dla klienta. Dodatkowo bêdziesz musia³ wpisaæ has³o wyzwania oraz
opcjonaln¹ nazwê firmy – te dane nie maj¹ dla nas znaczenia. Kiedy polecenie zakoñczy dzia³anie, otrzymasz wniosek o wystawienie certyfikatu w pliku feniks-csr.
Nastêpnie musisz podpisaæ wniosek jako zaufany serwis certyfikacyjny. Wpisz poni¿sze polecenie:
# ssleay ca -days 1000 -inflies feniks-csr & gt; feniks.pem

Polecenie to poprosi ciê o wprowadzenie has³a PEM dla serwisu certyfikacyjnego. Nie
wpisuj tu has³a dla w³aœnie utworzonego certyfikatu klienta. Kiedy wpiszesz po prawne has³o, powinieneœ zobaczyæ nastêpuj¹ce wyniki:
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows:



Tworzenie certyfikatów dla klientów

289

Po tym nast¹pi¹ dane wprowadzone przed chwil¹ podczas tworzenia certyfikatu
klienta. Jeœli któreœ z pól jest b³êdne, program powiadomi o tym. Jeœli zaœ wszystko
przebiegnie bezb³êdnie, SSLeay potwierdzi, ¿e certyfikat zosta³ podpisany i wprowadzony do bazy danych. Rekord certyfikatu zostanie dodany do katalogu /etc/certificates/newcerts.
Pod koniec tego æwiczenia powinieneœ otrzymaæ pliki feniks.key i feniks.pem, zapisane
w bie¿¹cym katalogu. Pliki te zostan¹ przes³ane do klienta, z którym bêdzie wspó³pracowa³ serwer Samby, i bêd¹ u¿ywane przez program SSL Proxy.

Konfigurowanie serwera Samby
Nastêpnym etapem bêdzie dopisanie poni¿szych opcji do pliku konfiguracyjnego
Samby. Zak³adamy, ¿e utworzy³eœ katalog certyfikatów dla serwisu certyfikacyjnego, /etc/certificates:
[global]
ssl = yes
ssl server cert = /etc/certificates/cacert.pem
ssl server key = /etc/certificates/private/cakey.pem
ssl CA certDir = /etc/certificates

W tym momencie bêdziesz musia³ przerwaæ dzia³anie demonów Samby i uruchomiæ
je ponownie:
# nmbd -D
# smbd -D
Enter PEM pass phrase:

Bêdziesz musia³ wpisaæ has³o PEM serwisu certyfikacyjnego, aby uruchomiæ demony Samby. Zauwa¿, ¿e mo¿e to stanowiæ pewien problem w normalnym uruchamianiu demonów. Mo¿na jednak siê z tym uporaæ za pomoc¹ zaawansowanych jêzyków skryptowych, takich jak Expect lub Python.

Testowanie konfiguracji za pomoc¹ programu smbclient
Dobrym sposobem na sprawdzenie, czy Samba dzia³a prawid³owo, jest u¿ycie programu smbclient. W serwerze Samby wprowadŸ poni¿sze polecenie, podstawiaj¹c
odpowiedni¹ nazwê udzia³u i u¿ytkownika:
# smbclient //hydra/dane -U tomek

Powinieneœ zobaczyæ kilka komunikatów diagnostycznych, po których wyœwietlona zostanie linia z wynegocjowanym szyfrem, na przyk³ad:
SSL: negotiated cipher: DES-CBC3-SHA

Nastêpnie mo¿esz wprowadziæ swoje has³o i normalnie po³¹czyæ siê z udzia³em. Jeœli to zadzia³a, mo¿esz byæ pewien, ¿e Samba poprawnie obs³uguje po³¹czenia SSL.
Teraz pora na skonfigurowanie klienta.

290

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Konfigurowanie SSL Proxy
Program SSL Proxy jest dostêpny w postaci binarnej i Ÿród³owej. Mo¿esz pobraæ go
pod adresem http://obdev.at/Products/sslproxy.html.
Po pobraniu kodu Ÿród³owego mo¿esz skonfigurowaæ go i skompilowaæ tak jak Sambê. W poni¿szym przyk³adzie skonfigurujemy go w Windows NT, jednak¿e instalowanie SSL Proxy w Uniksie przebiega niemal identycznie. Aby wykonaæ opisane ni¿ej
czynnoœci, musisz byæ u¿ytkownikiem uprzywilejowanym (administratorem).
Jeœli pobra³eœ wersjê binarn¹ dla Windows NT, w katalogu powinny znajdowaæ siê
nastêpuj¹ce pliki:
· cygwinb19.dll,
· README.TXT,
· sslproxy.exe,
· dummyCert.pem.
Spoœród nich bêdzie nam potrzebny wy³¹cznie plik wykonywalny programu SSL
Proxy. Skopiuj utworzone wczeœniej pliki feniks.pem i feniks.key do katalogu, w którym znajduje siê plik wykonywalny SSL Proxy. Upewnij siê, ¿e katalog jest zabezpieczony przed ciekawskimi u¿ytkownikami.
Nastêpnie musisz sprawdziæ, czy komputer Windows NT mo¿e odwzorowaæ NetBIOS-ow¹ nazwê serwera Samby. Oznacza to, ¿e w sieci powinien znajdowaæ siê
dzia³aj¹cy serwer WINS (Samba mo¿e spe³niaæ tê funkcjê z opcj¹ wins support =
yes), albo serwer Samby powinien byæ wymieniony w systemowym pliku hostów.
Wiêcej informacji o serwerze WINS znajdziesz w rozdziale 7, Drukowanie i odwzorowywanie nazw*.
Teraz uruchom SSL Proxy za pomoc¹ poni¿szego polecenia. Zak³adamy tu, ¿e serwer Samby nosi nazwê hydra:
# C:\SSLProxy & gt; sslproxy -l 139 -R hydra -r 139 -n -c feniks.pem -k feniks.key

Polecenie to informuje program SSL Proxy, ¿e nale¿y oczekiwaæ na po³¹czenia z portem 139 i kierowaæ je do portu 139 w komputerze o NetBIOS-owej nazwie hydra
oraz ¿e nale¿y u¿yæ plików feniks.pem i feniks.key do wygenerowania certyfikatów
i kluczy potrzebnych do zainicjowania po³¹czenia SSL. SSL Proxy odpowie komunikatem:
Enter PEM pass phrase:

WprowadŸ has³o PEM dla pary kluczy klienta, nie dla serwisu certyfikacyjnego. Powinieneœ zobaczyæ nastêpuj¹ce komunikaty:
SSL: No verify locations, trying default
proxy ready, listening for connections

* Jeœli program SSL Proxy dzia³a w serwerze uniksowym, powinieneœ upewniæ siê, ¿e mo¿liwe jest od wzorowanie nazwy domenowej serwera Samby.

Opcje konfiguracji SSL

291

To powinno za³atwiæ sprawê w kliencie. Mo¿esz umieœciæ powy¿sze polecenie w sekwencji startowej Uniksa lub Windows NT, jeœli chcesz zapewniæ ci¹g³oœæ us³ug SSL.
Upewnij siê, ¿e wszystkie klienty ³¹cz¹ce siê z serwerem NT (w³¹czaj¹c w to sam serwer NT) wskazuj¹ na ten serwer, a nie na serwer Samby.
Kiedy wykonasz powy¿sze czynnoœci, spróbuj po³¹czyæ klienta i serwer Samby za
poœrednictwem serwera NT. Powinno to dzia³aæ w sposób niewidoczny dla u¿yt kownika.

Opcje konfiguracji SSL
W tabeli A.1 zebrano opcje konfiguracyjne opisane w poprzednich podrozdzia³ach
i zwi¹zane z obs³ug¹ SSL. Zauwa¿, ¿e wszystkie te opcje maj¹ zasiêg globalny; innymi s³owy, musz¹ wystêpowaæ w sekcji [global] pliku konfiguracyjnego.
Tabela A.1. Opcje konfiguracji SSL
Opcja
Parametry Funkcja
ssl
ssl hosts

ssl hosts
resign
ssl CA
certDir
ssl CA
certFile

ssl server
cert

ssl server
key

ssl client
cert

WartoϾ
logiczna
£añcuch
(lista
adresów)
£añcuch
(lista
adresów)
£añcuch
(pe³na
œcie¿ka)
£añcuch
(nazwa
wraz ze
œcie¿k¹)
£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)
£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)
£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)

WartoϾ
domyœlna

Zasiêg

Okreœla, czy Samba pracuje w trybie no
SSL
Okreœla listê hostów, które musz¹ siê Brak
³¹czyæ za pomoc¹ SSL

Globalny

Okreœla listê hostów, które nigdy nie Brak
³¹cz¹ siê za pomoc¹ SSL

Globalny

Okreœla katalog, w którym przechowywane s¹ certyfikaty

Brak

Globalny

Okreœla plik, w którym przechowywane s¹ wszystkie
certyfikaty Samby

Brak

Globalny

Okreœla po³o¿enie certyfikatu
serwera

Brak

Globalny

Okreœla po³o¿enie prywatnego
klucza serwera

Brak

Globalny

Okreœla po³o¿enie certyfikatu
klienta

Brak

Globalny

Globalny

Dokoñczenie tabeli na str. 292

292

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

Dokoñczenie tabeli ze str. 291
Tabela A.1. Opcje konfiguracji SSL
Opcja

Parametry Funkcja

ssl client
key

£añcuch
(pe³na
nazwa
wraz ze
œcie¿k¹)
WartoϾ
logiczna

ssl require
clientcert
ssl require
servercert
ssl ciphers
ssl version

ssl
compatibility

Okreœla po³o¿enie prywatnego
klucza klienta

Okreœla, czy Samba powinna
wymagaæ certyfikatów od
wszystkich klientów
WartoϾ
Okreœla, czy sam serwer powinien
logiczna
mieæ certyfikat
£añcuch
Okreœla zbiór szyfrów u¿ywany
podczas negocjacji protoko³u
ssl2or3, Okreœla u¿ywan¹ wersjê SSL
ssl3
lub tls1
WartoϾ
Okreœla, czy nale¿y w³¹czyæ tryb
logiczna
zgodnoœci z innymi implementacjami
SSL

WartoϾ
domyœlna

Zasiêg

Brak

Globalny

no

Globalny

no

Globalny

Brak

Globalny

ssl2or3

Globalny

no

Globalny

ssl
Ta opcja globalna konfiguruje Sambê do u¿ycia SSL w komunikacji z klientami. Jej
domyœlna wartoœæ to no. Mo¿esz zmieniæ j¹ w nastêpuj¹cy sposób:
[global]
ssl = yes

Aby skorzystaæ z tej opcji, potrzebujesz poœrednika dla klientów Windows 95/98, co
opisano wczeœniej w tym rozdziale.
ssl hosts
Ta opcja okreœla hosty, które bêd¹ musia³y u¿ywaæ SSL. Sk³adnia u¿ywana do okreœlania hostów i adresów jest taka sama jak w opcjach hosts allow i hosts deny.
Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.

W tym przyk³adzie okreœlamy, ¿e wszystkie hosty z podsieci 192.168.220 musz¹
u¿ywaæ po³¹czeñ SSL. Taki model jest u¿yteczny, jeœli wiesz, ¿e niektóre po³¹czenia
bêd¹ pochodziæ z podsieci oddzielonej sieci¹ niegodn¹ zaufania, na przyk³ad Internetem. Jeœli nie podasz ani tej opcji, ani opcji ssl hosts resign, a opcja ssl jest
ustawiona na yes, Samba bêdzie akceptowaæ tylko po³¹czenia SSL od wszystkich
klientów.

Opcje konfiguracji SSL

293

ssl hosts resign
Ta opcja okreœla hosty, które nie bêd¹ musia³y u¿ywaæ SSL. Sk³adnia u¿ywana do
okreœlania hostów i adresów jest taka sama jak w opcjach hosts allow i hosts
deny. Na przyk³ad:
[global]
ssl = yes
ssl hosts resign = 160.2.310. 160.2.320.

W tym przyk³adzie okreœlamy, ¿e hosty z podsieci 160.2.310 i 160.2.320 nie bêd¹ u¿ywa³y po³¹czeñ SSL. Jeœli nie podasz ani tej opcji, ani opcji ssl hosts, a opcja ssl
jest ustawiona na yes, Samba bêdzie akceptowaæ tylko po³¹czenia SSL od wszystkich klientów.
ssl CA certDir
Ta opcja okreœla po³o¿enie katalogu z certyfikatami serwisu certyfikacyjnego, których
Samba bêdzie u¿ywa³a do uwierzytelniania klientów. W katalogu tym musi znajdowaæ
siê jeden plik dla ka¿dego serwisu certyfikacyjnego, nazwany tak, jak opisano wczeœniej
w tym rozdziale. Wszystkie inne pliki w tym katalogu s¹ ignorowane. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certDir = /usr/local/samba/cert

Opcja ta nie ma wartoœci domyœlnej. Mo¿esz zamiast niej u¿yæ opcji ssl CA certFile, jeœli chcesz umieœciæ wszystkie dane certyfikacyjne w jednym pliku.
ssl CA certFile
Ta opcja okreœla po³o¿enie pliku z certyfikatami serwisu certyfikacyjnego, których
Samba bêdzie u¿ywa³a do uwierzytelniania klientów. Ró¿ni siê od opcji ssl CA
certDir tym, ¿e dane wszystkich serwisów certyfikacyjnych s¹ przechowywane
w jednym pliku. Oto przyk³ad u¿ycia tej opcji:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile

Opcja ta nie ma wartoœci domyœlnej. Mo¿esz zamiast niej u¿yæ opcji ssl CA certDir,
jeœli wolisz przechowywaæ oddzielne pliki dla ka¿dego serwisu certyfikacyjnego.
ssl server cert
Ta opcja okreœla po³o¿enie certyfikatu serwera. Jest obowi¹zkowa; serwer musi mieæ
certyfikat, aby móg³ u¿ywaæ SSL. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl server cert = /usr/local/samba/private/server.pem

Opcja ta nie ma wartoœci domyœlnej. Zauwa¿, ¿e certyfikat mo¿e zawieraæ prywatny
klucz serwera.

294

Dodatek A: Konfigurowanie Samby do obs³ugi SSL

ssl server key
Ta opcja okreœla po³o¿enie prywatnego klucza serwera. Powinieneœ upewniæ siê, ¿e
do tego pliku nie ma dostêpu nikt z wyj¹tkiem roota. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl server key = /usr/local/samba/private/samba.pem

Opcja ta nie ma wartoœci domyœlnej. Zauwa¿, ¿e certyfikat serwera mo¿e zawieraæ
jego prywatny klucz.
ssl client cert
Ta opcja okreœla po³o¿enie certyfikatu klienta. Samba mo¿e za¿¹daæ certyfikatu za
pomoc¹ opcji ssl require clientcert; certyfikat jest wykorzystywany tak¿e
przez program smbclient. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl server cert = /usr/local/ssl/private/serwer.pem
ssl client cert = /usr/local/ssl/private/klient.pem

Opcja ta nie ma wartoœci domyœlnej.
ssl client key
Ta opcja okreœla po³o¿enie prywatnego klucza klienta. Powinieneœ upewniæ siê, ¿e
do tego pliku nie ma dostêpu nikt z wyj¹tkiem roota. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl server key = /usr/local/ssl/private/samba.pem
ssl client key = /usr/local/ssl/private/klienty.pem

Opcja ta nie wartoœci domyœlnej. Jest potrzebna tylko wtedy, gdy klient ma certyfikat.
ssl require clientcert
Ta opcja okreœla, czy klient musi mieæ certyfikat. Jeœli jest w³¹czona, Samba bêdzie
przeszukiwaæ pliki okreœlone opcjami ssl CA certDir lub ssl CA certFile,
aby potwierdziæ, ¿e klient ma wa¿ny certyfikat i jest uprawniony do ³¹czenia siê
z serwerem Samby. Opcja ta przyjmuje wartoœci logiczne. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl require clientcert = yes

Powinieneœ wymagaæ certyfikatów od wszystkich klientów, które bêd¹ siê ³¹czyæ
z serwerem Samby. Domyœlna wartoœæ tej opcji to no.

Opcje konfiguracji SSL

295

ssl require servercert
Opcja ta okreœla, czy serwer musi mieæ certyfikat i jest u¿ywana przez program smbclient.
Opcja ta przyjmuje wartoœci logiczne. Na przyk³ad:
[global]
ssl = yes
ssl hosts = 192.168.220.
ssl CA certFile = /usr/local/samba/cert/certFile
ssl require clientcert = yes
ssl require servercert = yes

Choæ nale¿y wymagaæ certyfikatów od wszystkich klientów ³¹cz¹cych siê z serwerem Samby, certyfikat dla serwera nie jest niezbêdny. Zalecamy jednak jego stosowanie. Domyœlna wartoœæ tej opcji to no.
ssl ciphers
Ta opcja okreœla szyfry, które Samba ustali w fazie negocjacji po³¹czenia SSL. Samba
mo¿e korzystaæ z nastêpuj¹cych szyfrów:
DEFAULT
DES-CFB-M1
NULL-MD5
RC4-MD5
EXP-RC4-MD5
RC2-CBC-MD5
EXP-RC2-CBC-MD5
IDEA-CBC-MD5
DES-CBC-MD5
DES-CBC-SHA
DES-CBC3-MD5
DES-CBC3-SHA
RC4-64-MD5
NULL

Nie powinieneœ zmieniaæ tej opcji, chyba ¿e dobrze znasz protokó³ SSL i chcesz wymusiæ u¿ycie okreœlonego zbioru szyfrów.
ssl version
Ta globalna opcja okreœla wersjê SSL, której Samba bêdzie u¿ywaæ podczas obs³ugi
zaszyfrowanych po³¹czeñ. Jej domyœlna wartoœæ to ssl2or3, co oznacza, ¿e mo¿na
u¿yæ wersji 2 lub 3 protoko³u SSL, w zale¿noœci od wyniku negocjacji miêdzy serwerem i klientem. Jeœli jednak chcesz, aby Samba u¿ywa³a konkretnej wersji protoko³u,
mo¿esz u¿yæ nastêpuj¹cej opcji:
[global]
ssl version = ssl3

Nie powinieneœ zmieniaæ tej opcji, chyba ¿e dobrze znasz protokó³ SSL i chcesz wymusiæ u¿ycie okreœlonej wersji.
ssl compatibility
Ta globalna opcja okreœla, czy Samba powinna korzystaæ z innych wersji SSL. Gdy
pisaliœmy tê ksi¹¿kê, nie istnia³y jednak ¿adne inne wersje SSL, wiêc opcja ta chwilowo nie ma zastosowania i powinna zawsze mieæ wartoœæ domyœln¹.

Optymalizowanie
wydajnoœci Samby

B

Dodatek B: Optymalizowanie wydajnoœci Samby

W tym dodatku omówimy ró¿ne sposoby optymalizowania wydajnoœci Samby
i skalowania systemu. Optymalizowanie wydajnoœci to sztuka wykrywania „w¹skich
garde³” i ich eliminowania. Skalowanie to nieco odmienne podejœcie do problemu
w¹skich garde³, polegaj¹ce na wydaniu takiej iloœci pieniêdzy, aby takowe w ogóle
nie powsta³y. Zwykle nie musisz przejmowaæ siê ani jednym, ani drugim. Zupe³nie
niezoptymalizowany serwer Samby bez problemu obs³u¿y niewielk¹ grupê u¿yt kowników. Jeœli jednak serwer jest odpowiednio dostrojony, bêdzie móg³ s³u¿yæ
grupie przynajmniej dwa razy wiêkszej. Niniejszy rozdzia³ jest poœwiêcony ró¿nym
technikom optymalizowania wydajnoœci i skalowania, które mog¹ okazaæ siê przydatne, jeœli chcesz uzyskaæ maksymaln¹ wydajnoœæ serwera Samby.

Przyk³adowy pomiar wydajnoœci
Sk¹d mo¿esz wiedzieæ, czy osi¹gasz rozs¹dn¹ wydajnoœæ? Najproœciej bêdzie po równaæ Sambê z FTP. W tabeli B.1 przedstawiamy przepustowoœæ dwóch serwerów:
œrednio wydajnego serwera Sun SPARC Ultra i niewielkiego serwera Pentium
z Linuksem. Wyniki s¹ podane w kilobajtach na sekundê (KB/s).
Tabela B.1. Przyk³adowy pomiar wydajnoœci
Polecenie

FTP

Samba
niezoptymalizowana

Samba
zoptymalizowana

Sparc get
Sparc put
Pentium get
Pentium put

1014,5
379,8
973,27
1014,5

645,3
386,1
N/D
N/D

866,7
329,5
725
1100

Jeœli przeprowadzisz taki test na w³asnym serwerze, prawdopodobnie uzyskasz
inne wyniki. Powinieneœ jednak otrzymaæ podobny stosunek przepustowoœci Samby do FTP, zwykle w zakresie od 68 do 80 procent. FTP nie powinno byæ jedynym
miernikiem wydajnoœci Samby, ale zapamiêtaj ogóln¹ zasadê: jeœli Samba jest du¿o
wolniejsza od FTP, nale¿y j¹ dostroiæ.

298

Dodatek B: Optymalizowanie wydajnoœci Samby

Byæ mo¿e s¹dzisz, ¿e równie dobrze mo¿na porównaæ Sambê z NFS. W rzeczywistoœci jednak porównywanie ich prêdkoœci jest du¿o mniej u¿yteczne. W zale¿noœci od
u¿ywanej wersji NFS i poziomu optymalizacji, Samba mo¿e byæ wolniejsza lub szybsza od NFS. Zwykle Samba okazuje siê szybsza, ale nale¿y tu zachowaæ ostro¿noœæ:
NFS korzysta z zupe³nie innego algorytmu ni¿ Samba, wiêc parametry optymalne
dla NFS mog¹ okazaæ siê szkodliwe dla Samby. Jeœli uruchomisz Sambê na dobrze
dostrojonym serwerze NFS, jej wydajnoœæ mo¿e pozostawiaæ wiele do ¿yczenia.
Jednym z popularnych testów wydajnoœci jest NetBench Ziffa-Davisa, symulacja
wielu u¿ytkowników pracuj¹cych w edytorach tekstów i korzystaj¹cych z danych
serwera SMB. Pomiar ten nie jest doskona³y (ka¿dy klient programu NetBench wykonuje dziesiêciokrotnie wiêcej pracy, ni¿ przeciêtny u¿ytkownik w naszej sieci), ale
umo¿liwia sprawiedliwe porównanie podobnych serwerów. W testach przeprowadzonych przez Jeremy'ego Allisona w listopadzie 1998 roku Samba 2.0 zainstalowana w wieloprocesorowym komputerze SGI przewy¿szy³a wydajnoœci¹ serwer NT
4.0 (SP 2) zainstalowany w równowa¿nym serwerze Compaqa. Wyniki te zosta³y potwierdzone przez test Linuksa i NT na identycznym sprzêcie, przeprowadzony
przez Sm@rt Reseller w lutym w 1999 roku.
W kwietniu 1999 roku laboratorium testowe Mindcraft opublikowa³o raport z testu,
który wykaza³, ¿e Linux zainstalowany w czteroprocesorowym komputerze by³
znacznie wolniejszy w serwowaniu plików ni¿ Windows NT dzia³aj¹cy na tym samym sprzêcie. Pierwotny raport zosta³ zdyskredytowany przez spo³ecznoœæ Open
Source, poniewa¿ by³ zamówiony przez Microsoft, a system zoptymalizowano na
korzyœæ Windows NT, ale nastêpny test by³ sprawiedliwszy i wykaza³ pewne obszary, w których Linux powinien nieco polepszyæ swoj¹ wydajnoœæ, zw³aszcza w komputerach wieloprocesorowych. Niewiele powiedziano w nim o samej Sambie. Wiadomo, ¿e Samba dobrze siê skaluje w takich komputerach i w czteroprocesorowym
serwerze SGI O200 osi¹ga przepustowoœæ ponad 440 MB/s, czyli znacznie wiêksz¹
ni¿ 310 MB/s z testów Mindcraftu.
Oczywiœcie, stosunek wydajnoœci mo¿e siê zmieniæ wraz ze wzrostem prêdkoœci
Windows NT i sprzêtu PC, ale Samba równie¿ siê rozwija. Na przyk³ad wersja 1.9.18
Samby by³a szybsza od NT tylko podczas obs³ugi wiêcej ni¿ 35 klientów, a Samba 2.0
jest szybsza niezale¿nie od liczby klientów. Podsumowuj¹c, Samba stanowi powa¿n¹ konkurencjê dla najlepszego komercyjnego oprogramowania sieciowego i wci¹¿
jest ulepszana.
Kiedy oddawaliœmy tê ksi¹¿kê do druku, Andrew Tridgell udostêpni³ wersjê alfa
pakietu programów testowych dla Samby i sieci SMB. Zespó³ twórców Samby nie
zamierza rezygnowaæ z dalszego poprawiania wydajnoœci programu.

Optymalizowanie Samby
Po tym wstêpie zastanówmy siê, jak mo¿na przyspieszyæ i tak bardzo szybki pakiet
sieciowy.

Optymalizowanie Samby

299

Pomiary
Mierzenie wydajnoœci to sztuka tajemna i granicz¹ca z czarn¹ magi¹, ale poziom
umiejêtnoœci niezbêdny do prostej optymalizacji systemu nie jest a¿ tak wysoki. Poniewa¿ zasadniczym przeznaczeniem Samby jest transmisja plików, pod mikroskop
weŸmiemy tylko przepustowoœæ, a nie czasy odpowiedzi na ró¿ne zdarzenia. Poza
tym, doœæ ³atwo jest zmierzyæ prêdkoœæ transmisji plików, a Samba nie cierpi na problemy z czasem odpowiedzi, które wymaga³aby u¿ycia bardziej zaawansowanych
technik pomiarowych.
Nasza strategia przedstawia siê nastêpuj¹co:
· ZnaleŸæ plik do skopiowania, który bêdzie mia³ rozs¹dn¹ wielkoœæ, oraz program
informuj¹cy o czasie kopiowania, taki jak smbclient.
· Przeprowadziæ test w „cichym” (lub typowym) okresie.
· Wykonaæ test kilkakrotnie przed przeprowadzeniem w³aœciwego pomiaru, aby
wstêpnie za³adowaæ bufory.
· Przeprowadziæ testy kilka razy i sprawdziæ, czy nie daj¹ nieoczekiwanych wyników.
· Zanotowaæ szczegó³owo wyniki ka¿dego testu.
· Porównaæ œredni wynik testów z oczekiwanym rezultatem.
Wyznaczywszy w ten sposób ogólne ramy eksperymentu, mo¿emy zmieniaæ pojedyncze parametry i ponownie wykonywaæ pomiary. Na koñcu rozdzia³u zamieœciliœmy tabelê, do której mo¿esz wpisywaæ wyniki w³asnych testów.

Co mo¿na zmieniaæ?
W poszukiwaniu doskona³ego serwera Samby mo¿esz wypróbowaæ dos³ownie tysi¹ce kombinacji ró¿nych parametrów. Jeœli jednak administrowanie systemem nie
jest ca³ym twoim ¿yciem, mo¿esz ograniczyæ siê do modyfikowania opcji opisanych
w tym rozdziale, poniewa¿ ogólna przepustowoœæ zale¿y g³ównie od nich. Przedstawione poni¿ej opcje s¹ uporz¹dkowane wed³ug wp³ywu na wydajnoœæ Samby.
Poziom rejestrowania
Tutaj sprawa jest oczywista. Zwiêkszenie poziomu rejestrowania (opcje konfiguracyjne log level lub debug level) jest doskona³¹ metod¹ diagnozowania problemów, ale nie problemów z wydajnoœci¹! Jak wspomniano w rozdziale 4, Udzia³y dyskowe, na poziomie rejestrowania 3 i wy¿szych Samba produkuje ogromne iloœci komunikatów diagnostycznych, a zapisywanie ich na dysku lub w dzienniku systemowym jest woln¹ operacj¹. W naszych testach smbclient/ftp podniesienie poziomu
rejestrowania z 0 na 3 zmniejszy³o prêdkoœæ niezoptymalizowanej operacji pobierania pliku z 645,3 do 622,2 KB/s, czyli o niespe³na 5 procent. Wy¿sze poziomy rejestrowania by³y jeszcze gorsze.

300

Dodatek B: Optymalizowanie wydajnoœci Samby

Opcje gniazd
Nastêpnym podejrzanym s¹ opcje konfiguracyjne socket options. S¹ to w³aœciwie
opcje dostrajania systemu goszcz¹cego Sambê, ale ustawia siê je dla ka¿dego po³¹czenia z osobna i mog¹ byæ ustawiane przez Sambê w u¿ywanych przez ni¹ gniazdach za
pomoc¹ opcji socket options = opcja w sekcji [global] pliku smb.conf. Nie
wszystkie spoœród tych opcji s¹ obs³ugiwane w ka¿dym systemie; szczegó³y znajdziesz na stronach podrêcznika man dla funkcji setsockopt(1) lub socket(5).
Najwa¿niejsze opcje to:
TCP_NODELAY
Opcja ta sprawia, ¿e serwer wysy³a tyle pakietów, ile potrzeba do utrzymania
zw³oki na niskim poziomie. U¿ywa siê jej w po³¹czeniach telnetowych, aby uzyskaæ krótki czas odpowiedzi, a tak¿e – choæ jest to nieco sprzeczne z intuicj¹ – aby
osi¹gn¹æ przyzwoit¹ prêdkoœæ nawet przy niewielkich ¿¹daniach oraz przy
opóŸnionych potwierdzeniach (co wydaje siê byæ cech¹ stosu TCP/IP Microsoftu). Ju¿ sama ta opcja mo¿e przyspieszyæ operacje o 30 do 50 procent. Tak na
marginesie, w Sambie 2.0.4 TCP_NODELAY jest domyœln¹ wartoœci¹ opcji socket
options.
IPTOS_LOWDELAY
Jest to kolejna opcja, która zmniejsza zw³okê kosztem przepustowoœci, ale od dzia³uje na rutery i inne systemy, a nie na serwer. Opcje IPTOS s¹ nowoœci¹ i nie
s¹ obs³ugiwane przez wszystkie systemy operacyjne i rutery. Jeœli system je
obs³uguje, ustaw IPTOS_LOWDELAY, gdy ustawiasz TCP_NODELAY.
SO_SNDBUF i SO_RCVBUF
Bufory nadawczy i odbiorczy mo¿na czêsto ustawiæ na wielkoœæ wiêksz¹ ni¿ domyœlna dla systemu operacyjnego. Daje to nieznaczne zwiêkszenie prêdkoœci (do
punktu, w którym zyski staj¹ siê niezauwa¿alne).
SO_KEEPALIVE
Opcja ta zapocz¹tkowuje okresowe (co cztery godziny) sprawdzanie, czy klient
nie znikn¹³ z sieci. Z wygas³ymi po³¹czeniami lepiej sobie jednak radziæ za pomoc¹ opcji Samby keepalive i dead time. Wszystkie trzy rozwi¹zania umo¿liwiaj¹ zamkniêcie nieaktywnych po³¹czeñ i zwrócenie pamiêci oraz wpisów
z tablicy procesów do puli systemu operacyjnego.
Istniej¹ inne opcje gniazd, którymi warto siê zainteresowaæ (na przyk³ad
SO_SNDLOWAT), ale nie s¹ one dostêpne we wszystkich systemach. Jeœli zamierzasz
zbadaæ ich wp³yw na wydajnoœæ Samby, powinieneœ przeczytaæ ksi¹¿kê TCP/IP Illustrated.
read raw i write raw
Te opcje konfiguracyjne maj¹ istotny wp³yw na wydajnoœæ; umo¿liwiaj¹ Sambie zapisywanie i odczytywanie du¿ych bloków danych z sieci, do 64 KB w jednym ¿¹daniu SMB. Wymagaj¹ tak¿e najwiêkszych struktur pakietu SMB, SMBreadraw i SMBwriteraw, od których bior¹ swoje nazwy. Zauwa¿, ¿e to nie to samo, co „surowy”
odczyt danych (raw read) w Uniksie. Termin uniksowy odnosi siê zwykle do odczy-

Optymalizowanie Samby

301

tywania dysków z pominiêciem systemu plików, a wiêc ma ca³kiem inny sens ni¿
w Sambie.
W przesz³oœci niektóre programy klienckie odmawia³y pracy, jeœli spróbowa³eœ u¿yæ
opcji read raw. O ile nam wiadomo, obecnie ¿aden klient nie cierpi na tê przy pad³oœæ. Opcje read raw i write raw maj¹ domyœln¹ wartoœæ yes i nie powinieneœ ich zmieniaæ, chyba ¿e odkryjesz w swojej sieci klienta z tak¹ usterk¹.
Blokowanie oportunistyczne
Blokady oportunistyczne pozwalaj¹ klientom na lokalne buforowanie plików, co
zwiêksza wydajnoœæ o prawie 30 procent. Opcja ta jest obecnie domyœlnie w³¹czona.
W przypadku plików przeznaczonych tylko do odczytu opcja fake oplocks
spe³nia tê sam¹ funkcjê, choæ w rzeczywistoœci wcale nie buforuje danych. Jeœli masz
pliki, które nie mog¹ byæ buforowane, mo¿na wy³¹czyæ blokady oportunistyczne.
Pliki baz danych nigdy nie powinny byæ buforowane, podobnie jak pliki, które s¹
uaktualniane i w serwerze, i w kliencie, a których zmiany powinny byæ natychmiast
widoczne. Opcja veto oplock files umo¿liwia podanie listy pojedynczych plików lub wzorców nazw plików, które nie powinny byæ buforowane. Blokady oportunistyczne mo¿na wy³¹czaæ dla ka¿dego udzia³u z osobna, jeœli masz du¿e grupy plików, których klienty nie powinny buforowaæ. Wiêcej informacji o blokadach oportunistycznych znajdziesz w rozdziale 5, Przegl¹danie i zaawansowane udzia³y dyskowe.
Rozmiar pakietu IP (MTU)
Sieci zwykle maj¹ górn¹ granicê rozmiaru pojedynczej transmisji lub pakietu. Nosi
ona nazwê maksymalnego rozmiaru segmentu (Maximum Segment Size), a jeœli
uwzglêdni siê tak¿e rozmiar nag³ówka pakietu – maksymalnej jednostki transmisji
(Maximum Transport Unit, MTU). Jednostka MTU nie jest ustawiana przez Sambê, ale
Samba powinna u¿ywaæ opcji max xmit (rozmiaru zapisu) wiêkszej od MTU, gdy¿
w przeciwnym wypadku zmniejszy siê przepustowoœæ. Omówiono to bli¿ej w poni¿szej nocie. Jednostka MTU jest równa 1500 bajtom w Ethernecie i 4098 bajtom
w FDDI. Ogólnie rzecz bior¹c, zbyt niska wartoœæ MTU zmniejsza przepustowoœæ,
a zbyt wysoka powoduje nag³e spadki wydajnoœci spowodowane fragmentacj¹ i retransmisjami.
Jeœli komunikacja przebiega przez ruter, niektóre systemy zak³adaj¹, ¿e ruter dysponuje ³¹czem szeregowym (na przyk³ad T1) i ustawiaj¹ MTU na mniej wiêcej 536 bajtów.
Taki b³¹d, pope³niany na przyk³ad przez Windows 95, powoduje, ¿e pobliskie klienty
dzia³aj¹ sprawnie, ale klienty po drugiej stronie rutera s¹ zauwa¿alnie wolniejsze. Jeœli
klient pope³nia odwrotny b³¹d i u¿ywa du¿ej wartoœci MTU na ³¹czu wymagaj¹cym
ni¿szej wartoœci, pakiety zostan¹ rozbite na fragmenty. Powoduje to nieznaczne spo wolnienie transmisji, a ka¿dy b³¹d w sieci wi¹¿e siê z retransmisj¹ wielu fragmentów,
co znacznie pogarsza wydajnoœæ Samby. Na szczêœcie mo¿esz zmieniæ rozmiar MTU
w Windows, aby zapobiec takim b³êdom. Wiêcej informacji na ten temat znajdziesz
w dokumencie „The Windows 95 Networking Frequently Asked Questions (FAQ)”
pod adresem: http://www.stanford.edu/~llurch/win95netbugs/faq.html, gdzie wyjaœniono,
jak zmieniæ ustawienia MTU i rozmiaru okna TCP w Windows.

302

Dodatek B: Optymalizowanie wydajnoœci Samby

Okno odbiorcze TCP
Protokó³ TCP/IP rozbija dane na ma³e pakiety, które mo¿na przes³aæ od jednego
komputera do drugiego. Ka¿dy wys³any pakiet zawiera sumê kontroln¹, dziêki której odbiorca mo¿e sprawdziæ, czy podczas transmisji dane pakietu nie zosta³y
przek³amane. Teoretycznie, po odebraniu i zweryfikowaniu pakietu do nadawcy
powinno zostaæ wys³ane potwierdzenie, które informuje, ¿e dane przyby³y nienaruszone, i pozwala na kontynuowanie transmisji.
Aby przyspieszyæ przesy³anie danych, TCP akceptuje zakres pakietów (tak zwane
okno), które pozwala nadawcy na kontynuowanie transmisji bez czekania na potwierdzenie ka¿dego pakietu (po zgromadzeniu kilku potwierdzeñ mo¿na je jednoczeœnie
odes³aæ do nadawcy). Innymi s³owy, okno odbiorcze to liczba bajtów, które nadawca
mo¿e wys³aæ, zanim bêdzie musia³ wstrzymaæ transmisjê i zaczekaæ na potwierdzenie
od odbiorcy. Podobnie jak MTU, liczba ta jest automatycznie ustawiana w zale¿noœci
od typu po³¹czenia. Zbyt ma³e okno powoduje niepotrzebne czekanie na potwierdzenia. Wiele systemów operacyjnych ustawia umiarkowane wielkoœci bufora dla po szczególnych gniazd, aby zapobiec zmonopolizowaniu pamiêci przez jeden program.
Rozmiary buforów okreœla siê w bajtach, na przyk³ad pisz¹c SO_SNDBUF=8192
w linii opcji socket options. Tak wiêc przyk³adowa opcja konfiguracyjna socket options mo¿e wygl¹daæ nastêpuj¹co:
socket options = SO_SNDBUF=8192

Zwykle warto ustawiæ te opcje gniazd na wartoœci wiêksze od domyœlnych: 4098
w SunOS 4.1.3 i SVR4 oraz 8192 lub 16384 w AIX-ie, Solarisie i BSD. Na pocz¹tek mo¿na
wypróbowaæ wartoœæ 16384, co sugeruje test (nie Samby) zamieszczony w ksi¹¿ce
Stevensa – daje ona 40-procentowy wzrost wydajnoœci. Bêdziesz musia³ poeksperymentowaæ, poniewa¿ wydajnoœæ znów spadnie, kiedy ustawisz zbyt du¿y rozmiar bufora.
Ilustruje to rysunek B.1, przedstawiaj¹cy wyniki testu w systemie linuksowym.

Rysunek B.1. Rozmiar bufora SO_SNDBUF a wydajnoϾ

Inne opcje Samby

303

Ustawianie opcji gniazd SO_SNFBUF i SO_RCVBUF na wartoœci mniejsze od domyœlnych nie jest godne polecenia. Ustawienie ich na wy¿sz¹ wartoœæ zwiêksza wydajnoœæ, a¿ do pewnej granicy, charakterystycznej dla sieci. Po przekroczeniu tej granicy wydajnoœæ stabilizuje siê na nieco ni¿szym poziomie.
max xmit
Opcj¹ Samby bezpoœrednio zwi¹zan¹ z MTU i rozmiarem okna jest max xmit. Ustawia ona maksymaln¹ wielkoœæ bloku danych, który Samba mo¿e zapisaæ w jednej
operacji. Czasem wielkoœæ tê nazywa siê rozmiarem zapisu (write size), choæ w Sambie
nie istnieje opcja konfiguracyjna o takiej nazwie.
Poniewa¿ procentowa czêœæ ka¿dego bloku przeznaczona na informacje dodatkowe
maleje wraz ze wzrostem wielkoœci bloku, opcjê max xmit ustawia siê zwykle na
najwiêksz¹ mo¿liw¹ wartoœæ. Domyœlnie jest ona równa limitowi protoko³u, czyli 64
kilobajtom. Najmniejsza wartoœæ, która nie powoduje znacznego spowolnienia, to
2048 bajtów. Jeœli ustawi siê tê opcjê wystarczaj¹co nisko, ograniczy ona maksymalny rozmiar pakietów mo¿liwy do wynegocjowania przez Sambê. Mo¿esz u¿yæ jej do
zasymulowania niewielkiej jednostki MTU, jeœli chcesz przetestowaæ zawodne
po³¹czenie sieciowe. Podczas normalnej pracy Samby nie powinieneœ jednak redukowaæ MTU za pomoc¹ tej opcji.
read size
Poniewa¿ wielkoœæ zapisywanego bloku danych bywa nazywana rozmiarem zapisu
(write size), mo¿na by siê spodziewaæ, ¿e opcja read size okreœla maksymaln¹ wielkoœæ bloku danych odczytywanych z sieci. Tak jednak nie jest. W istocie opcja ta
w³¹cza zapis z wyprzedzeniem (write ahead). Oznacza to, ¿e jeœli Samba spóŸnia siê z odczytem dysku wzglêdem zapisywania danych w sieci (lub vice versa) o okreœlon¹ liczbê bajtów, zacznie nak³adaæ zapisy w sieci na odczyty dysku (lub vice versa).
Opcja ta nie ma w Uniksie du¿ego wp³ywu na wydajnoœæ, chyba ¿e przypiszesz jej
bardzo nisk¹ wartoœæ. Wtedy spowoduje zauwa¿alne spowolnienie. Z tego wzglêdu
ma ona domyœln¹ wartoœæ 2048 i nie mo¿e byæ mniejsza ni¿ 1024.
read prediction
Opcja ta jest nie tylko sprzeczna z intuicj¹, ale tak¿e przestarza³a. Umo¿liwia Sambie
odczytywanie z wyprzedzeniem plików, które zosta³y otworzone w trybie tylko do
odczytu. Opcja ta jest wy³¹czona w Sambie 2.0 (i póŸnych wersjach 1.9), poniewa¿
przeszkadza w blokowaniu oportunistycznym.

Inne opcje Samby
Poni¿sze opcje Samby bêd¹ mia³y wp³yw na wydajnoœæ, jeœli zostan¹ ustawione nieprawid³owo, podobnie jak omówiliœmy to w przypadku opcji debug level. Wspominamy tu o nich, abyœ wiedzia³, czego siê wystrzegaæ.

304

Dodatek B: Optymalizowanie wydajnoœci Samby

hide files
Podanie wzorca okreœlaj¹cego pliki, które powinny byæ ukryte dla klientów Windows,
powoduje, ¿e ka¿dy plik pasuj¹cy do wzorca zostanie przekazany z ustawionym dosowym atrybutem ukrycia. Wymaga to operacji dopasowania wzorca dla ka¿dego
pliku w listowanym katalogu, co zauwa¿alnie spowalnia dzia³anie serwera.
lpq cache time
Jeœli twoje polecenie lpq (zwracaj¹ce zawartoœæ kolejki wydruku) wykonuje siê
d³ugo, powinieneœ ustawiæ opcjê lpq cache time na czas d³u¿szy od rzeczywistego czasu wykonania tego polecenia, ¿eby Samba nie uruchamia³a nowego zapytania, gdy poprzednie jest jeszcze w toku. Domyœlna – i rozs¹dna – wartoœæ tej
opcji to 10 sekund.
strict locking
W³¹czenie opcji strict locking powoduje, ¿e Samba sprawdza obecnoœæ blokad przy ka¿dym dostêpie do pliku, a nie tylko wtedy, gdy klient o to poprosi.
Opcja ta s³u¿y g³ównie jako zabezpieczenie przed usterkami i mo¿e zapobiec
uszkodzeniu wspó³dzielonych plików przez b³êdnie dzia³aj¹ce aplikacje DOS-a
i Windows. Powoduje jednak spowolnienie i powinna byæ wy³¹czona.
strict sync
W³¹czenie opcji strict sync powoduje, ¿e Samba zapisuje ka¿dy pakiet na
dysku i czeka na dokoñczenie zapisu, kiedy klient ustawi bit synchronizacji
w pakiecie. Eksplorator Windows 98 ustawia ten bit we wszystkich transmitowanych pakietach, wiêc jeœli w³¹czysz tê opcjê, u¿ytkownicy Windows 98 bêd¹ uwa¿ali serwery Samby za nieznoœnie powolne.
sync always
Ustawienie opcji sync always na yes sprawia, ¿e Samba wymusza fizyczne zapisywanie danych na dysku. Ma to sens, jeœli twój serwer co chwila ulega awarii,
ale prowadzi do drastycznego spadku wydajnoœci. Serwery SMB w celu zapobiegania skutkom awarii korzystaj¹ z blokad oportunistycznych i automatycznego
odnawiania po³¹czeñ, wiêc w normalnych okolicznoœciach ustawianie tej opcji
nie jest konieczne.
wide links
Wy³¹czenie opcji wide links sprawia, ¿e Samba nie pod¹¿a za dowi¹zaniami
symbolicznymi znajduj¹cymi siê w jednym udziale, a wskazuj¹cymi na pliki
w innym udziale. Jest ona domyœlnie w³¹czona, poniewa¿ pod¹¿anie za
dowi¹zaniami w Uniksie nie stanowi zagro¿enia bezpieczeñstwa. Wy³¹czenie jej
wymaga dodatkowego przetwarzania ka¿dego otwartego pliku. Jeœli wy³¹czysz
opcjê wide links, koniecznie w³¹cz getwd cache, aby buforowaæ pewn¹ iloœæ
wymaganych danych.
Istnieje tak¿e opcja follow symlinks, któr¹ mo¿na wy³¹czyæ, aby zapobiec
pod¹¿aniu za jakimkolwiek dowi¹zaniem symbolicznym. Ta opcja jednak nie ma
wp³ywu na wydajnoœæ.

Skalowanie serwerów Samby

305

getwd cache
Ta opcja buforuje œcie¿kê do bie¿¹cego katalogu, zapobiegaj¹c jej czasoch³onnemu wyszukiwaniu w drzewie katalogów. Mo¿e poprawiæ wydajnoœæ serwera
wydruku i przydaje siê, gdy wy³¹czona jest opcja wide links.

Nasze zalecenia
Oto plik smb.conf, który zawiera omówione do tej pory ulepszenia wydajnoœci. Po
prawej stronie zamieszczono komentarze.
[global]
log level = 1
# Domyœlnie 0
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
# Ustawienie domyœlne
write raw = yes
# Ustawienie domyœlne
oplocks = yes
# Ustawienie domyœlne
max xmit = 65535
# Ustawienie domyœlne
dead time = 15
# Domyœlnie 0
getwd cache = yes
lpq cache = 30
[dobremiejsce]
veto oplock files = ten/tamten/innyplik
[zlemiejsce]
oplocks = no

Skalowanie serwerów Samby
Skalowanie to sposób na unikniêcie w¹skich garde³, zanim bêd¹ mia³y okazjê siê objawiæ. Trzeba w tym celu wiedzieæ, ilu ¿¹dañ na sekundê lub ilu kilobajtów na se kundê bêd¹ wymagaæ klienty, i upewniæ siê, ¿e wszystkie sk³adniki serwera mog¹
spe³niæ te wymagania.

W¹skie gard³a
Trzy zasadnicze w¹skie gard³a, na które powinieneœ zwróciæ uwagê, to procesor,
operacje dyskowe i sieæ. W wiêkszoœci komputerów procesor nie stanowi w¹skiego
gard³a. Pojedynczy procesor Sun SPARC 10 mo¿e zapocz¹tkowaæ (i zakoñczyæ) od
700 do 800 operacji wejœcia-wyjœcia na sekundê, co daje przepustowoœæ miêdzy 5 600
a 6 400 KB/s, kiedy rozmiar bloku danych wynosi 8 KB (jest to czêsto u¿ywany rozmiar bufora). Pojedynczy procesor Intel Pentium 133 wykonuje ich nieco mniej ze
wzglêdu na wolniejsz¹ pamiêæ podrêczn¹ i interfejs magistrali, a nie z powodu braku mocy obliczeniowej. Specjalnie zaprojektowane serwery Pentium, na przyk³ad
niektóre modele Compaqa, mog¹ zapocz¹tkowaæ 700 operacji na procesor, korzystaj¹c nawet z czterech procesorów.
Zbyt ma³a pamiêæ mo¿e natomiast stanowiæ w¹skie gard³o; ka¿dy proces Samby zajmuje od 600 do 800 KB w Linuksie na platformie Intela, a nawet wiêcej w przypadku
procesorów RISC. Jeœli pamiêci fizycznej jest za ma³o, wzroœnie czêstotliwoœæ stronicowania do pamiêci wirtualnej i ucierpi wydajnoœæ. W systemie Solaris zmierzono,
¿e smbd zajmuje 2,6 MB pamiêci na program i wspó³dzielone biblioteki oraz 768 KB

306

Dodatek B: Optymalizowanie wydajnoœci Samby

na ka¿dego pod³¹czonego klienta. Proces nmbd zajmuje 2,1 MB i dodatkowo 496 KB
na swój (pojedynczy) proces pomocniczy.
Dyski twarde zawsze staj¹ siê w¹skim gard³em przy okreœlonej liczbie operacji wejœcia-wyjœcia na sekundê. Na przyk³ad ka¿dy dysk SCSI o prêdkoœci 7200 RPM mo¿e
przeprowadziæ 70 operacji na sekundê, co daje przepustowoœæ 560 KB/s; dysk
o prêdkoœci 4800 RPM mo¿e wykonaæ do 50 operacji, co daje przepustowoœæ 360
KB/s. Dyski IDE przeprowadzaj¹ jeszcze mniej operacji. Jeœli dyski s¹ niezale¿ne lub
po³¹czone w paskow¹ macierz RAID 1, ka¿dy z nich bêdzie mia³ szczytow¹ przepustowoœæ od 400 do 560 KB/s, a jeœli do³o¿ysz nastêpne dyski, wydajnoœæ bêdzie liniowo ros³a. Zauwa¿, ¿e odnosi siê to tylko do macierzy RAID 1. Poziomy RAID inne
ni¿ 1 (paskowe) dodaj¹ uboczny narzut.
Sieci Ethernet (i inne) s¹ oczywistym w¹skim gard³em: Ethernet 10 Mb/s (megabity
na sekundê) ma przepustowoœæ oko³o 1100 KB/s (kilobajty na sekundê) przy u¿yciu
pakietów o rozmiarze 1500 bajtów. Fast Ethernet 100 Mb/s staje siê w¹skim gard³em
przy przepustowoœci 6500 KB/s i takim samym rozmiarze pakietów. Górna granica
przepustowoœci dla FDDI (155 Mb/s) le¿y w okolicach 6250 KB/s, ale sieæ ta pozostaje sprawna nawet przy stuprocentowym obci¹¿eniu i transmituje du¿o wiêksze
pakiety (4 KB).
Sieæ ATM powinna dzia³aæ du¿o lepiej, ale jest to jeszcze zbyt nowa technologia, aby
wykorzystywa³a ca³y swój potencja³. Obecnie mo¿e dostarczaæ oko³o 7125 Mb/s
przy u¿yciu pakietów o rozmiarze 9 KB.
Oczywiœcie, mog¹ istnieæ inne w¹skie gard³a: nie zaleca siê do³¹czania wiêcej ni¿ jednego dysku IDE do jednego kontrolera, podobnie jak wiêcej ni¿ trzech dysków 3600
SCSI-I do wolniejszego kontrolera (typu narrow) i ni¿ trzech dysków 7200 SCSI-II do
szybszego kontrolera (typu wide). Macierz RAID 5 równie¿ jest doœæ wolna, poniewa¿ wymaga dwa razy wiêcej zapisów ni¿ niezale¿ne dyski lub macierz RAID 1.
Po dodaniu drugiej karty sieciowej i drugiego kontrolera dysku warto przyjrzeæ siê
przepustowoœci magistrali, zw³aszcza jeœli u¿ywasz magistral ISA/EISA.

Eliminowanie w¹skich garde³
Na podstawie powy¿szych informacji mo¿emy wypracowaæ model, który pozwoli
nam ustaliæ maksymaln¹ wydajnoœæ konkretnego komputera. Przedstawione tu
dane zaczerpnêliœmy g³ównie z ksi¹¿ki Briana Wonga Configuration and Capacity
Planning for Solaris Servers*, która opisuje serwery firmy Sun, co do pewnego stopnia
widaæ w naszych przyk³adach.
S³owo ostrze¿enia: nie jest to pe³ny model. Nie powinieneœ zak³adaæ, ¿e dziêki niemu zdo³asz przewidzieæ wszystkie w¹skie gard³a, a b³¹d w szacunkach nie przekroczy 10 procent. Model, który przewidywa³by wydajnoœæ, a nie tylko ostrzega³ przed
w¹skimi gard³ami, musia³by byæ du¿o bardziej skomplikowany i zawieraæ regu³y
w rodzaju „nie wiêcej ni¿ trzy dyski SCSI na jeden ³añcuch” (dobr¹ ksi¹¿k¹ o rzeczy* Patrz Brian L. Wong, Configuration and Capacity Planning for Solaris Servers,. Englewood Cliffs, NJ (Sun/
Prentice-Hall), 1997, ISBN 0-13-349952-9.

Skalowanie serwerów Samby

307

wistych modelach jest The Art of Computer Systems Performance Analysis autorstwa
Raja Jaina*). Po tym ostrze¿eniu przedstawiamy system z rysunku B.2.

Rysunek B.2. Przep³yw danych w serwerze Samby i potencjalne w¹skie gard³a

Przep³yw danych jest doœæ oczywisty. Na przyk³ad podczas odczytu dane p³yn¹ od
dysku, kolejno przez magistralê, procesor (lub obok niego), wreszcie do karty sieciowej. Nastêpnie s¹ dzielone na pakiety i przesy³ane przez sieæ. Przeœledzimy drogê
danych przez system i sprawdzimy, w jakich w¹skich gard³ach mog¹ utkn¹æ. Choæ
trudno w to uwierzyæ, doœæ ³atwo jest sporz¹dziæ zbiór tabel z parametrami popularnych dysków, procesorów i kart sieciowych, wiêc tak w³aœnie post¹pimy.
WeŸmy konkretny przyk³ad: linuksowy komputer Pentium 133 MHz z jednym dyskiem danych o prêdkoœci obrotowej 7200 RPM, magistral¹ PCI i kart¹ Ethernetu 10
Mb/s. Jest to ca³kiem przyzwoity serwer. Zacznijmy od tabeli B.2, która opisuje dysk
twardy – pierwsze potencjalne w¹skie gard³o systemu.
Tabela B.2. PrzepustowoϾ dysku
RPM

Operacje we-wy na sekundê

KB na sekundê

7200
4800
3600

70
60
40

560
480
320

Przepustowoœæ dysku to liczba kilobajtów przesy³anych przez dysk w ci¹gu jednej sekundy. Mo¿na obliczyæ j¹ na podstawie liczby operacji wejœcia-wyjœcia na 8-kilobajtowych blokach danych, któr¹ dysk mo¿e przeprowadziæ w ci¹gu sekundy, a na któr¹
zasadniczy wp³yw ma prêdkoœæ obrotowa dysku i gêstoœæ zapisu. Nale¿y zatem postawiæ pytanie: ile danych mo¿e przejœæ pod g³owicami dysku w czasie jednej sekundy? W przypadku pojedynczego dysku 7200 RPM przyk³adowy serwer móg³by wykonaæ 70 operacji wejœcia-wyjœcia na sekundê, daj¹c przepustowoœæ oko³o 560 KB/s.

* Patrz Raj Jain, The Art of Computer Systems Performance Analysis. New York, NY (John Wiley and Sons),
1991, ISBN 0-47-150336-3.

308

Dodatek B: Optymalizowanie wydajnoœci Samby

Drugim potencjalnym w¹skim gard³em jest procesor. W nowoczesnych komputerach dane w rzeczywistoœci nie przep³ywaj¹ przez procesor, wiêc przepustowoœæ
bêdziemy musieli obliczyæ w sposób poœredni.
Procesor musi wydawaæ polecenia wejœcia-wyjœcia i obs³ugiwaæ nadchodz¹ce przerwania, a nastêpnie przesy³aæ dane przez magistralê do karty sieciowej. W wielu
eksperymentach stwierdzono, ¿e najwiêksz¹ czêœæ czasu procesora poch³ania przetwarzanie kodu systemu plików, wiêc mo¿emy zignorowaæ inne dzia³aj¹ce oprogramowanie. Obliczymy przepustowoœæ procesora, po prostu mno¿¹c (zmierzon¹) liczbê operacji wejœcia-wyjœcia na sekundê, które potrafi przetworzyæ procesor, przez
ten sam œredni rozmiar ¿¹dania (8 KB). Wyniki zamieszczono w tabeli B.3.
Tabela B.3. PrzepustowoϾ procesora
Procesor

Operacje we-wy na sekundê

KB na sekundê

Intel Pentium 133
Dwa Pentium 133
Sun SPARC II
Sun SPARC 10
Sun Ultra 200

700
1200
660
750
2650

5600
9600
5280
6000
21200

Porównajmy teraz przepustowoœæ dysku i procesora: w przyk³adowym komputerze
mamy pojedynczy dysk 7200 RPM, który zapewnia przepustowoœæ 560 KB/s, oraz
procesor zdolny do zapocz¹tkowania 700 operacji wejœcia-wyjœcia na sekundê, co
daje przepustowoœæ 5600 KB/s. Jak mo¿na by³o siê spodziewaæ, w¹skim gard³em
najwyraŸniej jest dysk twardy.
Ostatnie potencjalne w¹skie gard³o to sieæ. Jeœli prêdkoœæ sieci jest mniejsza ni¿ 100
Mb/s, w³aœnie ona mo¿e staæ siê w¹skim gard³em. Powy¿ej tej granicy spowolni nas
raczej konstrukcja karty sieciowej. Tabela B.4 pokazuje œredni¹ przepustowoœæ ró¿nych typów sieci. Choæ prêdkoœæ sieci konwencjonalnie mierzy siê w bitach na se kundê, w tabeli B.4 podajemy j¹ w kilobajtach na sekundê, aby u³atwiæ porównanie
z przepustowoœci¹ dysku i procesora (tabele B.2 i B.3).
Tabela B.4. PrzepustowoϾ sieci
Typ sieci

KB na sekundê

ISDN
T1
Ethernet 10m
Token ring
FDDI
Ethernet 100m
ATM 155

16
197
1113
1500
6250
6500a
7125a

aTe liczby niebawem wzrosn¹. Komputery Cray, Sun Ultra i DEC/Compaq Alpha osi¹gnê³y ju¿ lepsze wyniki.

Skalowanie serwerów Samby

309

W omawianym przyk³adzie w¹skim gard³em jest dysk, który ogranicza przepustowoœæ do 560 KB/s. W tabeli B.4 widaæ, ¿e standardowy Ethernet 10 Mb/s (1113
KB/s) jest znacznie szybszy ni¿ dysk, zatem win¹ za ograniczenie wydajnoœci nale¿y obci¹¿yæ dysk (jest to zreszt¹ bardzo czêsty przypadek). Wystarczy spojrzeæ na
tabele, aby przewidzieæ, ¿e ma³e serwery nie bêd¹ mia³y problemów z procesorem,
a du¿e serwery z wieloma procesorami bêd¹ musia³y uciekaæ siê do macierzy paskowych i dodatkowych kart sieciowych, zanim zabraknie im mocy procesora. I tak
w³aœnie siê dzieje.

Przyk³ady praktyczne
Przyk³ad z ksi¹¿ki Wonga Configuration and Capacity Planning for Solaris Servers
pokazuje, ¿e dwuprocesorowy komputer SPARCstation 20/712 z czterema kartami
Ethernetu i szeœcioma dyskami 2,1 GB bêdzie spêdza³ ca³y czas na czekaniu, a¿ dyski
dostarcz¹ nastêpn¹ porcjê danych. Jeœli nawet zape³niono by go dyskami (Wong sugeruje u¿ycie a¿ 34), jego przepustowoœæ nadal nie przekroczy³aby granicy 1200
KB/s ze wzglêdu na karty Ethernetu. Aby osi¹gn¹æ pe³n¹ wydajnoœæ komputera, nale¿a³oby u¿yæ wielu kart Ethernetu, Fast Ethernetu (100 Mb/s) lub FDDI.
Ci¹g za³o¿eñ prowadz¹cych do tego wniosku jest przedstawiony w tabeli B.5.
Tabela B.5. Optymalizowanie serwera œredniej klasy
Komputer

PrzepustowoϾ PrzepustowoϾ PrzepustowoϾ Rzeczywista
jednego
dysku
sieci
przepustowoϾ
procesora

Dwuprocesorowy
SPARC 10, 1 dysk
Dodatkowe 5 dysków
Dodatkowe 3 karty
Ethernetu
Zastosowanie macierzy
20 dysków
U¿ycie dwóch kart
Ethernetu 100 Mb/s

560

6000

1113

560

3360
3360

6000
6000

1113
4452

1113
3360

11200

6000

4452

4452

11200

6000

13000

11200

Pocz¹tkowo w¹skim gard³em jest twardy dysk o przepustowoœci zaledwie 560
KB/s. Rozwi¹zaniem jest dodanie kolejnych piêciu dysków. Daje to wiêksz¹ przepustowoœæ dysków ni¿ Ethernetu, wiêc problemem staje siê Ethernet. Kontynuuj¹c
rozbudowê serwera napotykamy problem to z tej, to z tamtej strony. W¹skie gard³o
przemieszcza siê wraz z dodawaniem dysków, procesorów i kart sieciowych. Za sadniczo, nasza strategia polega na dodawaniu sprzêtu w celu wyeliminowania kolejnych w¹skich garde³, a¿ do momentu, kiedy osi¹gniemy docelow¹ wydajnoœæ
albo (niestety) nie bêdziemy mogli dodaæ wiêcej elementów czy te¿ skoñcz¹ siê nam
fundusze.
Z naszych doœwiadczeñ wynika, ¿e powy¿sze obliczenia s¹ prawdziwe. Du¿y dwuprocesorowy serwer plikowy SPARC 10 administrowany przez jednego z autorów

310

Dodatek B: Optymalizowanie wydajnoœci Samby

potrafi³ nasyciæ danymi Ethernet i oko³o jednej trzeciej pierœcienia FDDI. Dzia³a³ niemal równie wydajnie z jednym procesorem, choæ po zastosowaniu szybkiego systemu operacyjnego i dokonaniu gruntownej optymalizacji.
Opisan¹ powy¿ej procedurê mo¿na zastosowaæ tak¿e do innych modeli specjalnie
zaprojektowanych serwerów. Te same regu³y odnosz¹ siê do komputerów DECstation 2100 oraz najnowszych komputerów Alphy i Compaqa, starszych MIPS 3350
i nowych SGI O2. Ogólnie rzecz bior¹c, komputery wieloprocesorowe dysponuj¹
tak¹ przepustowoœci¹ magistrali i moc¹ procesora, ¿e przy œwiadczeniu us³ug plikowych niezawodnie „zatkaj¹” siê na dyskowych operacjach wejœcia-wyjœcia. I ca³e
szczêœcie, zwa¿ywszy na koszty!

Ile klientów mo¿e obs³u¿yæ Samba?
Zale¿y to g³ównie od iloœci danych przetwarzanych przez ka¿dego u¿ytkownika.
Ma³y serwer z trzema dyskami SCSI-1, który mo¿e przesy³aæ oko³o 960 KB danych
na sekundê, obs³u¿y od 36 do 80 klientów w zwyk³ym œrodowisku biurowym, gdzie
u¿ytkownicy typowo odczytuj¹ lub zapisuj¹ arkusze kalkulacyjne lub dokumenty
tekstowe o podobnych rozmiarach (36 klientów x 2,3 transferów na sekundê x 12 KB
danych = 1 MB/s).
Jeœli ten sam serwer jest u¿ywany w œrodowisku programistycznym, gdzie u¿yt kownicy pracuj¹ w intensywnym cyklu edycja-kompilacja-testowanie, czêsto pojawiaj¹ siê ¿¹dania rzêdu 1 MB/s, co ogranicza serwer do 25 lub mniej klientów. Kontynuuj¹c to rozumowanie, system obróbki obrazu, w którym ka¿dy klient wymaga
przepustowoœci 10 MB/s, bêdzie dzia³a³ kiepsko, choæby serwer by³ bardzo wydajny, jeœli wszystkie klienty bêd¹ znajdowaæ siê w tym samym segmencie Ethernetu.
I tak dalej.
Jeœli nie wiesz, ile danych przetwarza statystyczny u¿ytkownik, mo¿esz wyskalowaæ swój serwer na podstawie istniej¹cych konfiguracji serwerów NFS, Netware lub
LAN Managera. Powinieneœ upewniæ siê, ¿e nowe serwery maj¹ tyle samo dysków
i kontrolerów co te, które skopiowa³eœ. Technikê tê s³usznie okreœla siê terminem
„strzel i módl siê”.
Jeœli wiesz, ile klientów mo¿e obs³u¿yæ istniej¹cy serwer, jesteœ w znacznie lepszej
sytuacji. Mo¿esz ustaliæ maksymaln¹ wydajnoœæ serwera i na tej podstawie oszacowaæ, ile danych przetwarzaj¹ klienty. Jeœli na przyk³ad udostêpnianie katalogów
macierzystych w serwerze z dwoma dyskami IDE jest zbyt wolne przy 30 klientach,
a zadowalaj¹ce przy 25, mo¿esz œmia³o za³o¿yæ, ¿e w¹skim gard³em s¹ ethernetowe
(oko³o 375 KB), a nie dyskowe operacje wejœcia-wyjœcia (do 640 KB). W takim przypadku ³atwo dojœæ do wniosku, ¿e klienty œrednio wymagaj¹ przepustowoœci 15
KB/s (375/25).
Obs³uga nowego laboratorium komputerowego z 75 klientami bêdzie wymagaæ
przepustowoœci 1125 KB/s, roz³o¿onej na kilka (najlepiej trzy) sieci Ethernet, oraz
serwera z przynajmniej trzema dyskami 7200 RPM i odpowiednio szybkim procesorem. Te wymagania spe³nia Pentium 133 lub szybszy komputer z tak¹ architektur¹

Skalowanie serwerów Samby

311

magistrali, która pozwala na pracê wszystkich elementów z pe³n¹ prêdkoœci¹ (na
przyk³ad PCI).
Zbudowany na zamówienie serwer PC albo wieloprocesorowa stacja robocza, taka
jak Sun Sparc, DEC/Compaq Alpha, SGI lub podobna, bêdzie ³atwiej siê skalowaæ,
podobnie jak konfiguracja z Fast Ethernetem i koncentratorem prze³¹czaj¹cym, który bêdzie sterowa³ komputerami klienckimi w poszczególnych Ethernetach o prêdkoœci 10 MB/s.
Zgadujemy
Jeœli zupe³nie nie masz pojêcia, jakiej wydajnoœci potrzebujesz, spróbuj odgadn¹æ j¹
na podstawie doœwiadczeñ innych u¿ytkowników. Ka¿dy komputer kliencki mo¿e
potrzebowaæ od 1 operacji wejœcia-wyjœcia na sekundê (zwyk³y PC lub Mac u¿ywany w dziale sprzeda¿y lub ksiêgowoœci) do 4 (szybkie stacje robocze u¿ywaj¹ce du¿ych aplikacji). Szybka stacja robocza z uruchomionym kompilatorem mo¿e œrednio
¿¹daæ transmisji od 3 do 4 MB/s, a system obróbki obrazu nawet wiêcej.
Jakie s¹ nasze zalecenia? Podpatrz kogoœ, kto ma podobn¹ konfiguracjê, i spróbuj
oceniæ zapotrzebowanie na przepustowoœæ na podstawie jej w¹skich garde³ i g³oœnoœci krzyków jej u¿ytkowników. Polecamy tak¿e ksi¹¿kê Briana Wonga Configuration
and Capacity Planning for Solaris Servers. Choæ w jego przyk³adach wystêpuj¹ g³ównie
serwery Sun Solaris, w¹skimi gard³ami s¹ tu przede wszystkim dyski i karty sieciowe, podobnie jak u innych czo³owych producentów. Jego tabele dla serwerów FTP
odpowiadaj¹ doœæ œciœle naszym pomiarom serwerów Samby i s¹ dobrym punktem
wyjœcia do dalszych badañ.

Formularze pomiarowe
Tabele B.6 i B.7 to puste formularze, których mo¿esz u¿yæ do zapisywania w³asnych
danych. Mo¿esz wyznaczyæ w¹skie gard³o za pomoc¹ arkusza kalkulacyjnego albo
rêcznie, za pomoc¹ tabeli B.8. Jeœli Samba dzia³a tak dobrze lub lepiej ni¿ FTP,
a w niektórych przebiegach testowych nie wystêpuj¹ znacz¹ce odchylenia od œredniej, oznacza to, ¿e twój system jest dobrze skonfigurowany. Jeœli interfejs pêtli
zwrotnej nie jest du¿o szybszy od innych sposobów komunikacji, oznacza to, ¿e
masz problem z oprogramowaniem TCP/IP. Jeœli i FTP, i Samba s¹ powolne, prawdopodobnie masz problem z sieci¹: mo¿e to byæ spowodowane b³êdnie dzia³aj¹c¹
kart¹ sieciow¹, a tak¿e przypadkowym ustawieniem karty Ethernetu na tryb pó³dupleksowy, gdy nie jest ona pod³¹czona do koncentratora pó³dupleksowego. Pamiêtaj, ¿e prêdkoœci procesora i dysku mierzy siê zwykle w bajtach na sekundê, a prêdkoœæ sieci w bitach.
W tabelach umieœciliœmy kolumny zarówno dla bajtów, jak i bitów. W ostatniej kolumnie porównujemy wyniki z wartoœci¹ 10 Mb/s, poniewa¿ jest to prêdkoœæ tradycyjnego Ethernetu.

312

Dodatek B: Optymalizowanie wydajnoœci Samby

Tabela B.6. Interfejs ethernetowy do tego samego hosta: FTP
Test nr

Rozmiar w bajtach

Czas (s)

Bajty/s

Bity/s % 10 Mb/s

1
2
3
4
5
Œrednia:
Odchylenie:
Tabela B.7. Interfejs ethernetowy do tego samego hosta: FTP
Test nr

Rozmiar w bajtach

Czas (s)

Bajty/s

PrzepustowoϾ dysku

Liczba
sieci

Bity/s % 10 Mb/s

1
2
3
4
5
Œrednia:
Odchylenie:
Tabela B.8. Wyznaczanie w¹skiego gard³a
Liczba
procesorów

Przepustowoœæ procesorów

Liczba
dysków

PrzepustowoϾ sieci

PrzepustowoϾ
ca³kowita

W tabeli B.8:
· Przepustowoœæ procesora: (KB/s z tabeli B.3) x (liczba procesorów)
· Przepustowoœæ dysku: (KB/s z tabeli B.2) x (liczba dysków)
· Przepustowoœæ sieci: (KB/s z tabeli B.4) x (liczba sieci)
· Przepustowoœæ ca³kowita: minimum (przepustowoœæ dysku, procesora i sieci).
Typowy test, w tym przypadku dla polecenia get FTP, wygl¹da tak jak w tabeli B.9:

Skalowanie serwerów Samby

313

Tabela B.9. Interfejs ethernetowy do tego samego hosta: FTP
Test nr

Rozmiar
w bajtach

Czas (sek.)

Bajty/sek

Bity/sek

% 10 Mb/s

1
2
3
4
5
Œrednia:
Odchylenie:

1 812 898

2,3
2,3
2,4
2,3
2,3
2,32
0,04

761 580
767 820
747 420
760 020
772 700
777 310

6 218 480

62

Przyk³adowy test serwera Sparc, o którym by³a mowa wczeœniej, wygl¹da³by tak jak
w tabeli B.10.
Tabela B.10. Przyk³adowy serwer Sparc 20
Liczba
procesorów

PrzepustowoϾ procesora

Liczba
dysków

PrzepustowoϾ dysku

Liczba
sieci

PrzepustowoϾ sieci

PrzepustowoϾ
ca³kowita

2
2
2
2
2

6000
6000
6000
6000
6000

1
6
6
20
20

560
3360
3360
11 200
11 200

1 10base2
1
4 10base2
4
2
100base2

1113
1113
4452
4452
13 000

560
1 113
3 360
4 452
11 200

Spis opcji
konfiguracyjnych
Samby

C

Dodatek C: Spis opcji konfiguracyjnych Samby

Poni¿ej znajduje siê pe³ny spis opcji konfiguracyjnych Samby. Jeœli dana opcja mo¿e
byæ u¿ywana tylko w sekcji globalnej, przed jej nazw¹ wystêpuje s³owo „[global]”.
We wszystkich wzmiankowanych listach poszczególne elementy nale¿y oddzielaæ
spacjami, chyba ¿e podano inaczej. Na koñcu dodatku znajduje siê s³owniczek terminów u¿ywanych w spisie opcji.
admin users = lista u¿ytkowników

dozwolone wartoœci: lista u¿ytkowników
wartoœæ domyœlna: BRAK
Lista u¿ytkowników, którzy bêd¹ mieli przywileje roota podczas korzystania z udzia³ów
Samby.
allow hosts = lista hostów

dozwolone wartoœci: dowolne
wartoœæ domyœlna: BRAK
Synonim opcji hosts allow. Wymienia komputery, które mog¹ ³¹czyæ siê z udzia³em.
alternate permissions = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Przestarza³a. W Sambie 2.0 nie ma ¿adnego zastosowania. Pliki bêd¹ pokazywane
jako przeznaczone tylko do odczytu, jeœli w³aœciciel nie mo¿e w nich pisaæ. W Sambie 1.9 w³¹czenie tej opcji powoduje, ¿e ka¿dy plik, którego u¿ytkownik nie móg³ zapisaæ, by³ oznaczany dosowym atrybutem „tylko do odczytu”. To z kolei wymaga³o
w³¹czenia opcji delete readonly.
[global] announce as = typ systemu

dozwolone wartoœci: NT, Win95, WfW
wartoœæ domyœlna: NT
Samba mo¿e og³aszaæ siê jako system inny ni¿ Windows NT. U¿ycie tej opcji nie jest
zalecane, gdy¿ przeszkadza ona w udostêpnianiu list przegl¹dania.

316

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] announce version = liczba.liczba

dozwolone wartoœci: dowolne
wartoœæ domyœlna: 4.2
Instruuje Sambê, aby og³asza³a siê jako starsza wersja serwera SMB. U¿ycie tej opcji
nie jest zalecane.
[global] auto services = lista udzia³ów

dozwolone wartoœci: dowolne udzia³y
wartoœæ domyœlna: BRAK
Lista udzia³ów, które zawsze bêd¹ pojawiaæ siê na listach przegl¹dania. Synonim
opcji preload.
available = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na NO, zabrania dostêpu do udzia³u. Nie ma wp³ywu na
przegl¹danie.
[global] bind interfaces only = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, udzia³y i listy przegl¹dania bêd¹ udostêpniane tylko
przez interfejsy wymienione na liœcie interfejsów (patrz opcja interfaces). No woœæ w Sambie 1.9.18. Jeœli ustawisz j¹ na YES, dodaj 127.0.0.1 do listy interfejsów,
aby polecenie smbpasswd mog³o ³¹czyæ siê z lokalnym komputerem w celu zmiany
has³a. Opcja ta s³u¿y tylko wygodzie u¿ytkownika; nie poprawia bezpieczeñstwa.
browsable = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Pozwala na og³aszanie udzia³ów za poœrednictwem list przegl¹dania.
blocking locks = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, Samba uwzglêdnia ¿¹dania blokady zakresu bajtów z limitem czasowym, podczas którego ¿¹danie jest kolejkowane i podejmowane s¹ kolejne próby przyznania blokady. Nowoœæ w Sambie 2.0.
[global] browse list = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
W³¹cza lub wy³¹cza przekazywanie list przegl¹dania przez serwer. Nie zmieniaæ.

coding system = kod

317

[global] case sensitive = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba odnajduje pliki o nazwach pisanych literami takiej wielkoœci, jak zrobi³ to klient. Jeœli jest ustawiona na NO, dopasowywane s¹ nazwy pisane zarówno du¿ymi, jak i ma³ymi literami. Nie nale¿y zmieniaæ tej opcji.
[global] case sig names = wartoϾ logiczna

dozwolone wartoœci: YES, NO
Synonim opcji case sensitive.

wartoœæ domyœlna: NO

[global] change notify timeout = liczba

dozwolone wartoœci: liczba dodatnia
wartoœæ domyœlna: 60
Ustawia liczbê sekund miêdzy kolejnymi testami, kiedy klient za¿¹da powiadamiania o zmianach w katalogu. Wprowadzona w Sambie 2.0, aby zmniejszyæ obci¹¿enie
testami. Nie nale¿y obni¿aæ jej wartoœci.
character set = nazwa

dozwolone wartoœci: ISO8859-1, ISO8859-2, ISO8859-5, KOI8-R

wartoœæ domyœlna:
BRAK
Jeœli jest w³¹czona, t³umaczy znaki ze stron kodowych DOS-a na zestawy znaków:
zachodnioeuropejski (ISO8859-1), wschodnioeuropejski (ISO8859-2), rosyjsk¹ cyrylicê (ISO8859-5) lub alternatywny rosyjski (KOI8-R). Opcja client code page
musi byæ ustawiona na 850.
client code page = nazwa

dozwolone wartoœci: patrz tabela 8.4.

wartoœæ domyœlna:
437 (MS-DOS Stany Zjednoczone)
Ustawia jawnie stronê kodow¹ DOS-a, anuluj¹c poprzednie ustawienia opcji valid
chars. Przyk³adowe wartoœci to 850 dla europejskiej strony kodowej, 437 dla standardowej strony kodowej Stanów Zjednoczonych i 932 dla japoñskiej strony Shift-JIS.
Wprowadzona w Sambie 1.9.19.
coding system = kod

dozwolone wartoœci: euc, cap, hex, hexN, sjis, j8bb, j8bj, jis8, j8bh, j8@b, j8@j, j8@h, j7bb,
j7bj, jis7, j7bh, j7@b, j7@j, j7@h, jubb, jubj, junet, jubh, ju@b, ju@j, ju@h
wartoœæ domyœlna: BRAK
Ustawia system kodowania, przede wszystkim dla alfabetu Kanji. S³u¿y do okreœlania nazw plików i powinna odpowiadaæ u¿ywanej stronie kodowej. Opcja client

318

Dodatek C: Spis opcji konfiguracyjnych Samby

code page musi byæ ustawiona na 932 (japoñska strona Shift-JIS). Wprowadzona
w Sambie 2.0.
comment = tekst

dozwolone wartoœci: ³añcuch tekstowy lub pusty
wartoœæ domyœlna: BRAK
Ustawia komentarz wyœwietlany obok udzia³u w poleceniu NET VIEW lub w szczegó³owym widoku okna katalogu Windows. Patrz tak¿e opcja server string.
[global] config file = œcie¿ka i nazwa pliku

dozwolone wartoœci: uniksowa œcie¿ka i nazwa pliku
wartoœæ domyœlna: BRAK
Okreœla plik konfiguracyjny Samby, który nale¿y odczytaæ zamiast bie¿¹cego. U¿ywana w celu zmiany po³o¿enia pliku konfiguracyjnego lub w celu wybrania pliku
dostosowanego do potrzeb niektórych komputerów lub u¿ytkowników.
copy = nazwa sekcji

dozwolone wartoœci: nazwa istniej¹cej sekcji
wartoœæ domyœlna: BRAK
Kopiuje konfiguracjê uprzednio napotkanego udzia³u w inne miejsce. U¿ywana ze
zmiennymi (%) w celu wybrania konfiguracji dostosowanych do potrzeb ró¿nych
komputerów, architektur i u¿ytkowników. Kopiowana sekcja musi wystêpowaæ
wczeœniej w pliku konfiguracyjnym. Opcje kopiowane maj¹ ni¿szy priorytet ni¿ te,
które jawnie podano w docelowej sekcji.
create mask = liczba ósemkowa

dozwolone wartoœci: bity praw dostêpu w postaci ósemkowej, od 0 do 0777

wartoϾ
domyœlna
: 0744
Nazywana równie¿ create mode. Okreœla najwy¿sze dopuszczalne prawa dostêpu do nowo tworzonych plików (na przyk³ad 0755). Patrz tak¿e directory mask.
Jeœli chcesz ustawiaæ konkretne prawa dostêpu, u¿yj opcji force create mask
i force directory mask. Opcja ta nie ma wp³ywu na katalogi od wersji 1.9.17
Samby, a w wersji 2.0 zmieniono jej wartoœæ domyœln¹.
create mode = liczba ósemkowa

dozwolone wartoœci: bity praw dostêpu w postaci ósemkowej, od 0 do 0777
Synonim opcji create mask.

wartoϾ
domyœlna:
0744

[global] default service = nazwa udzia³u

319

[global] deadtime = minuty

dozwolone wartoœci: minuty
wartoœæ domyœlna: 0
Czas w minutach, po którym nieu¿ywane po³¹czenie zostanie zakoñczone. Zero
oznacza brak limitu czasu. U¿ywana po to, aby klienty niepotrzebnie nie zu¿ywa³y
zasobów serwera. Jeœli z niej skorzystasz, klienty bêd¹ musia³y automatycznie odnawiaæ po³¹czenie po okreœlonym czasie braku aktywnoœci. Patrz tak¿e keepalive.
[global] debug level = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 0
Ustawia poziom rejestrowania. Wartoœci wiêksze lub równe 3 znacznie spowalniaj¹
Sambê. Synonim opcji log level. Zalecana wartoœæ: 1.
[global] debug timestamp = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Umieszcza znacznik czasowy we wszystkich komunikatach zapisywanych w dziennikach Samby. Mo¿esz j¹ wy³¹czyæ, jeœli nie jest przydatna (na przyk³ad podczas
diagnozowania usterek). NowoϾ w Sambie 2.0.
[global] default = name

dozwolone wartoœci: nazwa udzia³u
wartoœæ domyœlna: BRAK
Nazywana tak¿e default service. Nazwa us³ugi (udzia³u), która jest udostêpniana, jeœli ktoœ za¿¹da po³¹czenia z udzia³em, do którego nie ma uprawnieñ, albo
który nie istnieje. Od wersji 1.9.14 œcie¿ka jest ustawiana na podstawie nazwy okreœlonej przez klienta, przy czym wszystkie znaki „_” s¹ zamieniane na „/”, pozwalaj¹c na dostêp do dowolnego katalogu serwera Samby. Stanowczo odradzamy u¿ywanie tej opcji.
default case = wielkoϾ liter

dozwolone wartoœci: LOWER, UPPER
wartoœæ domyœlna: LOWER
Ustawia wielkoœæ liter w nazwach nowo tworzonych plików. LOWER oznacza mieszan¹ wielkoœæ liter, UPPER oznacza same du¿e litery.
[global] default service = nazwa udzia³u

dozwolone wartoœci: nazwa udzia³u
Synonim opcji default.

wartoœæ domyœlna: BRAK

320

Dodatek C: Spis opcji konfiguracyjnych Samby

delete readonly = wartoϾ logiczna

dozwolone wartoœci: NO, YES
wartoœæ domyœlna: NO
Umo¿liwia usuwanie plików przeznaczonych tylko do odczytu. Nie jest to dozwolone w DOS-ie ani Windows, ale normalne w Uniksie, gdzie istniej¹ oddzielne prawa
dostêpu do katalogów. Do u¿ycia z programami typu RCS lub w po³¹czeniu ze
starsz¹ opcj¹ alternate permissions.
delete veto files = wartoϾ logiczna

dozwolone wartoœci: NO, YES
wartoœæ domyœlna: NO
Pozwala na usuwanie katalogów zawieraj¹cych pliki lub podkatalogi, których u¿ytkownik nie widzi ze wzglêdu na ustawienie opcji veto files. Jeœli jest ustawiona
na NO, katalog nie zostanie usuniêty i nadal bêdzie zawiera³ niewidoczne pliki.
deny hosts = lista hostów

dozwolone wartoœci: lista hostów
wartoœæ domyœlna: BRAK
Synonim opcji hosts deny. Okreœla listê komputerów, które nie mog¹ nawi¹zywaæ
po³¹czeñ z serwerem ani korzystaæ z jego udzia³ów.
[global] dfree command = polecenie

dozwolone wartoœci: polecenie pow³oki
wartoœæ domyœlna: ró¿na
Polecenie wykonywane przez serwer, które zwraca iloœæ wolnej przestrzeni dyskowej. Opcja ta nie jest potrzebna, jeœli systemowe polecenie dfree dzia³a poprawnie.
directory = œcie¿ka

dozwolone wartoœci: œcie¿ka
wartoœæ domyœlna: BRAK
Synonim opcji path. Katalog udostêpniany przez udzia³ dyskowy lub wykorzystywany przez udzia³ drukarki. W udziale [homes] ustawiany automatycznie na katalog macierzysty u¿ytkownika, w innych udzia³ach domyœlnie ustawiany na /tmp.
directory mask = liczba ósemkowa

dozwolone wartoœci: bity praw dostêpu w postaci ósemkowej, od 0 do 0777

wartoϾ
domyœlna:
0755
Nazywana równie¿ directory mode. Okreœla najwy¿sze dopuszczalne prawa dostêpu do nowo tworzonych katalogów. Jeœli chcesz ustawiaæ konkretne prawa dostêpu, u¿yj opcji force create mask i force directory mask.

dos filetime resolution = wartoϾ logiczna

321

directory mode = liczba ósemkowa

dozwolone wartoœci: bity praw dostêpu w postaci ósemkowej, od 0 do 0777
Synonim opcji directory mask.

wartoϾ
domyœlna:
0755

[global] dns proxy = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES i opcja wins server jest ustawiona na yes, Samba wyszukuje nazwy w DNS, jeœli nie znajdzie ich w WINS.
[global] domain logons = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Pozwala klientom Windows 95/98 lub NT na logowanie siê w domenie (typu NT).
[global] domain master = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Samba staje siê g³ówn¹ przegl¹dark¹ domeny i – jeœli to mo¿liwe – gromadzi listy
przegl¹dania z ca³ej grupy roboczej lub domeny.
dont descend = lista przecinkowa

dozwolone wartoœci: lista œcie¿ek oddzielonych przecinkami

wartoœæ domyœlna:
BRAK
Nie zezwala na przejœcie do okreœlonych katalogów ani na przegl¹danie ich zawartoœci. Opcja ta u³atwia kontrolowanie przegl¹dania, ale nie zwiêksza bezpieczeñstwa.

dos filetimes = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Pozwala u¿ytkownikowi nie bêd¹cemu w³aœcicielem pliku na zmianê czasu modyfikacji pliku, jeœli ma prawo do zapisu w tym pliku. Patrz tak¿e opcja dos filetime
resolution.
dos filetime resolution = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Ustawia czasy modyfikacji plików w Uniksie zgodnie ze standardami dosowymi
(zaokr¹glone do nastêpnej parzystej sekundy). Zalecana w razie korzystania z Visu-

322

Dodatek C: Spis opcji konfiguracyjnych Samby

al C++ lub dosowego programu make w celu unikniêcia niepotrzebnej rekompilacji
programów. U¿ywana w po³¹czeniu z opcj¹ dos filetimes.
[global] encrypt passwords = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
W³¹cza szyfrowanie hase³ metod¹ Windows NT. Wymaga u¿ycia programu smbpasswd w serwerze Samby.
exec = polecenie

dozwolone wartoœci: polecenie pow³oki
wartoœæ domyœlna: BRAK
Synonim opcji preexec. Polecenie, które nale¿y wykonaæ tu¿ przed po³¹czeniem
u¿ytkownika z udzia³em.
fake directory create times = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Obejœcie usterki w programie nmake Microsoftu. Jeœli jest ustawiona na YES, Samba
bêdzie ustawiaæ takie czasy utworzenia katalogów, aby program nmake nie rekompilowa³ za ka¿dym razem wszystkich plików.
fake oplocks = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli klient zapyta, czy mo¿e zablokowaæ plik i buforowaæ go lokalnie, Samba zawsze wyrazi zgodê, ale w rzeczywistoœci nie za³o¿y blokady na plik. Obecnie stosowana dla dysków przeznaczonych tylko do odczytu, poniewa¿ Samba potrafi ju¿
obs³ugiwaæ prawdziwe blokady oportunistyczne. Patrz tak¿e opcje oplocks i veto
oplock files.
follow symlinks = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, Samba bêdzie pod¹¿a³a za dowi¹zaniami symbolicznymi w udzia³ach plikowych. Jeœli chcesz ograniczyæ dowi¹zania symboliczne tylko do
bie¿¹cego udzia³u dyskowego, u¿yj opcji wide links.
force create mask = liczba ósemkowa

dozwolone wartoœci: liczba ósemkowa od 0 do 0777
wartoœæ domyœlna: 0
Okreœla bity, które bêd¹ sumowane logicznie z prawami dostêpu do nowo tworzonych plików. U¿ywana w po³¹czeniu z opcj¹ create mode.

force create mode = liczba ósemkowa

323

force create mode = liczba ósemkowa

dozwolone wartoœci: liczba ósemkowa od 0 do 0777
Synonim opcji force create mask.

wartoœæ domyœlna: 0

force directory mask = liczba ósemkowa

dozwolone wartoœci: liczba ósemkowa od 0 do 0777
wartoœæ domyœlna: 0
Okreœla bity, które bêd¹ sumowane logicznie z prawami dostêpu do nowo tworzonych katalogów, powoduj¹c ustawienie odpowiednich bitów. U¿ywana w po³¹czeniu z opcj¹ directory mode.
force directory mode = liczba ósemkowa

dozwolone wartoœci: liczba ósemkowa od 0 do 0777
Synonim opcji force directory mask.

wartoœæ domyœlna: 0

force group = grupa uniksowa

dozwolone wartoœci: grupa
wartoœæ domyœlna: BRAK
Ustawia obowi¹zuj¹c¹ nazwê grupy dla u¿ytkowników korzystaj¹cych z udzia³u.
Zastêpuje zwyk³¹ grupê u¿ytkownika.
force user = nazwa

dozwolone wartoœci: nazwa u¿ytkownika
wartoœæ domyœlna: BRAK
Ustawia obowi¹zuj¹c¹ nazwê u¿ytkownika korzystaj¹cego z udzia³u. Nie zalecana.
fstype = ³añcuch

dozwolone wartoœci: NTFS, FAT, Samba
Ustawia typ systemu plików zg³aszany klientom.

wartoœæ domyœlna: NTFS

[global] getwd cache = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Buforuje bie¿¹cy katalog w celu zwiêkszenia wydajnoœci. Zalecana w razie korzystania z opcji wide links.
group = grupa

dozwolone wartoœci: grupa uniksowa
Przestarza³a forma opcji force group.

wartoœæ domyœlna: BRAK

324

Dodatek C: Spis opcji konfiguracyjnych Samby

guest account = u¿ytkownik

dozwolone wartoœci: nazwa u¿ytkownika
wartoœæ domyœlna: BRAK
Okreœla nazwê nieuprzywilejowanego konta uniksowego, które bêdzie wykorzystywane podczas drukowania i udostêpniania udzia³ów oznaczonych opcj¹ guest ok.
guest ok = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, dostêp do tego udzia³u nie wymaga podania has³a. Synonim opcji public.
guest only = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
U¿ytkownik musi korzystaæ z udzia³u jako goœæ. Wymaga ustawienia na yes opcji
guest ok lub public.
hide dot files = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Traktuje wszystkie pliki zaczynaj¹ce siê od kropki tak, jakby mia³y ustawiony dosowy atrybut ukrycia.
hide files = lista ukoœnikowa

dozwolone wartoœci: lista wzorców oddzielonych znakami „/”

wartoœæ domyœlna:
BRAK
Lista nazw plików i katalogów, dla których nale¿y ustawiaæ dosowy atrybut ukrycia. Nazwy mog¹ zawieraæ symbole wieloznaczne ? lub * oraz zmienne %. Patrz tak¿e opcje hide dot files i veto files.
[global] homedir map = nazwa mapy NIS

dozwolone wartoœci: nazwa mapy NIS
wartoœæ domyœlna: auto.home
U¿ywana w po³¹czeniu z opcj¹ nis homedir w celu zlokalizowania macierzystego
katalogu u¿ytkownika w us³udze Sun NIS (nie NIS+).
hosts allow = lista hostów

dozwolone wartoœci: lista nazw hostów
wartoœæ domyœlna: BRAK
Synonim opcji allow hosts. Lista komputerów, które maj¹ dostêp do udzia³u lub
udzia³ów. Jeœli jest pusta (tak jest domyœlnie), z udzia³u mo¿e korzystaæ ka¿dy komputer, który nie widnieje na liœcie hosts deny.

[global] keepalive = liczba

325

hosts deny = lista hostów

dozwolone wartoœci: lista nazw hostów
wartoœæ domyœlna: BRAK
Synonim opcji deny hosts. Lista komputerów, które nie mog¹ ³¹czyæ siê z udzia³em lub udzia³ami.
[global] hosts equiv = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Œcie¿ka do pliku zawieraj¹cego nazwy zaufanych komputerów, które mog¹ logowaæ siê bez podawania has³a. Stanowczo odradzamy jej u¿ycie, poniewa¿ u¿ytkownicy Windows zawsze mog¹ zmieniæ nazwê swojego komputera, a w takiej konfiguracji jest to jedyne zabezpieczenie.
include = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Do³¹cza wskazany plik do pliku smb.conf w miejscu, w którym wpisano tê opcjê.
Opcja ta nie rozpoznaje zmiennych %u (u¿ytkownik), %P (katalog g³ówny bie¿¹cego
udzia³u) ani %S (nazwa bie¿¹cego udzia³u), poniewa¿ w momencie wczytywania
pliku zmienne te nie s¹ jeszcze ustawione.
[global] interfaces = lista interfejsów

dozwolone wartoœci: adresy IP oddzielone spacjami
wartoœæ domyœlna: BRAK
Ustawia interfejsy, przez które Samba bêdzie odpowiadaæ na ¿¹dania. Domyœlnie
jest to tylko podstawowy interfejs komputera. Zalecamy u¿ycie tej opcji w komputerach pod³¹czonych do wielu sieci, poniewa¿ zapobiega ona b³êdnym przypisaniom
adresów i masek sieciowych.
invalid users = lista u¿ytkowników

dozwolone wartoœci: lista u¿ytkowników
wartoœæ domyœlna: BRAK
Lista u¿ytkowników, którzy nie mog¹ korzystaæ z udzia³u lub udzia³ów.
[global] keepalive = liczba

dozwolone wartoœci: liczba sekund
wartoœæ domyœlna: 0
Liczba sekund miêdzy kolejnymi kontrolami awarii klienta. Domyœlna wartoœæ 0
sprawia, ¿e kontrole takie nie s¹ przeprowadzane. Zalecamy jej u¿ycie, jeœli chcesz
przeprowadzaæ kontrolê czêœciej ni¿ co 4 godziny. Rozs¹dn¹ wartoœci¹ jest 3600 (10
minut). Mo¿na te¿ kontrolowaæ klienty w inny sposób – patrz opcja socket
options.

326

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] kernel oplocks = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: ustawiana automatycznie
Przerywa blokadê, kiedy uniksowy proces zamierza skorzystaæ z zablokowanego
pliku, zapobiegaj¹c tym samym uszkodzeniu pliku. Ustawiana na YES w systemach
operacyjnych, które to umo¿liwiaj¹, w przeciwnym wypadku ustawiana na NO. Nowoœæ w Sambie 2.0, obs³ugiwana w systemie SGI, a niebawem tak¿e w Linuksie
i BSD. Nie nale¿y jej zmieniaæ.
[global] ldap filters = ró¿ne wartoœci [global] ldap root = ró¿ne wartoœci [global] ldap server = ró¿ne wartoœci [global] ldap suffix = ró¿ne wartoœci

dozwolone wartoœci: ró¿ne
wartoœæ domyœlna: ró¿na
Opcje zaczynaj¹ce siê od s³owa ldap steruj¹ u¿yciem rozproszonego katalogu/bazy
danych Lightweight Directory Access Protocol (LDAP), zawieraj¹cego informacje
o u¿ytkownikach i nazwach hostów. Opcje te w Sambie 2.0 s¹ eksperymentalne i zarezerwowane do przysz³ego u¿ycia.
[global] load printers = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna = YES
Umieszcza na liœcie przegl¹dania wszystkie drukarki wymienione w systemowym
pliku parametrów drukarek. U¿ywa opcji konfiguracyjnych z sekcji [printers].
[global] local master = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Staje do wyborów na g³ówn¹ przegl¹darkê lokaln¹. Patrz tak¿e domain master
i os level.
[global] lm announce = wartoϾ

dozwolone wartoœci: AUTO, YES, NO
wartoœæ domyœlna: AUTO
Generuje rozg³oszenia SMB typu OS/2 z czêstotliwoœci¹ okreœlon¹ opcj¹ lm interval. Wartoœæ YES lub NO w³¹cza lub wy³¹cza je bezwarunkowo. Opcja AUTO
sprawia, ¿e serwer Samby czeka na og³oszenie LAN Managera od innego komputera, zanim sam je wyœle. Opcja ta jest niezbêdna, aby umo¿liwiæ przegl¹danie klientom OS/2.
[global] lm interval = sekundy

dozwolone wartoœci: liczba
wartoœæ domyœlna: 60
Ustawia okres (w sekundach) miêdzy og³oszeniami SMB u¿ywanymi w OS/2.

[global] logon path = œcie¿ka

327

[global] lock directory = œcie¿ka

dozwolone wartoœci: œcie¿ka
wartoœæ domyœlna: /usr/local/samba/var/locks
Okreœla katalog, w którym bêd¹ przechowywane pliki blokad. Katalog ten musi
umo¿liwiaæ zapis Sambie, a odczyt wszystkim u¿ytkownikom.
locking = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Stosuje blokady plików. Jeœli jest ustawiona na NO, Samba bêdzie akceptowa³a
¿¹dania przyznania blokady, ale w rzeczywistoœci nie bêdzie blokowa³a zasobów, co
zaleca siê tylko dla systemów plików przeznaczonych tylko do odczytu.
[global] log file = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: ró¿na
Okreœla nazwê i po³o¿enie pliku dziennika. Rozpoznaje wszystkie zmienne %.
[global] log level = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 0
Synonim opcji debug level. Okreœla poziom rejestrowania. Wartoœci 3 i wiêksze
zauwa¿alnie spowalniaj¹ system.
[global] logon drive = stacja

dozwolone wartoœci: dosowa nazwa stacji
wartoœæ domyœlna: BRAK
Ustawia nazwê stacji, w której przechowywany jest katalog logowania (tylko dla
klientów Windows NT).
[global] logon home = œcie¿ka

dozwolone wartoœci: uniksowa œcie¿ka
wartoœæ domyœlna: \\%N\%U
Okreœla katalog macierzysty u¿ytkownika Windows 95/98 lub NT Workstation. Pozwala na u¿ycie polecenia NET USE H:/HOME z linii zg³oszenia.
[global] logon path = œcie¿ka

dozwolone wartoœci: œcie¿ka Windows
wartoœæ domyœlna: \\%N\%U\profile
Okreœla œcie¿kê do katalogu profili Windows. Katalog ten zawiera pliki USER.MAN
i USER.DAT oraz foldery pulpitu Windows 95, menu Start, Otoczenia sieciowego
i programów.

328

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] logon script = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Ustawia œcie¿kê wzglêdem udzia³u [netlogon] do skryptu DOS-a/Windows NT,
który jest wykonywany w kliencie podczas logowania. Rozpoznaje zmienne %.
lppause command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie uniksowe wraz z pe³n¹ œcie¿k¹

wartoœæ domyœlna:
ró¿na
Okreœla polecenie, które wstrzymuje zlecenie wydruku. Rozpoznaje zmienne %p
(nazwa drukarki) oraz %j (numer zadania).
lpresume command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie uniksowe wraz z pe³n¹ œcie¿k¹

wartoœæ domyœlna:
ró¿na
Okreœla polecenie, które wznawia zlecenie wydruku. Rozpoznaje zmienne %p (nazwa drukarki) oraz %j (numer zadania).
[global] lpq cache time = sekundy

dozwolone wartoœci: liczba sekund
wartoœæ domyœlna: 10
Okreœla, jak d³ugo nale¿y buforowaæ status kolejki wydruku uzyskany za pomoc¹
polecenia lpq.
lpq command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie uniksowe wraz z pe³n¹ œcie¿k¹

wartoœæ domyœlna:
ró¿na
Okreœla polecenie, które zwraca status drukarki. Zwykle jest inicjowana na wartoœæ
domyœln¹ przez opcjê printing. Rozpoznaje zmienne %p (nazwa drukarki).
lprm command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie uniksowe wraz z pe³n¹ œcie¿k¹

wartoœæ domyœlna:
ró¿na
Okreœla polecenie, które usuwa zadanie wydruku. Zwykle jest inicjowana na wartoœæ domyœln¹ przez opcjê printing. Rozpoznaje zmienne %p (nazwa drukarki)
oraz %j (numer zadania).

[global] mangled stack = liczba

329

machine password timeout = sekundy

dozwolone wartoœci: liczba sekund
wartoœæ domyœlna: 604 800
Ustawia okres miêdzy zmianami has³a komputera w domenie Windows NT. Wartoœæ domyœlna to 1 tydzieñ, czyli 604 800 sekund.
magic output = œcie¿ka do pliku

dozwolone wartoœci: uniksowa œcie¿ka do pliku
wartoœæ domyœlna: skrypt.out
Okreœla plik wyjœciowy dla niezalecanej opcji magic scripts. Domyœlnie jest to
nazwa skryptu z rozszerzeniem .out.
magic script = œcie¿ka do pliku

dozwolone wartoœci: uniksowa œcie¿ka do pliku

wartoœæ domyœlna: BRAK

Ustawia nazwê pliku, który zostanie wykonany przez pow³okê po zamkniêciu pliku
przez klienta, dziêki czemu klienty mog¹ uruchamiaæ polecenia w serwerze.
mangle case = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Przekszta³ca nazwê pliku, jeœli wystêpuj¹ w niej litery ró¿nej wielkoœci.
mangled map = lista odwzorowañ

dozwolone wartoœci: lista par „z nazwy – na nazwê”
wartoœæ domyœlna: BRAK
Okreœla nazwy, które powinny byæ odwzorowywane (na przyk³ad .html na .htm).
mangled names = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Nakazuje Sambie przekszta³caæ nazwy zbyt d³ugie lub zawieraj¹ce niedozwolone
znaki na dosowy format 8.3.
mangling char = znak

dozwolone wartoœci: znak
wartoœæ domyœlna: ~
Ustawia znak, który Samba wykorzystuje w przekszta³canych nazwach.
[global] mangled stack = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 50
Okreœla rozmiar bufora niedawno przekszta³conych nazw plików.

330

Dodatek C: Spis opcji konfiguracyjnych Samby

map aliasname = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Wskazuje plik, który zawiera pary „grupa uniksowa – grupa NT”, po jednej na jedn¹
liniê. Plik ten odwzorowuje aliasy Windows NT na uniksowe nazwy grup. Patrz tak¿e opcje username map i map groupname. Wprowadzona w Sambie 2.0.
map archive = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, Samba ustawia bit wykonywalnoœci dla w³aœciciela
(0100) w uniksowym pliku, jeœli ustawiony jest dosowy bit „archiwalny”. Zalecamy
u¿ycie tej opcji; jeœli z niej korzystasz, maska create mask musi zawieraæ bit 0100.
map hidden = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba ustawia bit wykonywalnoœci dla pozosta³ych
u¿ytkowników (0001) w uniksowym pliku, jeœli ustawiony jest dosowy bit „ukryty”.
Jeœli korzystasz z tej opcji, maska create mask musi zawieraæ bit 0001.
map groupname = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Wskazuje plik, który zawiera pary „grupa uniksowa – grupa NT”, po jednej na jedn¹
liniê. Plik ten odwzorowuje nazwy grup Windows NT na uniksowe nazwy grup.
Patrz tak¿e opcje username map i map aliasname. Wprowadzona w Sambie 2.0.
map system = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba ustawia bit wykonywalnoœci dla grupy (0010)
w uniksowym pliku, jeœli ustawiony jest dosowy bit „systemowy”. Jeœli korzystasz
z tej opcji, maska create mask musi zawieraæ bit 0010.
max connections = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 0 (nieskoñczenie wiele)
Okreœla maksymaln¹ liczbê po³¹czeñ z udzia³em dla ka¿dego komputera klienckiego.
[global] max disk size = liczba

dozwolone wartoœci: rozmiar w MB
wartoœæ domyœlna: 0 (bez zmian)
Ustawia maksymalny rozmiar dysku, jaki nale¿y zwracaæ klientom. Niektóre klienty i aplikacje b³êdnie interpretuj¹ du¿e rozmiary dysku.

[global] max xmit = bajty

331

[global] max log size = liczba

dozwolone wartoœci: rozmiar w KB
wartoœæ domyœlna: 5000
Okreœla próg (w kilobajtach), po przekroczeniu którego Samba utworzy nowy plik
dziennika. Bie¿¹cy plik dziennika otrzyma rozszerzenie .old, zastêpuj¹c istniej¹cy
plik o takiej nazwie.
[global] max mux = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 50
Okreœla liczbê jednoczesnych operacji, które mog¹ wykonywaæ klienty Samby. Nie
zmieniaæ.
[global] max packets = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: N/D
Synonim opcji packet size. Przestarza³a od wersji 1.7 Samby. Zamiast niej nale¿y
u¿yæ opcji max xmit.
[global] max open files = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 10 000
Ogranicza liczbê plików, które proces Samby bêdzie utrzymywa³ w stanie otwartym.
Samba pozwala na ustawienie tej wartoœci poni¿ej uniksowego limitu. Opcjê tê wprowadzono w Sambie 2.0 w celu obejœcia pewnego problemu. Nie nale¿y jej zmieniaæ.
[global] max ttl = sekundy

dozwolone wartoœci: czas w sekundach
wartoœæ domyœlna: 14 400 (4 godziny)
Ustawia czas, przez który wyszukane nazwy NetBIOS-owe s¹ przechowywane w
buforze. Nie nale¿y zmieniaæ tej opcji.
[global] max wins ttl = sekundy

dozwolone wartoœci: czas w sekundach
wartoœæ domyœlna: 259 200 (3 dni)
Ogranicza czas wa¿noœci nazwy NetBIOS-owej w buforze WINS procesu nmbd. Nie
nale¿y zmieniaæ tej opcji.
[global] max xmit = bajty

dozwolone wartoœci: rozmiar w bajtach
wartoœæ domyœlna: 65 535
Okreœla maksymalny rozmiar pakietów, który bêdzie negocjowany przez Sambê. Jest
to parametr s³u¿¹cy do optymalizowania wydajnoœci wolnych ³¹czy i korygowania
usterek w starszych klientach. Odradzamy u¿ywanie wartoœci mniejszych ni¿ 2048.

332

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] message command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki
wartoœæ domyœlna: BRAK
Okreœla polecenie, które nale¿y wykonaæ w serwerze po odebraniu od klienta komunikatu WinPopup. Polecenie musi koñczyæ siê znakiem & , aby natychmiast zwraca³o
sterowanie. Rozpoznaje wszystkie zmienne, z wyj¹tkiem %u (u¿ytkownik), oraz dodatkowe zmienne: %s (nazwa pliku z treœci¹ komunikatu), %t (komputer docelowy)
oraz %f (nadawca komunikatu).
min print space = kilobajty

dozwolone wartoœci: przestrzeñ w KB
wartoœæ domyœlna: 0 (bez ograniczeñ)
Okreœla minimaln¹ iloœæ wolnej przestrzeni buforowej koniecznej do przyjêcia zlecenia wydruku.
[global] min wins ttl = sekundy

dozwolone wartoœci: czas w sekundach
wartoœæ domyœlna: 21 600 (6 godzin)
Ustawia minimalny czas, przez który wyszukane nazwy NetBIOS-owe s¹ przechowywane w buforze. Nie nale¿y zmieniaæ tej opcji.
name resolve order = lista

dozwolone wartoœci: lista s³ów lmhosts, wins, hosts i bcast

wartoœæ domyœlna:
lmhosts wins hosts bcast
Okreœla kolejnoœæ wyszukiwania podczas prób odwzorowania nazwy na adres IP.
Parametr hosts powoduje przeprowadzenie wyszukiwania za pomoc¹ zwyk³ych
mechanizmów serwera: /etc/hosts, DNS, NIS lub ich kombinacji. Wprowadzona
w wersji 1.9.18p4 Samby.
[global] netbios aliases = lista

dozwolone wartoœci: lista nazw NetBIOS-owych
wartoœæ domyœlna: BRAK
Okreœla dodatkowe nazwy NetBIOS-owe, które serwer Samby bêdzie og³asza³ jako
w³asne.
netbios name = nazwa hosta

dozwolone wartoœci: nazwa hosta
wartoœæ domyœlna: ró¿na
Okreœla nazwê NetBIOS-ow¹ u¿ywan¹ przez serwer lub podstawow¹ nazwê serwera, jeœli istniej¹ aliasy NetBIOS-owe.

[global] null passwords = wartoϾ logiczna

333

[global] networkstation user login = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Gdy jest ustawiona na NO, klienty nie bêd¹ przeprowadza³y pe³nego logowania, jeœli opcja security jest ustawiona na server. Opcja ta (wprowadzona w Sambie
1.9.18p3) s³u¿y³a do tymczasowego obejœcia usterki w relacjach zaufania miêdzy domenami NT. W Sambie 1.9.18p10 wprowadzono automatyczn¹ korekcjê, wiêc parametr ten mo¿na usun¹æ.
[global] nis homedir = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, nazwa serwera z katalogiem macierzystym u¿ytkownika zostanie wyszukana w mapie NIS okreœlonej opcj¹ homedir map i zwrócona
klientowi. Klient skontaktuje siê nastêpnie z tym serwerem i spróbuje po³¹czyæ siê
z jego udzia³em. Dziêki temu mo¿na unikn¹æ montowania katalogu z komputera,
który w rzeczywistoœci nie ma potrzebnego dysku. Komputer z katalogami macierzystymi musi byæ serwerem SMB.
[global] nt pipe support = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Umo¿liwia wy³¹czenie obs³ugi potoków specyficznych dla Windows NT. Opcja ta
jest wykorzystywana podczas rozwijania Samby oraz mierzenia jej wydajnoœci
i w przysz³oœci mo¿e zostaæ usuniêta. Nie nale¿y jej zmieniaæ.
[global] nt smb support = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, umo¿liwia korzystanie z komunikatów SMB specyficznych dla Windows NT. Opcja ta jest wykorzystywana podczas rozwijania Samby
oraz mierzenia jej wydajnoœci i w przysz³oœci mo¿e zostaæ usuniêta. Nie nale¿y jej
zmieniaæ.
[global] null passwords = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, umo¿liwia dostêp do kont z pustymi has³ami. Stanowczo
odradzamy jej u¿ycie.

334

Dodatek C: Spis opcji konfiguracyjnych Samby

ole locking compatibility = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, zakresy blokad bêd¹ odwzorowywane tak, aby unikn¹æ
b³êdów w uniksowych blokadach, kiedy Windows u¿ywa blokad powy¿ej 32 KB.
Nie nale¿y zmieniaæ tej opcji. Wprowadzona w wersji 1.9.18p10 Samby.
only guest = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Synonim opcji guest only. Wymusza logowanie siê na koncie goœcinnym.
only user = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Wymaga, aby u¿ytkownik udzia³u znajdowa³ siê na liœcie username =.
oplocks = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, umo¿liwia lokalne buforowanie oportunistycznie zablokowanych plików. Opcja ta jest zalecana, poniewa¿ zwiêksza wydajnoœæ o prawie
30%. Patrz tak¿e opcje fake oplocks i veto oplock files.
[global] os level = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 0
Ustawia pierwszeñstwo serwera w wyborach na g³ówn¹ przegl¹darkê. U¿ywana w
po³¹czeniu z opcjami domain master i local master. Mo¿esz ustawiæ wartoœæ
wy¿sz¹ ni¿ poziom rywalizuj¹cego systemu operacyjnego, jeœli chcesz, ¿eby Samba
wygra³a wybory. Windows for Workgroups i Windows 95 u¿ywaj¹ wartoœci 1, Windows NT Workstation – 17, a Windows NT Server – 33.
[global] packet size = bajty

dozwolone wartoœci: liczba bajtów
wartoœæ domyœlna: 65 535
Przestarza³a. Synonim nie zalecanej opcji max packet. Patrz max xmit.
[global] passwd chat debug = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Rejestruje ca³¹ wymianê komunikatów przy zmianie has³a z poziomem rejestrowania równym 100. U¿ywana tylko do celów diagnostycznych. Wprowadzona w Sambie 1.9.18p5.

path = œcie¿ka

335

[global] passwd chat = sekwencja poleceñ

dozwolone wartoœci: polecenia uniksowego serwera

wartoœæ domyœlna:
wartoϾ wkompilowana
Okreœla polecenia s³u¿¹ce do zmiany has³a w serwerze. Rozpoznaje zmienne %o
(stare has³o) oraz %n (nowe has³o) i pozwala na stosowanie znaków specjalnych: \r,
\n, \t i \s (spacja).

[global] passwd program = program

dozwolone wartoœci: program w uniksowym serwerze
wartoœæ domyœlna: BRAK
Okreœla polecenie s³u¿¹ce do zmiany has³a u¿ytkownika. Polecenie to bêdzie wykonane z przywilejami roota. Rozpoznaje zmienn¹ %u (u¿ytkownik).
[global] password level = liczba

dozwolone wartoœci: liczba

wartoœæ domyœlna: 0

Okreœla liczbê du¿ych liter w permutacjach u¿ywanych podczas dopasowywania has³a.
U¿ywana do obs³ugi klientów, które ustawiaj¹ wszystkie litery has³a na jednakow¹
wielkoœæ, zanim przeœl¹ je do serwera Samby. Powoduje ponawianie prób zalogowania
z has³ami o ró¿nej wielkoœci liter, co mo¿e doprowadziæ do zablokowania konta.
[global] password server = nazwy NetBIOS-owe

dozwolone wartoœci: lista nazw NetBIOS-owych
wartoœæ domyœlna: BRAK
Lista serwerów SMB, które bêd¹ weryfikowaæ has³a. U¿ywana z serwerem hase³ NT
(podstawowym lub zapasowym kontrolerem domeny) i w po³¹czeniu z opcjami
konfiguracyjnymi security = server lub security = domain. Uwaga: serwer
hase³ NT musi zezwalaæ na logowanie siê serwera Samby.
panic action = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz
wartoœæ domyœlna: BRAK
z pe³n¹ œcie¿k¹
Ustawia polecenie wykonywane podczas awarii Samby. Twórcy i testerzy Samby
u¿ywaj¹ polecenia /usr/bin/X11/xterm -display :0 -e gdb /samba/bin/smbd %d.
path = œcie¿ka

dozwolone wartoœci: œcie¿ka
wartoœæ domyœlna: ró¿na
Katalog udostêpniany przez udzia³ dyskowy lub wykorzystywany przez udzia³
drukarki. W udziale [homes] ustawiany automatycznie na katalog macierzysty
u¿ytkownika, w innych udzia³ach domyœlnie ustawiany na /tmp. Rozpoznaje zmienne %u (u¿ytkownik) oraz %m (komputer).

336

Dodatek C: Spis opcji konfiguracyjnych Samby

postexec = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz

wartoœæ domyœlna: BRAK
z pe³n¹ œcie¿k¹
Okreœla polecenie, które zostanie wykonane z przywilejami u¿ytkownika, kiedy ten
od³¹czy siê do udzia³u. Patrz tak¿e opcje preexec, root preexec i root postexec.
postscript = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Traktuje drukarkê jako postscriptow¹ (aby unikn¹æ b³êdu Windows), wstawiaj¹c
znaki %! w pierwszej linii wydruku. Dzia³a tylko wtedy, gdy drukarka rzeczywiœcie
obs³uguje PostScript.
preexec = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz
wartoœæ domyœlna: BRAK
z pe³n¹ œcie¿k¹
Okreœla polecenie, które zostanie wykonane z przywilejami u¿ytkownika, zanim ten
pod³¹czy siê od udzia³u. Patrz tak¿e opcje postexec, root preexec i root postexec.
[global] preferred master = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba bêdzie preferowan¹ przegl¹dark¹ g³ówn¹. W takim przypadku po w³¹czeniu siê do sieci Samba zapocz¹tkuje wybory przegl¹darki.
preload = lista udzia³ów

dozwolone wartoœci: lista us³ug
wartoœæ domyœlna: BRAK
Synonim opcji auto services. Okreœla listê udzia³ów, które zawsze bêd¹ pojawiaæ siê na listach przegl¹dania.
preserve case = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, nazwy plików bêd¹ sk³adaæ siê z liter o takiej wielkoœci,
jak¹ poda³ klient. W przeciwnym wypadku litery bêd¹ mia³y wielkoœæ okreœlon¹
opcj¹ default case. Patrz tak¿e opcja short preserve case.

[global] printer driver file = œcie¿ka do pliku

337

print command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz
wartoœæ domyœlna: ró¿na
z pe³n¹ œcie¿k¹
Okreœla polecenie, które przesy³a buforowany plik do drukarki. Zwykle inicjowana
na wartoœæ domyœln¹ za pomoc¹ opcji printing. Opcja ta rozpoznaje zmienne %p
(nazwa drukarki), %s (plik buforowy) oraz %f (plik buforowy wraz ze œcie¿k¹
wzglêdn¹). Polecenie bêd¹ce wartoœci¹ tej opcji musi usuwaæ plik buforowy.
print ok = wartoϾ logiczna

dozwolone wartoœci: YES, NO
Synonim opcji printable.

wartoœæ domyœlna: NO

printable = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Okreœla, ¿e dany udzia³ jest udzia³em drukarki. Wymagana we wszystkich
udzia³ach drukarek.
[global] printcap name = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: /etc/printcap
Okreœla œcie¿kê do pliku z parametrami drukarek, u¿ywanego przez udzia³ [printers]. Wartoœæ domyœlna zmienia siê na /etc/qconfig w Uniksie AIX i lpstat w Uniksie typu System V.
printer = nazwa

dozwolone wartoœci: nazwa drukarki
Ustawia nazwê uniksowej drukarki.

wartoœæ domyœlna: lp

printer driver = nazwa sterownika drukarki

dozwolone wartoœci: nazwa sterownika drukarki
wartoœæ domyœlna: BRAK
w postaci u¿ywanej przez Windows
Ustawia ³añcuch, który jest przekazywany klientowi Windows, kiedy ten pyta, ja kiego sterownika nale¿y u¿yæ w celu przygotowania pliku do wydruku. Wielkoœæ liter w tym ³añcuchu jest istotna.
[global] printer driver file = œcie¿ka do pliku

dozwolone wartoœci: uniksowa œcie¿ka do pliku

wartoœæ domyœlna:
samba/lib/printers.def
Okreœla po³o¿enie pliku msprint.def, u¿ywanego przez Windows 95/98.

338

Dodatek C: Spis opcji konfiguracyjnych Samby

printer driver location = œcie¿ka sieciowa

dozwolone wartoœci: œcie¿ka sieciowa Windows

wartoœæ domyœlna:
\\serwer\PRINTER$
Okreœla po³o¿enie sterownika drukarki. Wartoœci¹ tej opcji powinien byæ katalog
w udziale, który przechowuje pliki sterowników drukarek.

printer name = nazwa

dozwolone wartoœci: nazwa drukarki
Synonim opcji printer.

wartoœæ domyœlna: BRAK

printing = typ

dozwolone wartoœci: bsd, sysv, hpux, aix, qnx, plp, lprng
wartoœæ domyœlna: bsd
Okreœla typ drukowania, którego nale¿y u¿yæ zamiast wkompilowanego typu. Powoduje wstêpne ustawienie wartoœci opcji print command, lpq command i lprm
command.
[global] protocol = protokó³

dozwolone wartoœci: NT1, LANMAN2, LANMAN1,
wartoœæ domyœlna: NT1
COREPLUS, CORE
Ustawia wersjê protoko³u SMB na jedn¹ z dopuszczalnych wartoœci. Stanowczo odradzamy zmienianie tej opcji. Istnieje tylko dla zapewnienia wstecznej zgodnoœci
z niektórymi starszymi klientami.
public = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, dostêp do tego udzia³u nie wymaga podania has³a. Synonim opcji guest ok.
queuepause command = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie Uniksa
wartoœæ domyœlna: ró¿na
Okreœla polecenie, które zatrzymuje przetwarzanie kolejki wydruku. Zwykle inicjowana przez opcjê printing. Wprowadzona w Sambie 1.9.18p10.
queueresume command = /œcie¿ka bezwzglêdna/polecenie

dozwolone wartoœci: polecenie Uniksa
wartoœæ domyœlna: ró¿na
Okreœla polecenie, które wznawia przetwarzanie kolejki wydruku. Zwykle inicjowana przez opcjê printing. Wprowadzona w Sambie 1.9.18p10.

[global] remote announce = lista zdalna

339

read bmpx = wartoϾ logiczna

dozwolone wartoœci: YES, NO
Przestarza³a. Nie zmieniaæ.

wartoœæ domyœlna: NO

read list = lista przecinkowa

dozwolone wartoœci: lista u¿ytkowników
wartoœæ domyœlna: BRAK
Okreœla listê u¿ytkowników, którzy do zapisywalnego udzia³u maj¹ dostêp w trybie
tylko do odczytu.
read only = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Okreœla, ¿e udzia³ jest przeznaczony tylko do odczytu. Antonim opcji writable
i write ok.
[global] read prediction = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Odczytuje z wyprzedzeniem dane z plików przeznaczonych tylko do odczytu. Przestarza³a, usuniêta z Samby 2.0.
[global] read raw = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Umo¿liwia wykonywanie szybkich, strumieniowych odczytów przez TCP przy wykorzystaniu buforów o rozmiarze 64 KB. Zalecana.
[global] read size = bajty

dozwolone wartoœci: rozmiar w bajtach
wartoœæ domyœlna: 2048
Ustawia opcjê buforowania dla serwerów, w których prêdkoœæ dysku nie odpowiada prêdkoœci sieci. Wymaga eksperymentowania. Nie nale¿y jej zmieniaæ. Nie po winna przekraczaæ 65 536.
[global] remote announce = lista zdalna

dozwolone wartoœci: lista zdalnych adresów
wartoœæ domyœlna: BRAK
Dodaje grupy robocze do listy, na której serwer Samby bêdzie siê og³aszaæ. Definiowana w postaci par: adres IP/grupa robocza (na przyk³ad 192.168.220.215/PROSTA),
przy czym ró¿ne grupy s¹ oddzielone spacjami. Umo¿liwia stosowanie ukierunkowanych rozg³oszeñ. Serwer bêdzie siê pojawia³ na listach przegl¹dania tych grup roboczych. Nie wymaga u¿ycia WINS.

340

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] remote browse sync = lista adresów

dozwolone wartoœci: lista adresów IP
wartoœæ domyœlna: BRAK
W³¹cza synchronizacjê list przegl¹dania z innymi lokalnymi przegl¹darkami (dzia³a
tylko miêdzy serwerami Samby). Mo¿na podaæ adres konkretnego komputera albo
adres rozg³oszeniowy (ukierunkowany, to jest ###.###.###.255). W tym drugim
przypadku Samba spróbuje wyszukaæ g³ówn¹ przegl¹darkê lokaln¹.
revalidate = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, u¿ytkownicy musz¹ ponownie wprowadzaæ has³o nawet po pomyœlnym wstêpnym zalogowaniu siê w udziale.
[global] root = œcie¿ka

dozwolone wartoœci: œcie¿ka uniksowa
Synonim opcji root directory.

wartoœæ domyœlna: BRAK

[global] root dir = œcie¿ka

dozwolone wartoœci: œcie¿ka uniksowa
Synonim opcji root directory.

wartoœæ domyœlna: BRAK

[global] root directory = œcie¿ka

dozwolone wartoœci: œcie¿ka uniksowa
wartoœæ domyœlna: BRAK
Okreœla katalog, który za pomoc¹ funkcji chroot() zostanie zmieniony w katalog
g³ówny przed uruchomieniem demonów. Uniemo¿liwia to jakikolwiek dostêp do
katalogów spoza tego drzewa. Patrz tak¿e opcja wide links.
root postexec = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz
wartoœæ domyœlna: BRAK
z pe³n¹ œcie¿k¹
Okreœla polecenie, które zostanie wykonane z przywilejami roota, kiedy u¿ytkownik od³¹czy siê od udzia³u. Patrz tak¿e opcje preexec, postexec i root preexec.
Wykonywane po poleceniu postexec. U¿ywaæ z zachowaniem niezbêdnej ostro¿noœci.

shared mem size = bajty

341

root preexec = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie pow³oki Uniksa wraz
wartoœæ domyœlna: BRAK
z pe³n¹ œcie¿k¹
Okreœla polecenie, które zostanie wykonane z przywilejami roota, zanim u¿ytkownik po³¹czy siê z udzia³em. Patrz tak¿e opcje preexec, postexec i root postexec. Wykonywane przed poleceniem preexec. U¿ywaæ z zachowaniem nie zbêdnej ostro¿noœci.
[global] security = wartoϾ

dozwolone wartoœci: share, user, server, domain

wartoœæ domyœlna:
share w Sambie 1.0,
user w Sambie 2.0
Okreœla metodê zabezpieczania zasobów. Jeœli security = share, us³ugi maj¹
wspólne has³o, jedno dla wszystkich u¿ytkowników. Jeœli security = user, u¿ytkownicy maj¹ (uniksowe) konta i has³a. Jeœli security = server, u¿ytkownicy
maj¹ konta i has³a, a uwierzytelnia ich inny komputer. Jeœli security = domain,
przeprowadza siê pe³ne uwierzytelnianie domenowe. Patrz tak¿e opcje password
server i encrypted passwords.
[global] server string = tekst

dozwolone wartoœci: ³añcuch
wartoœæ domyœlna: Samba %v (w wersji 2.0)
Ustawia nazwê, która pojawia siê obok serwera na listach przegl¹dania. Rozpoznaje
zmienn¹ %v (numer wersji Samby) oraz %h (nazwa hosta).
set directory = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Pozwala klientom DEC Pathworks na u¿ywanie polecenia set dir.
[global] shared file entries = liczba

dozwolone wartoœci: liczba
Przestarza³a, nie u¿ywaæ.

wartoœæ domyœlna: 113

shared mem size = bajty

dozwolone wartoœci: rozmiar w bajtach
wartoœæ domyœlna: 102 400
Jeœli Samba zosta³a skompilowana z opcj¹ FAST_SHARE_MODES (mapowanie plików w pamiêci), ustawia rozmiar pamiêci dzielonej. Nie nale¿y zmieniaæ tej opcji.

342

Dodatek C: Spis opcji konfiguracyjnych Samby

[global] smb passwd file = œcie¿ka do pliku

dozwolone wartoœci: uniksowa œcie¿ka do pliku

wartoœæ domyœlna:
/usr/local/samba/private/smbpasswd
Zastêpuje wkompilowan¹ œcie¿kê do pliku hase³, jeœli opcja encrypted pas swords jest ustawiona na yes.

[global] smbrun = /œcie¿ka_bezwzglêdna/polecenie

dozwolone wartoœci: polecenie smbrun
wartoœæ domyœlna: wartoœæ wkompilowana
Zastêpuje wkompilowan¹ œcie¿kê do pliku binarnego smbrun. Nie nale¿y zmieniaæ
tej opcji.
share modes = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, Samba obs³uguje u¿ywane w Windows blokady ca³ych
plików (w trybie odmowy).
short preserve case = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, nazwy plików w formacie 8.3 bêd¹ sk³adaæ siê z liter o takiej wielkoœci, jak¹ poda³ klient. W przeciwnym wypadku litery bêd¹ mia³y wielkoœæ
okreœlon¹ opcj¹ default case. Patrz tak¿e opcja preserve case.
[global] socket address = adres IP

dozwolone wartoœci: adres IP
wartoœæ domyœlna: BRAK
Okreœla adres, pod którym nale¿y czekaæ na po³¹czenia. Domyœlnie Samba czeka na
po³¹czenia pod wszystkimi adresami. U¿ywana do obs³ugi wielu wirtualnych interfejsów w jednym serwerze. Stanowczo odradzamy jej u¿ycie.
[global] socket options = lista opcji gniazd

dozwolone wartoœci: lista
wartoœæ domyœlna: BRAK
Ustawia opcje gniazd specyficzne dla systemu operacyjnego. Opcja SO_KEEPALIVE
powoduje, ¿e protokó³ TCP co cztery godziny sprawdza, czy klient jest wci¹¿ do stêpny. Opcja TCP_NODELAY powoduje wysy³anie nawet niewielkich pakietów w celu zmniejszenia zw³oki. Te dwie opcje s¹ zalecane, jeœli obs³uguje je system
operacyjny. Wiêcej informacji znajdziesz w dodatku B, Optymalizowanie wydajnoœci
Samby.

[global] syslog only = wartoϾ logiczna

343

[global] status = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, po³¹czenia s¹ rejestrowane w pliku (lub pamiêci dzielonej) dostêpnym dla polecenia smbstatus.
strict sync = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba bêdzie synchronizowaæ bufory z dyskiem za ka¿dym razem, kiedy klient przyœle pakiet z ustawionym bitem synchronizacji. Jeœli
jest ustawiona na NO, Samba zapisze dane dopiero po wype³nieniu buforów. Domyœlnie ustawiona na NO, poniewa¿ Eksplorator Windows 98 (b³êdnie) ustawia ten bit
we wszystkich pakietach. Wprowadzona w Sambie 1.9.18p10.
strict locking = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba sprawdza obecnoœæ blokad przy ka¿dym dostêpie do pliku, a nie tylko na ¿¹danie lub podczas otwierania pliku. Nie zalecana.

[global] strip dot = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Usuwa koñcowe kropki z nazw pliku. Zamiast niej nale¿y u¿ywaæ opcji mangled
map.
[global] syslog = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 1
Ustawia poziom komunikatów Samby wysy³anych do dziennika systemowego. Wy¿sze poziomy s¹ bardziej szczegó³owe. Rejestrowanie komunikatów musi byæ tak¿e
dozwolone przez plik syslog.conf.
[global] syslog only = wartoϾ logiczna

dozwolone wartoœci: YES, NO

wartoœæ domyœlna: NO

Jeœli jest ustawiona na YES, komunikaty s¹ rejestrowane tylko w dzienniku systemowym, a nie w standardowych plikach dziennika Samby.

344

Dodatek C: Spis opcji konfiguracyjnych Samby

sync always = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba wywo³uje funkcjê fsync(3) po ka¿dym zapisie. Nie
nale¿y jej stosowaæ, z wyj¹tkiem diagnozowania serwera.
[global] time offset = minuty

dozwolone wartoœci: minuty
wartoœæ domyœlna: 0
Ustawia liczbê minut, które nale¿y dodaæ do systemowej strefy czasowej. U¿ywana
z klientami, które b³êdnie obliczaj¹ czas letni; nie zalecana.
[global] time server = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, proces nmbd bêdzie dostarcza³ czas klientom.
unix password sync = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba bêdzie próbowa³a zmieniæ has³o uniksowe, kiedy
u¿ytkownik zmieni swoje has³o SMB. S³u¿y do u³atwienia synchronizacji miêdzy
bazami danych Uniksa i Microsoftu. Dodana w wersji 1.9.18p4 Samby. Patrz tak¿e
passwd chat.
unix realname = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, udostêpnia klientom pole GECOS z pliku /etc/passwd jako
nazwisko u¿ytkownika.
update encrypted = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Uaktualnia plik hase³ Microsoftu, kiedy u¿ytkownik zaloguje siê za pomoc¹ niezaszyfrowanego has³a. U³atwia wprowadzenie zaszyfrowanych hase³ dla u¿ytkowników Windows 95/98 i NT. Wprowadzona w wersji 1.9.18p5 Samby.
user = lista przecinkowa

dozwolone wartoœci: lista nazw u¿ytkowników
oddzielonych przecinkami
Synonim opcji username.

wartoœæ domyœlna: BRAK

veto files = lista ukoœnikowa

345

username = lista przecinkowa

dozwolone wartoœci: lista nazw u¿ytkowników
wartoœæ domyœlna: BRAK
oddzielonych przecinkami
Okreœla listê nazw u¿ytkowników, na których konta spróbuje zalogowaæ siê klient,
kiedy stosowane s¹ zabezpieczenia na poziomie udzia³u. Jej synonimy to user i
users. Nie zalecana. Zamiast niej nale¿y u¿ywaæ w kliencie polecenia NET USE
\\serwer\udzia³%u¿ytkownik.
username level = liczba

dozwolone wartoœci: liczba
wartoœæ domyœlna: 0
Liczba du¿ych liter w permutacjach u¿ywanych podczas dopasowywania uniksowej nazwy u¿ytkownika. Stosowana ze wzglêdu na to, ¿e Windows przesy³a nazwy
u¿ytkownika literami o takiej samej wielkoœci. Nie zalecana.
[global] username map = œcie¿ka do pliku

dozwolone wartoœci: œcie¿ka do pliku
wartoœæ domyœlna: BRAK
Okreœla nazwê i po³o¿enie pliku zawieraj¹cego pary „nazwa u¿ytkownika w Uniksie – nazwa w Windows”. S³u¿y do odwzorowywania nazw o ró¿nej pisowni oraz
tych nazw u¿ytkownika Windows, które s¹ d³u¿sze od oœmiu znaków.
valid chars = lista

dozwolone wartoœci: lista wartoœci liczbowych
wartoœæ domyœlna: BRAK
Przestarza³a, choæ jeszcze nie ca³kiem. Dodaje znaki narodowe do zestawu znaków.
Jej zadania przejê³a opcja client code page.
valid users = lista u¿ytkowników

dozwolone wartoœci: lista u¿ytkowników
wartoœæ domyœlna: BRAK (ka¿dy)
Lista u¿ytkowników, którzy mog¹ korzystaæ z udzia³u.
veto files = lista ukoœnikowa

dozwolone wartoœci: lista nazw plików; (elementy
wartoœæ domyœlna: BRAK
oddzielone ukoœnikami)
Lista plików, które nie s¹ pokazywane klientowi podczas listowania zawartoœci katalogu. Patrz tak¿e opcja delete veto files.

346

Dodatek C: Spis opcji konfiguracyjnych Samby

veto oplock files = lista ukoœnikowa

dozwolone wartoœci: lista nazw plików; elementy
wartoœæ domyœlna: BRAK
oddzielone ukoœnikami
Lista plików, które nie mog¹ byæ blokowane oportunistycznie (i buforowane przez
klienta). Patrz tak¿e opcje oplocks i fake oplocks.
volume = nazwa udzia³u

dozwolone wartoœci: ³añcuch
wartoœæ domyœlna: BRAK
Okreœla etykietê wolumenu dla udzia³u dyskowego, zw³aszcza dla CD-ROM-u.
wide links = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Jeœli jest ustawiona na YES, Samba pod¹¿a za dowi¹zaniami symbolicznymi na
zewn¹trz bie¿¹cego udzia³u (lub udzia³ów). Patrz tak¿e opcje root dir i follow
symlinks.
[global] wins proxy = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, demon nmbd bêdzie przekazywa³ do serwera WINS zapytania o nazwê od starszych klientów, które pos³uguj¹ siê rozg³oszeniami. Serwer
WINS znajduje siê zwykle w innej podsieci.
[global] wins server = host

dozwolone wartoœci: nazwa hosta
Podaje nazwê DNS lub adres IP serwera WINS.

wartoœæ domyœlna: BRAK

[global] wins support = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: NO
Jeœli jest ustawiona na YES, Samba bêdzie œwiadczy³a us³ugi WINS. Jeœli wins
support = yes, opcja wins server nie mo¿e byæ ustawiona.
[global] workgroup = nazwa

dozwolone wartoœci: nazwa grupy roboczej
wartoœæ domyœlna: wkompilowana
Ustawia nazwê grupy roboczej, której serwer udostêpnia swoje zasoby. Zastêpuje
wkompilowan¹ nazwê. Zalecamy wybranie nazwy innej ni¿ WORKGROUP.

writable = wartoϾ logiczna

347

writable = wartoϾ logiczna

dozwolone wartoœci: YES, NO
Antonim opcji read only; synonim opcji write ok.

wartoœæ domyœlna: YES

write list = lista przecinkowa

dozwolone wartoœci: lista nazw u¿ytkowników
wartoœæ domyœlna: BRAK (ka¿dy)
(elementy oddzielone przecinkami)
Lista u¿ytkowników, którzy maj¹ dostêp w trybie do zapisu i odczytu do udzia³u
przeznaczonego tylko do odczytu. Patrz tak¿e opcja read list.
write ok = wartoϾ logiczna

dozwolone wartoœci: YES, NO
Synonim opcji writable.

wartoœæ domyœlna: YES

[global] write raw = wartoϾ logiczna

dozwolone wartoœci: YES, NO
wartoœæ domyœlna: YES
Umo¿liwia wykonywanie szybkich, strumieniowych zapisów przez TCP przy wykorzystaniu buforów o rozmiarze 64 KB. Zalecana.

S³owniczek terminów u¿ywanych w spisie opcji
Lista adresów
Lista adresów IP (oddzielonych spacjami) w formacie ###.###.###.###.
Lista hostów
Lista hostów, której elementy s¹ oddzielone spacjami. Mo¿e zawieraæ adresy IP,
maski adresów, nazwy domenowe oraz s³owa ALL i EXCEPT.
Lista interfejsów
Lista interfejsów (z elementami oddzielonymi spacjami) w formacie adres/maska sieciowa albo adres/liczba bitów, na przyk³ad 192.168.2.10/255.255.255.0
albo 192.168.2.10/24.
Lista odwzorowañ
Lista (z elementami oddzielonymi spacjami) ³añcuchów u¿ywanych do odwzorowywania nazw plików, na przyk³ad (*.html *.htm).
Lista przecinkowa
Lista elementów oddzielonych przecinkami.
Lista ukoœnikowa
Lista nazw plików, której elementy s¹ oddzielone znakami „/”, co pozwala na
osadzanie spacji. Na przyk³ad /.*/fred flintstone/*.frk/.

348

Dodatek C: Spis opcji konfiguracyjnych Samby

Lista us³ug (udzia³ów)
Lista (z elementami oddzielonymi spacjami) nazw udzia³ów, bez nawiasów kwadratowych u¿ywanych w nag³ówku sekcji.
Lista u¿ytkowników
Lista (z elementami oddzielonymi spacjami) nazw u¿ytkowników. W Sambie 1.9
zapis @nazwa_grupy oznacza wszystkich cz³onków uniksowej grupy o podanej
nazwie. W Sambie 2.0 zapis @nazwa_grupy oznacza wszystkich cz³onków grupy sieciowej NIS o podanej nazwie, jeœli taka grupa istnieje, a w przeciwnym razie – wszystkich cz³onków grupy uniksowej. Oprócz tego zapis +nazwa_grupy
oznacza grupê uniksow¹, & nazwa_grupy – grupê sieciow¹ NIS, a zapisy & + i + &
powoduj¹ przeszukanie grup Uniksa i NIS w okreœlonej kolejnoœci.
Lista zdalna
Lista (z elementami oddzielonymi spacjami) par „rozg³oszeniowy adres podsieci –
grupa robocza”. Na przyk³ad: 192.168.2.255/SERWERY 192.168.4.255/PERSONEL.
Polecenie
Polecenie uniksowe z pe³n¹ œcie¿k¹ i parametrami.
Tekst
Jedna linia tekstu.

Zmienne pliku konfiguracyjnego
W tabeli C.1 wymienione s¹ zmienne pliku konfiguracyjnego Samby.
Tabela C.1. Zmienne w porz¹dku alfabetycznym
%a
%d
%f
%f
%G
%g
%H
%h
%I
%j
%L
%M
%m
%n
%N
%o
%P
%p

Architektura klienta (Samba, WfWg, WinNT, Win95 lub UNKNOWN)
Bie¿¹cy identyfikator procesu serwera
Nazwa pliku buforowego wraz ze œcie¿k¹ wzglêdn¹ (tylko drukowanie)
U¿ytkownik, który przys³a³ komunikat (tylko komunikaty)
Nazwa podstawowej grupy %U (¿¹danego konta u¿ytkownika)
Nazwa podstawowej grupy %u (rzeczywistego konta u¿ytkownika)
Katalog macierzysty %u (rzeczywistego konta u¿ytkownika)
Nazwa hosta (internetowa) serwera Samby
Adres IP klienta
Numer zlecenia wydruku (tylko drukowanie)
Nazwa NetBIOS-owa serwera Samby (wirtualne serwery maj¹ wiele nazw)
Nazwa hosta (internetowa) klienta
Nazwa NetBIOS-owa klienta
Nowe has³o (tylko zmiana has³a)
Nazwa serwera katalogów macierzystych NIS (bez NIS to samo co %L)
Stare has³o (tylko zmiana has³a)
Katalog g³ówny bie¿¹cego udzia³u (rzeczywisty)
Katalog g³ówny bie¿¹cego udzia³u (w mapie NIS)

Zmienne pliku konfiguracyjnego
Nazwa

Opis

%p
%R

Nazwa drukowanego pliku (tylko drukowanie)
U¿ywany poziom protoko³u (CORE, COREPLUS, LANMAN1,
LANMAN2 lub NT1)
Nazwa bie¿¹cego udzia³u
Nazwa pliku, w którym jest treœæ komunikatu (tylko komunikaty)
Nazwa pliku buforowego drukarki (tylko drukowanie)
Bie¿¹ca data i czas
Komputer docelowy (tylko komunikaty)
Nazwa u¿ytkownika bie¿¹cego udzia³u
¯¹dana nazwa u¿ytkownika bie¿¹cego udzia³u
Wersja Samby

%S
%s
%s
%T
%t
%u
%U
%v

349

Spis demonów
i poleceñ Samby

D

Dodatek D: Spis demonów i poleceñ Samby

W tym dodatku zamieszczamy spis opcji linii poleceñ i inne informacje, które pomog¹ ci w u¿ywaniu programów wchodz¹cych w sk³ad dystrybucji Samby.

Programy wchodz¹ce w sk³ad dystrybucji Samby
Poni¿ej zamieszczamy informacje o opcjach linii poleceñ u¿ywanych przez programy Samby.

smbd
Program smbd udostêpnia pliki i drukarki, u¿ywaj¹c jednego strumienia TCP/IP
i jednego demona na jednego klienta. Jest sterowany przez domyœlny plik konfiguracyjny, katalog_samby/lib/smb.conf, jednak pierwszeñstwo maj¹ opcje linii poleceñ.
Plik konfiguracyjny jest automatycznie przetwarzany co minutê. Jeœli w miêdzyczasie zostanie zmieniony, nowe opcje natychmiast wejd¹ w ¿ycie. Mo¿esz zmusiæ Sambê do wczeœniejszego prze³adowania pliku konfiguracyjnego, wysy³aj¹c sygna³
SIGHUP do procesu smbd. Prze³adowanie pliku nie bêdzie jednak mia³o wp³ywu na
ju¿ pod³¹czone klienty. Aby zaprzestaæ u¿ywania tej „odziedziczonej” konfiguracji,
klient musi roz³¹czyæ siê i po³¹czyæ ponownie, albo sam serwer musi zostaæ zrestartowany, co zmusi wszystkie klienty do ponownego nawi¹zania po³¹czenia.
Inne sygna³y
Aby zamkn¹æ proces smbd, wyœlij do niego sygna³ SIGTERM (-15), który umo¿liwi
mu ³agodne zakoñczenie dzia³ania – w przeciwieñstwie do sygna³u SIGKILL (-9).
Aby zwiêkszyæ poziom rejestrowania podczas dzia³ania smbd, wyœlij do programu
sygna³ SIGUSR1. Aby zmniejszyæ poziom rejestrowania, wyœlij sygna³ SIGUSR2.
Opcje linii poleceñ
-D

Program smbd jest uruchamiany jako demon. Jest to zalecany sposób u¿ycia smbd
(i zarazem domyœlny). Mo¿na tak¿e uruchamiaæ smbd za poœrednictwem inetd.

352

Dodatek D: Spis demonów i poleceñ Samby

-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e przybieraæ on wartoœæ od 0 do 10. Podanie wartoœci w linii polecenia powoduje zast¹pienie wartoœci okreœlonej w pliku smb.conf. Poziom diagnostyczny 0
rejestruje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe,
natomiast poziomy 3 i wy¿sze s³u¿¹ g³ównie do celów diagnostycznych i znacznie spowalniaj¹ dzia³anie demona smbd.
-h
Wyœwietla informacje o opcjach linii polecenia programu smbd.
Opcje testowe i diagnostyczne
-a

Jeœli podasz tê opcjê, ka¿de nowe po³¹czenie z serwerem Samby bêdzie rejestrowaæ komunikaty o logowaniu na koñcu pliku dziennika. Jest to przeciwieñstwo
opcji -o i zarazem ustawienie domyœlne.
-i zakres
Ta opcja ustawia NetBIOS-owy identyfikator zakresu. Tylko komputery o takim
identyfikatorze bêd¹ mog³y komunikowaæ siê z serwerem. Identyfikator zakresu
by³ poprzednikiem grup roboczych; opcja ta jest obs³ugiwana tylko dla zapewnienia wstecznej zgodnoœci.
-l plik_dziennika
Zapisuje komunikaty diagnostyczne w pliku innym ni¿ wkompilowany lub
okreœlony w smb.conf. Domyœlna nazwa pliku dziennika to czêsto /usr/local/samba/var/log.smb, /usr/samba/var/log.smb lub /var/log/log.smb. Dwa pierwsze po³o¿e nia nie s¹ zalecane w Linuksie, w którym /usr czêsto jest systemem plików
przeznaczonym tylko do odczytu.
-O opcje_gniazd
Ta opcja linii polecenia ustawia opcje gniazd TCP/IP, u¿ywaj¹c tych samych parametrów, co opcja konfiguracyjna socket options. Czêsto wykorzystuje siê
j¹ do optymalizowania wydajnoœci i do testowania.
-o
Przeciwieñstwo opcji -a. Powoduje nadpisywanie plików dziennika po ich
otwarciu. Dziêki tej opcji mo¿esz oszczêdziæ sobie ¿mudnego wyszukiwania
w³aœciwych wpisów, kiedy przeprowadzasz seriê testów i za ka¿dym razem
sprawdzasz dzienniki.
-P
Ta opcja sprawia, ¿e smbd nie wysy³a ¿adnych danych do sieci. Zwykle jest u¿ywana tylko przez programistów Samby.
-p numer_portu
Opcja ta okreœla numer portu, z którego serwer bêdzie odbiera³ ¿¹dania. Obecnie
wszystkie klienty Microsoftu wysy³aj¹ ¿¹dania tylko do portu domyœlnego: 139.

Programy wchodz¹ce w sk³ad dystrybucji Samby

353

-s plik_konfiguracyjny
Okreœla po³o¿enie pliku konfiguracyjnego Samby. Domyœlne po³o¿enie tego pliku to /usr/local/samba/lib/smb.conf, ale mo¿esz zmieniæ je z linii polecenia, zwykle
w celach diagnostycznych.

nmbd
Program nmbd to demon NetBIOS-owych us³ug nazewniczych i przegl¹dania. Odpowiada na zapytania o nazwê, rozg³aszane za pomoc¹ protoko³u NetBIOS ponad
TCP/IP (NBT) przez klienty SMB, a opcjonalnie tak¿e na ¿¹dania Windows Internet
Name Service (WINS). Oba te mechanizmy s¹ u¿ywane przez klienty SMB do wyszukiwania adresu IP na podstawie nazwy komputera. Mechanizm rozg³oszeniowy
korzysta z rozg³oszeñ UDP/IP i ogranicza siê do lokalnej podsieci, natomiast WINS
u¿ywa protoko³u TCP/IP, który mo¿e byæ trasowany. Jeœli demon nmbd dzia³a jako
serwer WINS, wówczas przechowuje aktualn¹ bazê nazw i adresów w pliku wins.dat
w katalogu katalog_samby/var/locks.
Dzia³aj¹cy program nmbd mo¿e tak¿e odpowiadaæ na ¿¹dania protoko³u przegl¹dania u¿ywanego przez Otoczenie sieciowe Windows. Przegl¹danie opiera siê na protokole ³¹cz¹cym og³oszenia o serwerach i œwiadczonych przez nie us³ugach w ak tywny katalog us³ug. Protokó³ przegl¹dania zapewnia wiêc dynamiczny katalog
serwerów oraz udostêpnianych przez nie dysków i drukarek. Podobnie jak w przypadku WINS, us³uga ta by³a pocz¹tkowo realizowana przez wysy³anie rozg³oszeñ
UDP/IP do lokalnej podsieci. Obecnie, dziêki g³ównym przegl¹darkom lokalnym,
przegl¹danie polega na nawi¹zywaniu po³¹czeñ TCP/IP z serwerem. Jeœli demon
nmbd dzia³a jako g³ówna przegl¹darka lokalna, wówczas przechowuje bazê danych
przegl¹dania w pliku browse.dat w katalogu katalog_samby/var/locks.
Sygna³y
Podobnie jak smbd, program nmbd odpowiada na kilka uniksowych sygna³ów.
Wys³anie do niego sygna³u SIGHUP spowoduje zrzucenie znanych programowi nazw
do pliku namelist.debug w katalogu katalog_samby/locks, a bazy danych przegl¹dania
– do pliku browse.dat w tym samym katalogu. Aby zamkn¹æ proces nmbd, wyœlij do niego sygna³ SIGTERM (-15) zamiast SIGKILL (-9), co pozwoli mu na ³agodne zakoñczenie
pracy. Mo¿esz zwiêkszyæ poziom diagnostyczny programu nmbd, wysy³aj¹c do niego
sygna³ SIGUSR1, albo zmniejszyæ, wysy³aj¹c sygna³ SIGUSR2.
Opcje linii polecenia
-D

Program nmbd jest uruchamiany jako demon. Jest to zalecany sposób u¿ycia
nmbd. Mo¿na tak¿e uruchamiaæ nmbd za poœrednictwem inetd.
-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e mieæ on wartoœæ od 0 do 10. Podanie wartoœci w linii polecenia powoduje
zast¹pienie wartoœci okreœlonej w pliku smb.conf. Poziom diagnostyczny 0 reje-

354

Dodatek D: Spis demonów i poleceñ Samby

struje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe, natomiast poziomy 3 i wy¿sze s³u¿¹ g³ównie do celów diagnostycznych i znacznie
spowalniaj¹ dzia³anie demona nmbd.
-h

Wyœwietla informacje o opcjach linii polecenia programu nmbd (tak¿e -?).

Opcje testowe i diagnostyczne
-a

Jeœli podasz tê opcjê, ka¿de nowe po³¹czenie z serwerem Samby bêdzie rejestrowaæ komunikaty o logowaniu na koñcu pliku dziennika. Jest to przeciwieñstwo
opcji -o i zarazem ustawienie domyœlne.
-H plik_hostów
Ta opcja ³aduje standardowy plik hostów w celu odwzorowywania nazw.
-i zakres
Ta opcja ustawia NetBIOS-owy identyfikator zakresu. Tylko komputery o takim
identyfikatorze bêd¹ mog³y komunikowaæ siê z serwerem. Identyfikator zakresu
by³ poprzednikiem grup roboczych; opcja ta jest obs³ugiwana tylko dla zapewnienia wstecznej zgodnoœci.
-l plik_dziennika
Zapisuje komunikaty diagnostyczne w pliku innym ni¿ wkompilowany lub
okreœlony w smb.conf. Domyœlna nazwa pliku dziennika to czêsto /usr/local/samba/var/log.nmb, /usr/samba/var/log.nmb lub /var/log/log.nmb. Dwa pierwsze po³o¿enia nie s¹ zalecane w Linuksie, w którym /usr czêsto jest systemem plików
przeznaczonym tylko do odczytu.
-n nazwa_NetBIOS-owa
Ta opcja umo¿liwia zmianê nazwy, pod jak¹ bêdzie og³asza³ siê demon. Podanie
tej opcji w linii polecenia spowoduje zast¹pienie wartoœci okreœlonej w pliku konfiguracyjnym Samby za pomoc¹ opcji netbios name.
-O opcje_gniazd
Ta opcja linii polecenia ustawia opcje gniazd TCP/IP, u¿ywaj¹c tych samych parametrów, co opcja konfiguracyjna socket options. Czêsto wykorzystuje siê
j¹ do optymalizowania wydajnoœci i do testowania.
-o
Przeciwieñstwo opcji -a. Powoduje nadpisywanie plików dziennika po ich
otwarciu. Dziêki tej opcji mo¿esz oszczêdziæ sobie ¿mudnego wyszukiwania
w³aœciwych wpisów, kiedy przeprowadzasz seriê testów i za ka¿dym razem
sprawdzasz dzienniki.
-p numer_portu
Opcja ta okreœla numer portu UDP/IP, z którego serwer bêdzie odbiera³ ¿¹dania.
Obecnie wszystkie klienty Microsoftu wysy³aj¹ ¿¹dania tylko do portu domyœlnego: 137.

Programy wchodz¹ce w sk³ad dystrybucji Samby

355

-s plik_konfiguracyjny
Okreœla po³o¿enie pliku konfiguracyjnego Samby. Domyœlne po³o¿enie tego pliku to /usr/local/samba/lib/smb.conf, ale mo¿esz zmieniæ je z linii polecenia, zwykle
w celach diagnostycznych.
-v
Ta opcja wyœwietla wersjê Samby.

Plik startowy Samby
Samba jest zwykle uruchamiana z uniksowych plików rc podczas startu systemu.
W systemach ze zbiorem katalogów /etc/rcN.d mo¿na to zrobiæ, umieszczaj¹c odpowiednio nazwany skrypt w katalogu /rc. Zwykle skrypt uruchamiaj¹cy Sambê nosi
nazwê S91samba, a zatrzymuj¹cy j¹ – K91samba. W Linuksie skrypty te s¹ zazwyczaj
przechowywane w podkatalogu /etc/rc2.d, a w Solarisie – w /etc/rc3.d. W komputerach z plikiem /etc/rc.local mo¿esz dopisaæ do tego pliku poni¿sze dwie linie:
/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D

Poni¿szy przyk³adowy skrypt obs³uguje dwa dodatkowe polecenia, status i restart, oprócz zwyk³ych poleceñ start i stop u¿ywanych w Uniksach typu System V:
#!/bin/sh
#
# /etc/rc2.d/S91samba - zarz¹dza serwerem SMB metod¹ Systemu V
#
OPCJE= " -D "
#DIAGN=-d3
PS= " ps ax "
KAT_SAMBY=/usr/local/samba
case " $1 " in
'start')
echo " Uruchamiam Sambê "
$KAT_SAMBY/bin/smbd $OPCJE $DIAGN
$KAT_SAMBY/bin/nmbd $OPCJE $DIAGN
;;
'stop')
echo " Zatrzymujê Sambê "
$PS | awk '/usr.local.samba.bin/ { print $1}' |\
xargs kill
;;
'status')
x='$PS | grep -v grep | grep '$KAT_SAMBY/bin''
if [ ! " $x " ]; then
echo " Nie dzia³a ¿aden proces Samby "
else
echo " PID TT STAT CZAS POLECENIE "
echo " $x "
fi
;;
'restart')
/etc/rc2.d/S91samba stop
/etc/rc2.d/S91samba start
/etc/rc2.d/S91samba status
;;

356

Dodatek D: Spis demonów i poleceñ Samby

*)
echo " $0: B³êdne polecenie. Wpisz: $0 start, stop, status lub restart. "
;;
esac
exit

Bêdziesz musia³ podaæ w³aœciwe œcie¿ki i opcje polecenia ps, aby dostosowaæ je do
swojego systemu. Mo¿esz tak¿e do³¹czyæ inne polecenia w zale¿noœci od swoich potrzeb, na przyk³ad nakazuj¹ce Sambie prze³adowanie pliku smb.conf lub zrzucenie
tabel nmbd.

smbsh
Program smbsh umo¿liwia korzystanie ze zdalnego udzia³u Windows tak, jakby by³
to zwyk³y katalog uniksowy. Kiedy go uruchomisz, udostêpni dodatkowe drzewo
katalogów pod katalogiem /smb. Podkatalogami /smb s¹ serwery, a podkatalogami
serwerów s¹ poszczególne udzia³y dyskowe i drukarki. Polecenia wykonywane
przez smbsh traktuj¹ system plików /smb tak, jakby by³ to system lokalny. Oznacza
to, ¿e nie musisz do³¹czaæ obs³ugi smbmount do j¹dra i montowaæ systemów plików
Windows w taki sposób, w jaki montujesz systemy plików NFS. Aby w³¹czyæ smbsh,
musisz skonfigurowaæ Sambê z opcj¹ --with-smbwrappers.
Opcje
-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e mieæ on wartoœæ od 0 do 10. Podanie wartoœci w linii polecenia powoduje
zast¹pienie wartoœci okreœlonej w pliku smb.conf. Poziom diagnostyczny 0 rejestruje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe, natomiast poziomy 3 i wy¿sze s³u¿¹ g³ównie do celów diagnostycznych i znacznie
spowalniaj¹ dzia³anie programu smbsh.
-l plik_dziennika
Okreœla nazwê u¿ywanego pliku dziennika.
-P przedrostek
Okreœla katalog, w którym nale¿y zamontowaæ system plików SMB. Domyœlnie
jest to /smb.
-R kolejnoϾ odwzorowywania
Okreœla kolejnoœæ korzystania z us³ug nazewniczych. Opcja ta przypomina opcjê
konfiguracyjn¹ resolve order i mo¿e przyjmowaæ cztery parametry:
lmhosts, host, wins i bcast, w dowolnej kolejnoœci.
-U u¿ytkownik
Umo¿liwia stosowanie opcji u¿ytkownik%has³o.
-W grupa_robocza
Okreœla nazwê grupy roboczej, do której pod³¹czy siê klient.

Programy wchodz¹ce w sk³ad dystrybucji Samby

357

smbclient
Program smbclient to „z³ota r¹czka” w pakiecie Samby. Pocz¹tkowo napisany jako narzêdzie testowe, z czasem sta³ siê pe³nym klientem uniksowym z interaktywnym interfejsem przypominaj¹cym FTP. Niektóre z jego opcji nadal s³u¿¹ do testowania i optymalizowania serwera; umo¿liwia te¿ ³atwe sprawdzenie, czy Samba dzia³a w serwerze.
Program smbclient mo¿na uznaæ za ca³y pakiet programów:
· interaktywny program do transmisji plików, podobny do FTP,
· interaktywny program drukuj¹cy,
· interaktywny program archiwizuj¹cy,
· program do wysy³ania komunikatów sterowany z linii poleceñ,
· program archiwizacyjny sterowany z linii poleceñ (patrz te¿ program smbtar),
· program do wysy³ania zapytañ o us³ugi œwiadczone przez serwer,
· program diagnostyczny sterowany z linii poleceñ.
Ogólne opcje linii poleceñ
Program ma zwyk³y zbiór opcji podobnych do smbd, które maj¹ zastosowanie za równo podczas u¿ycia interaktywnego, jak i sterowania z linii poleceñ. Oto sk³adnia
polecenia:
smbclient //nazwa_serwera/nazwa_udzia³u [has³o] [-opcje]

Oto wszystkie opcje linii poleceñ:
-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e mieæ on wartoœæ od 0 do 10 lub A, co oznacza wszystkie komunikaty. Podanie wartoœci w linii polecenia powoduje zast¹pienie wartoœci okreœlonej w pliku
smb.conf. Poziom diagnostyczny 0 rejestruje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe, natomiast poziomy 3 i wy¿sze s³u¿¹ g³ównie
do celów diagnostycznych i znacznie spowalniaj¹ dzia³anie programu smbclient.
-h
Wyœwietla informacje o u¿yciu programu smbclient z linii poleceñ.
-n nazwa_NetBIOS-owa
Ta opcja umo¿liwia zmianê nazwy NetBIOS-owej, pod jak¹ bêdzie og³asza³ siê
program.
Dzia³anie programu smbclient
Po wydaniu polecenia smbclient //nazwa_serwera/udzia³ zostaniesz poproszony o wpisanie nazwy u¿ytkownika i has³a. Jeœli logowanie przebiegnie pomyœlnie, program po³¹czy siê z udzia³em i zostanie wyœwietlone zg³oszenie niemal takie jak w FTP (odwrotny ukoœnik w zg³oszeniu zostanie zast¹piony nazw¹
bie¿¹cego katalogu, kiedy bêdziesz porusza³ siê po systemie plików):
smb:\ & gt;

358

Dodatek D: Spis demonów i poleceñ Samby

Z tej linii zg³oszenia mo¿esz wydawaæ polecenia wymienione w tabeli D.1, podobne
do poleceñ FTP. Argumenty w nawiasach kwadratowych s¹ opcjonalne.
Tabela D.1. Polecenia programu smbclient
Polecenie

Opis

? polecenie
help [polecenie]
! [polecenie]

Wyœwietla listê poleceñ lub pomoc na temat podanego polecenia
Wyœwietla listê poleceñ lub pomoc na temat podanego polecenia
Jeœli podasz polecenie, zostanie ono wykonane w lokalnej
pow³oce. Jeœli nie, przejdziesz do lokalnej pow³oki klienta
Wyœwietla wszystkie pliki w bie¿¹cym katalogu, których nazwa
odpowiada podanej nazwie_pliku, a w razie pominiêcia
nazwy_pliku wyœwietla wszystkie pliki
Wyœwietla wszystkie pliki w bie¿¹cym katalogu, których nazwa
odpowiada podanej nazwie_pliku, a w razie pominiêcia
nazwy_pliku wyœwietla wszystkie pliki
Jeœli podasz katalog, przechodzi do okreœlonego katalogu
w zdalnym komputerze. Jeœli nie, wyœwietla bie¿¹cy katalog
w zdalnym komputerze
Jeœli podasz katalog, przechodzi do okreœlonego katalogu
w lokalnym komputerze. Jeœli nie, wyœwietla bie¿¹cy katalog
w lokalnym komputerze
Kopiuje zdalny_plik do lokalnego komputera. Jeœli podasz
nazwê lokalnego_pliku, plik zostanie skopiowany pod t¹
nazw¹. Plik jest traktowany jako binarny; nie dokonuje siê
konwersji miêdzy znakami nowej linii a sekwencjami powrót
karetki/nowa linia
Kopiuje lokalny_plik do zdalnego komputera.
Jeœli podasz nazwê zdalnego_pliku, plik zostanie
skopiowany pod t¹ nazw¹. Plik jest traktowany jako binarny;
nie dokonuje siê konwersji miêdzy znakami nowej linii
a sekwencjami powrót karetki/nowa linia
Pobiera ze zdalnego komputera wszystkie pliki o nazwach
pasuj¹cych do wzorca
Umieszcza w zdalnym komputerze wszystkie lokalne pliki
o nazwach pasuj¹cych do wzorca
W³¹cza lub wy³¹cza interaktywne potwierdzanie operacji
w poleceniach mget i mput
Jeœli opcja lowercase jest w³¹czona (ON), program smbclient
bêdzie przekszta³ca³ nazwy plików na ma³e litery podczas
operacji mget lub get (ale nie mput i put)
Usuwa plik ze zdalnego komputera
Tworzy katalog w zdalnym komputerze
Tworzy katalog w zdalnym komputerze
Usuwa katalog ze zdalnego komputera
Usuwa katalog ze zdalnego komputera

dir [nazwa_pliku]

ls [nazwa_pliku]

cd [katalog]

lcd [katalog]

get zdalny_plik
[lokalny_plik]

put lokalny_plik
[zdalny_plik]

mget wzorzec
mput wzorzec
prompt
lowercase ON (lub OFF)

del nazwa_pliku
md katalog
mkdir katalog
rd katalog
rmdir katalog

Programy wchodz¹ce w sk³ad dystrybucji Samby
Polecenie

Opis

setmode nazwa_pliku
[+|-]rsha

359

Ustawia dosowe atrybuty plików, u¿ywaj¹c
uniksowych praw dostêpu. Opcja r oznacza plik
tylko do odczytu, s – systemowy, h – ukryty, a – archiwalny
Koñczy dzia³anie programu smbclient
Koñczy dzia³anie programu smbclient

exit
quit

Istniej¹ tak¿e polecenia maskuj¹ce i rekurencyjne przydatne podczas kopiowania
wiêkszych iloœci plików; opis ich u¿ycia znajdziesz na stronie podrêcznika man dla
programu smbclient. Nie licz¹c masek, rekurencji i braku transmisji w trybie ASCII,
smbclient dzia³a dok³adnie tak, jak FTP. Zauwa¿, ¿e ze wzglêdu na binarny tryb
transmisji, pliki Windows skopiowane do Uniksa bêd¹ mia³y linie koñcz¹ce siê znakami powrotu karetki i nowej linii (\r\n), a nie samym znakiem nowej linii (\n)
u¿ywanym w Uniksie.
Polecenia wydruku
Program smbclient umo¿liwia tak¿e dostêp do drukarek, ³¹cz¹c siê z udzia³ami drukarek. Kiedy jesteœ ju¿ po³¹czony, mo¿esz sterowaæ wydrukiem za pomoc¹ poleceñ
z tabeli D.2.
Tabela D.2. Polecenia wydruku w programie smbclient
Polecenie

Opis

print nazwa_pliku

Drukuje plik, kopiuj¹c go z komputera lokalnego do zdalnego
i tam zlecaj¹c jego wydruk

printmode text
| graphics

queue

Informuje serwer, ¿e przes³ane dane s¹ czystym tekstem (ASCII)
albo binarnymi danymi graficznymi w formacie akceptowanym
przez drukarkê. U¿ytkownik sam musi zadbaæ, aby drukowany
plik by³ w³aœciwego typu
Wyœwietla kolejkê w udziale drukarki, z którym siê po³¹czy³eœ,
pokazuj¹c identyfikator zadania, nazwê, rozmiar i status
zlecenia wydruku

Wreszcie, aby wydrukowaæ plik za pomoc¹ programu smbclient, u¿yj opcji -c:
cat drukowany_plik | smbclient //serwer/nazwa_drukarki -c " print - "

Polecenia archiwizuj¹ce
Program smbclient mo¿e archiwizowaæ pliki przechowywane w udzia³ach. Zwykle
robi siê to z linii poleceñ za pomoc¹ polecenia smbtar, ale mo¿na tak¿e u¿yæ poleceñ
interaktywnych wymienionych w tabeli D.3.

360

Dodatek D: Spis demonów i poleceñ Samby

Tabela D.3. Polecenia archiwizuj¹ce
Polecenie

Opis

tar c|x[IXbgNa]
operandy
blocksize rozmiar

Tworzy lub rozpakowuje archiwum tar, podobnie jak
program sterowany z linii poleceñ
Okreœla rozmiar bloku u¿ywany przez tar, w jednostkach
512-bajtowych
Sprawia, ¿e polecenie tar uzwglêdnia ustawienie
dosowego bitu archiwalnego. W trybie full (pe³nym,
domyœlnym) polecenie tar archiwizuje wszystkie pliki. W trybie
inc (przyrostowym) polecenie tar kopiuje tylko te pliki,
w których ustawiony jest bit archiwalny. W trybie reset
(zerowania) polecenie tar zeruje bit archiwalny we wszystkich
kopiowanych plikach (udzia³ musi byæ zapisywalny), w trybie
noreset bit archiwalny nie zostanie wyzerowany mimo
zarchiwizowania pliku

tarmode full |inc
|reset|noreset

Opcje linii poleceñ s³u¿¹ce do wysy³ania komunikatów
-M NetBIOS-owa_nazwa_komputera
Ta opcja umo¿liwia wysy³anie komunikatów protoko³u WinPopup do innego
komputera. Po nawi¹zaniu po³¹czenia mo¿esz wpisaæ swój komunikat i zakoñczyæ go przez naciœniêcie [Ctrl+D]. Jeœli w docelowym komputerze nie dzia³a
WinPopup, otrzymasz komunikat o b³êdzie.
-U u¿ytkownik
Ta opcja pozwala na poœrednie okreœlenie nadawcy komunikatu.
Opcje linii poleceñ s³u¿¹ce do archiwizacji plików
Do archiwizowania plików mo¿na wykorzystaæ kombinacjê opcji -T (archiwizowanie), -D (pocz¹tkowy katalog) oraz -c (polecenie). Lepiej jednak to zrobiæ za pomoc¹
programu smbtar, który omówimy niebawem. Nie zalecamy bezpoœredniego u¿ycia
programu smbclient jako programu archiwizuj¹cego.
-D katalog_pocz¹tkowy
Przechodzi do okreœlonego katalogu przed rozpoczêciem operacji.
-c ³añcuch_poleceñ
Przekazuje ³añcuch_poleceñ do interpretera poleceñ, który traktuje go jako listê poleceñ (oddzielonych œrednikami) do wykonania. Przydaje siê to do przekazania poleceñ, takich jak tarmode inc, które sprawia, ¿e polecenie smbclient
-T skopiuje tylko pliki z ustawionym bitem archiwalnym.
-T polecenie nazwa_pliku
Uruchamia sterownik tar, zgodny z programem gtar. Dwa najwa¿niejsze polecenia to: c (utwórz archiwum) i x (rozpakuj pliki), po których mog¹ nastêpowaæ poni¿sze opcje:
a Zeruje bity archiwalne po skopiowaniu plików.

Programy wchodz¹ce w sk³ad dystrybucji Samby

361

b rozmiar
Ustawia rozmiar bloku w jednostkach 512-bajtowych.
g Archiwizuje tylko te pliki, w których ustawiony jest bit archiwalny.
I plik
Do³¹cza pliki i katalogi (jest to dzia³anie domyœlne). Nie wykonuje dopasowañ
do wzorca.
N nazwa_pliku
Archiwizuje tylko pliki nowsze od pliku o podanej nazwie.
q Nie wyœwietla komunikatów diagnostycznych.
X plik
Wy³¹cza pliki.
Wysy³anie z linii poleceñ zapytañ o us³ugi
Jeœli uruchomisz program smbclient w nastêpuj¹cy sposób:
smbclient -L nazwa_serwera

wylistuje on udzia³y i inne us³ugi udostêpniane przez serwer. Jest to przydatne, jeœli
nie masz smbwrappers. Bywa tak¿e pomocne jako narzêdzie diagnostyczne.
Opcje testowe i diagnostyczne
Program smbclient mo¿na wywo³aæ w ró¿nych trybach dzia³ania z nastêpuj¹cymi
opcjami diagnostycznymi i testowymi:
-B adres_IP
Okreœla adres rozg³oszeniowy.
-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e mieæ on wartoœæ od 0 do 10 lub A, co oznacza wszystkie opcje diagnostyczne. Poziom diagnostyczny 0 rejestruje tylko najwa¿niejsze komunikaty, poziom 1
to ustawienie standardowe, natomiast poziomy 3 i wy¿sze s³u¿¹ g³ównie do celów
diagnostycznych i znacznie spowalniaj¹ dzia³anie programu.
-E
Wysy³a wszystkie komunikaty na standardowe wyjœcie b³êdu, zamiast na standardowe wyjœcie.
-I adres_IP
Okreœla adres IP serwera, z którym nale¿y siê po³¹czyæ.
-i zakres
Ta opcja ustawia NetBIOS-owy identyfikator zakresu. Tylko komputery o takim
identyfikatorze bêd¹ mog³y komunikowaæ siê z serwerem. Identyfikator zakresu
by³ poprzednikiem grup roboczych; opcja ta jest obs³ugiwana tylko dla zapewnienia wstecznej zgodnoœci.
-l plik_dziennika
Wysy³a komunikaty do okreœlonego pliku.

362

Dodatek D: Spis demonów i poleceñ Samby

-N

Nie wyœwietla pytania o has³o. Jeœli podasz has³o w linii polecenia lub u¿yjesz tej
opcji, klient nie zapyta o has³o.
-n nazwa_NetBIOS-owa
Ta opcja umo¿liwia zmianê nazwy, pod jak¹ bêdzie og³asza³ siê program.
-O opcje_gniazd
Ta opcja linii polecenia ustawia opcje gniazd TCP/IP, u¿ywaj¹c tych samych parametrów, co opcja konfiguracyjna socket options. Czêsto wykorzystuje siê
j¹ do optymalizowania wydajnoœci i do testowania.
-p numer_portu
Opcja ta okreœla numer portu, z którego klient bêdzie odbiera³ ¿¹dania.
-R kolejnoϾ_odwzorowywania
Okreœla kolejnoœæ korzystania z us³ug nazewniczych. Opcja ta przypomina opcjê
konfiguracyjn¹ resolve order i mo¿e przyjmowaæ cztery parametry:
lmhosts, host, wins i bcast, w dowolnej kolejnoœci.
-s plik_konfiguracyjny
Okreœla po³o¿enie pliku konfiguracyjnego Samby. U¿ywana w celach diagnostycznych.
-t kod_terminalowy
Ustawia kod terminalowy dla jêzyków azjatyckich.
-U u¿ytkownik
Ustawia nazwê u¿ytkownika i opcjonalnie has³o (na przyk³ad -U janek%tajne).
-W grupa_robocza
Okreœla nazwê grupy roboczej, której cz³onkiem jest klient.
Jeœli chcesz przetestowaæ któr¹œ z us³ug nazewniczych, uruchom program smbclient
z opcj¹ -R i nazw¹ tej jednej us³ugi. Program smbclient skorzysta wówczas tylko z tej
us³ugi, któr¹ poda³eœ w linii polecenia.

smbstatus
Program smbstatus listuje bie¿¹ce po³¹czenia z serwerem Samby. Jego wyniki dziel¹
siê na trzy sekcje. W pierwszej sekcji wymieniane s¹ ró¿ne udzia³y u¿ywane przez
konkretnych u¿ytkowników. W drugiej sekcji wymieniane s¹ zablokowane pliki we
wszystkich udzia³ach Samby. Wreszcie, w trzeciej sekcji wyœwietlane s¹ informacje
o zu¿yciu pamiêci. Na przyk³ad:
# smbstatus
Samba version 2.0.3
Service
uid
gid
pid
machine
---------------------------------------------siec
davecb
davecb
7470
feniks
(192.168.220.101) Tue May 23
wer
wer
wer
7589
chimera (192.168.220.102) Tue May 23
Locked files:
Pid
DenyMode
R/W
Oplock
Name
--------------------------------------------------

Programy wchodz¹ce w sk³ad dystrybucji Samby
7589
DENY_NONE RDONLY
EXCLUSIVE+BATCH
system/help.bmp
Sun May 16 21:23:40 1999
7470
DENY_WRITE RDONLY
NONE
Sun May 16 20:51:08 1999
7589
DENY_WRITE RDONLY
EXCLUSIVE+BATCH
Sun May 16 21:23:39 1999
7589
DENY_WRITE RDWR
EXCLUSIVE+BATCH
runtime.dat
Sun May 16 21:23:40 1999
7470
DENY_WRITE RDONLY
EXCLUSIVE+BATCH
Sun May 16 20:51:09 1999
7589
DENY_WRITE RDONLY
NONE
Sun May 16 21:20:33 1999
7470
DENY_WRITE RDONLY
NONE
Sun May 16 20:51:11 1999

363
/home/samba/quicken/inet/common/
/home/samba/word/office/findfast.exe
/home/samba/quicken/lfbmp70n.dll
/home/samba/quicken/inet/qdata/
/home/samba/word/office/osa.exe
/home/samba/quicken/qversion.dll
/home/samba/quicken/qversion.dll

Share mode memory usage (bytes):
1043432(99%) free + 4312(0%) used + 832(0%) overhead = 1048576(100%) total

Opcje
-b

-d

-L

-p

Polecenie wyœwietla skrócone wyniki. Obejmuj¹ one wersjê Samby oraz informacje o u¿ytkownikach zalogowanych w serwerze.
Polecenie wyœwietla szczegó³owe wyniki, obejmuj¹ce wszystkie trzy sekcje z powy¿szego przyk³adu. Jest to opcja domyœlna.
Wyœwietla tylko bie¿¹ce blokady plików. Odpowiada to drugiej sekcji w szczegó³owych wynikach.
Wyœwietla tylko listê identyfikatorów procesu smbd. Czêsto u¿ywana w skryptach.

-S

Wyœwietla tylko listê po³¹czeñ z udzia³ami. Odpowiada to pierwszej sekcji w szczegó³owych wynikach.
-s plik_konfiguracyjny
Okreœla plik konfiguracyjny Samby u¿ywany podczas wykonywania polecenia.
-u nazwa_u¿ytkownika
Ogranicza wyniki programu smbstatus do aktywnoœci okreœlonego u¿ytkownika.

smbtar
Program smbtar to skrypt pow³oki, korzystaj¹cy z polecenia smbclient, dziêki któremu podczas archiwizowania plików mo¿na pos³u¿yæ siê bardziej zrozumia³ymi
opcjami. Funkcjonalnie jest odpowiednikiem uniksowego polecenia tar.
Opcje
-a

Zeruje bit archiwalny.

364

Dodatek D: Spis demonów i poleceñ Samby

-b rozmiar_bloku
Rozmiar bloku. Domyœlnie 20.
-d katalog
Przechodzi do wskazanego katalogu przed rozpakowaniem lub zarchiwizowaniem plików.
-i
Tryb przyrostowy; pliki zostan¹ skopiowane tylko wtedy, gdy maj¹ ustawiony
bit archiwalny. Bity archiwalne s¹ zerowane po odczytaniu ka¿dego pliku.
-l poziom_rejestrowania
Okreœla poziom rejestrowania.
-N nazwa_pliku
Kopiuje tylko te pliki, które s¹ nowsze od czasu ostatniej modyfikacji pliku
o podanej nazwie. S³u¿y do wykonywania przyrostowych kopii zapasowych.
-p has³o
Okreœla has³o dostêpu do udzia³u.
-r
Odtwarza pliki w udzia³ach z pliku tar.
-s serwer
Okreœla nazwê serwera SMB/CIFS, w którym znajduje siê udzia³.
-t taœma
Urz¹dzenie taœmowe lub plik. Domyœlnie jest to wartoœæ zmiennej œrodowiskowej $TAPE lub plik o nazwie tar.out, jeœli zmienna $TAPE nie jest ustawiona.
-u u¿ytkownik
Okreœla u¿ytkownika udzia³u. Mo¿esz podaæ tak¿e has³o, w formacie u¿ytkownik%has³o.
-v
W³¹cza tryb szczegó³owy.
-X plik
Nakazuje wy³¹czyæ podane pliki z operacji archiwizowania lub odtwarzania.
-x udzia³
Okreœla nazwê udzia³u, z którym nale¿y siê po³¹czyæ. Domyœlna nazwa to backup,
poniewa¿ kopie zapasowe czêsto wykonuje siê z wykorzystaniem udzia³u o takiej
nazwie.
Oto przyk³adowe polecenie, które archiwizuje dane u¿ytkownika zuzia:
# smbtar -s pecet -x zuzia -u zuzia -p tajne -t zuzia.tar

nmblookup
Program kliencki nmblookup sprawdza, czy us³ugi nazewnicze NetBIOS-u ponad
UDP/IP potrafi¹ odwzorowywaæ nazwy komputerów NBT na adresy IP. Polecenie
nmblookup rozg³asza zapytanie o nazwê w lokalnej podsieci i czeka, a¿ komputer o tej nazwie udzieli odpowiedzi. Polecenie to jest odpowiednikiem programów

Programy wchodz¹ce w sk³ad dystrybucji Samby

365

nslookup(1) lub dig(1), przeznaczonym dla sieci Windows. Mo¿e ono wyszukiwaæ
zarówno zwyk³e nazwy NetBIOS-owe, jak i te niezwyk³e, typu _ _ MSBROWSE_ _ ,
które s¹ u¿ywane przez mechanizmy nazewnicze Windows do œwiadczenia
us³ug katalogowych. Jeœli chcesz wys³aæ zapytanie o okreœlony typ nazwy, do³¹cz
NetBIOS-owy & lt; typ & gt; na koñcu nazwy.
Oto sk³adnia polecenia:
nmblookup [-opcje] nazwa

Oto obs³ugiwane opcje:
-A
Interpretuje nazwê jako adres IP i wysy³a zapytanie o status wêz³a pod tym adresem.
-B adres_rozg³oszeniowy
Wysy³a zapytanie na okreœlony adres_rozg³oszeniowy. Domyœlnie zapytanie jest wysy³ane pod adresem rozg³oszeniowym podstawowego interfejsu sieciowego.
-d poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania). Mo¿e
mieæ on wartoœæ od 0 do 10. Poziom diagnostyczny 0 rejestruje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe, natomiast poziomy 3 i wy¿sze s³u¿¹
g³ównie do celów diagnostycznych i znacznie spowalniaj¹ dzia³anie programu.
-h
Wyœwietla informacje o u¿yciu opcji programu.
-i zakres
Ta opcja ustawia NetBIOS-owy identyfikator zakresu. Tylko komputery o takim
identyfikatorze bêd¹ mog³y komunikowaæ siê z serwerem. Identyfikator zakresu
by³ poprzednikiem grup roboczych; opcja ta jest obs³ugiwana tylko dla zapewnienia wstecznej zgodnoœci.
-M
Znajduje g³ówn¹ przegl¹darkê lokaln¹. Stosuje w tym celu rozg³oszeniowe wyszukiwanie komputera, który odpowie na specjaln¹ nazwê _ _ MSBROWSE_ _ ,
a nastêpnie uzyskuje informacje od tego komputera, zamiast rozg³aszaæ samo zapytanie.
-R
Ustawia w pakiecie bit zezwolenia na rekurencjê. Sprawia on, ¿e komputer
udzielaj¹cy odpowiedzi spróbuje przeprowadziæ wyszukiwanie w WINS i zwróci
adres oraz inne informacje przechowywane przez serwer WINS.
-r
U¿ywa portu g³ównego o numerze 137 w komputerach Windows.
-S
Kiedy zapytanie o nazwê zwróci adres IP, wysy³a tak¿e zapytanie o status wêz³a.
Zapytanie to zwraca wszystkie typy zasobów, które s¹ znane komputerowi, wraz
z ich liczbowymi atrybutami. Na przyk³ad:

366
% nmblookup -d 4 -S FENIKS
received 6 names
FENIKS
& lt; 00 & gt;
FENIKS
& lt; 03 & gt;
FENIKS
& lt; 1d & gt;
FENIKS
& lt; 1e & gt;
FENIKS
& lt; 20 & gt;
.._ _ MSBROWSE_ _ .. & lt; 01 & gt;

Dodatek D: Spis demonów i poleceñ Samby

- & lt; GROUP & gt; B & lt; ACTIVE & gt;
B & lt; ACTIVE & gt;
B & lt; ACTIVE & gt;
- & lt; GROUP & gt; B & lt; ACTIVE & gt;
B & lt; ACTIVE & gt;
- & lt; GROUP & gt; B & lt; ACTIVE & gt;

-s plik_konfiguracyjny
Okreœla po³o¿enie pliku konfiguracyjnego Samby. Domyœlne po³o¿enie tego pliku to /usr/local/samba/lib/smb.conf, ale mo¿esz zmieniæ je z linii polecenia, zwykle
w celach diagnostycznych.
-T
Ta opcja s³u¿y do t³umaczenia adresów IP na wyszukane nazwy.
-U adres_bezpoœredni
Wysy³a zapytanie bezpoœrednio pod wskazanym adresem. U¿ywana w po³¹czeniu z opcj¹ -R do odpytywania serwerów WINS.
Zauwa¿, ¿e polecenie nmblookup nie umo¿liwia podania nazwy grupy roboczej.
Mo¿esz omin¹æ tê przeszkodê, umieszczaj¹c w pliku opcjê workgroup = nazwa_grupy i wywo³uj¹c polecenie nmblookup z opcj¹ -s plik_konfiguracyjny.

smbpasswd
Program smbpasswd ma dwie ró¿ne funkcje. Kiedy jest uruchamiany przez zwyk³ych
u¿ytkowników, zmienia ich zaszyfrowane has³a. Kiedy jest uruchamiany przez roota, uaktualnia plik zaszyfrowanych hase³. Kiedy zostanie uruchomiony przez
zwyk³ego u¿ytkownika bez ¿adnych opcji, ³¹czy siê z podstawowym kontrolerem
domeny i zmienia has³o u¿ytkownika Windows.
Program odmówi pracy, jeœli nie dzia³a demon smbd, opcje hosts allow lub hosts
deny uniemo¿liwiaj¹ po³¹czenie z lokalnym hostem (127.0.0.1) lub ustawiona jest
opcja encrypted passwords = no.
Opcje dostêpne dla zwyk³ego u¿ytkownika
-D poziom_diagnostyczny
Okreœla poziom diagnostyczny (nazywany tak¿e poziomem rejestrowania).
Mo¿e mieæ on wartoœæ od 0 do 10. Poziom diagnostyczny 0 rejestruje tylko najwa¿niejsze komunikaty, poziom 1 to ustawienie standardowe, natomiast poziomy 3
i wy¿sze s³u¿¹ g³ównie do celów diagnostycznych i znacznie spowalniaj¹
dzia³anie programu.
-h
Wyœwietla informacje o u¿yciu opcji programu.
-r nazwa_zdalnego_komputera
Okreœla komputer, w którym nale¿y zmieniæ has³o. Zdalny komputer musi byæ
podstawowym kontrolerem domeny (PDC).

Programy wchodz¹ce w sk³ad dystrybucji Samby

367

-R kolejnoϾ_odwzorowywania
Okreœla kolejnoœæ korzystania z us³ug nazewniczych. Opcja ta przypomina opcjê
konfiguracyjn¹ resolve order i mo¿e przyjmowaæ cztery parametry:
lmhosts, host, wins i bcast, w dowolnej kolejnoœci.
-U nazwa_u¿ytkownika
U¿ywana tylko w po³¹czeniu z opcj¹ -r, aby zmodyfikowaæ nazwê u¿ytkownika, która w systemie zdalnym ma inn¹ pisowniê.
Opcje dostêpne tylko dla roota
-a nazwa_u¿ytkownika
Dodaje u¿ytkownika do pliku zaszyfrowanych hase³.
-d nazwa_u¿ytkownika
Wy³¹cza konto u¿ytkownika w pliku zaszyfrowanych hase³.
-e nazwa_u¿ytkownika
W³¹cza konto u¿ytkownika w pliku zaszyfrowanych hase³.
-m nazwa_komputera
Zmienia has³o konta komputera. Konta komputerów s¹ u¿ywane do uwierzytelniania komputerów ³¹cz¹cych siê z podstawowym lub zapasowym kontrolerem
domeny.
-j nazwa_domeny
Dodaje serwer Samby do domeny Windows NT.
-n
Ustawia puste has³o u¿ytkownika.
-s nazwa_u¿ytkownika
Sprawia, ¿e program smbpasswd nie wyœwietla ¿adnych komunikatów i odczytuje stare i nowe has³a ze standardowego wejœcia, a nie z urz¹dzenia /dev/tty. Jest to
przydatne w skryptach.

testparm
Program testparm sprawdza, czy plik smb.conf jest wewnêtrznie spójny i czy nie wystêpuj¹ w nim oczywiste b³êdy. Oto sk³adnia polecenia:
testparm [opcje] nazwa_pliku_konfiguracyjnego [nazwa_hosta adres_IP]

Jeœli nie podasz nazwy pliku konfiguracyjnego, polecenie sprawdzi domyœlny plik
katalog_samby/lib/smb.conf. Jeœli podasz nazwê hosta i adres IP, polecenie przeprowadzi dodatkowy test, aby sprawdziæ, czy okreœlony komputer bêdzie móg³
³¹czyæ siê z serwerem Samby. Jeœli podasz nazwê hosta, powinieneœ podaæ tak¿e jego
adres IP.
Opcje
-h

Wyœwietla informacje o u¿yciu opcji programu.

368

Dodatek D: Spis demonów i poleceñ Samby

-L nazwa_serwera
Ustawia zmienn¹ %L pliku konfiguracyjnego na podan¹ nazwê serwera.
-s
Ta opcja sprawia, ¿e program testparm nie prosi u¿ytkownika o naciœniêcie klawisza [Enter] przed wyœwietleniem listy opcji konfiguracyjnych serwera.

testprns
Program testprns wyszukuje podan¹ nazwê drukarki w systemowym pliku z parametrami drukarek (printcap). Oto sk³adnia programu:
testprns nazwa_drukarki [nazwa_pliku_parametrów]

Jeœli nie podasz nazwy pliku z parametrami drukarek, Samba spróbuje u¿yæ nazwy
okreœlonej w pliku smb.conf. Jeœli i tam nie podano nazwy tego pliku, Samba spróbuje
u¿yæ pliku /etc/printcap. Jeœli to siê nie uda, program wyœwietli komunikat o b³êdzie.

rpcclient
Jest to nowy klient, który bada interfejsy RPC (remote procedure call – zdalne
wywo³anie procedury) serwera SMB. Podobnie jak program smbclient, program
rpcclient powsta³ jako narzêdzie testowe na potrzeby programistów Samby i prawdopodobnie nieprêdko znajdzie inne zastosowanie. Jego sk³adnia to:
rpcclient //serwer/udzia³

Opcje linii polecenia s¹ tu takie same, jak w programie smbclient z Samby 2.0, a operacje, które mo¿esz wypróbowaæ, s¹ wymienione w tabeli D.4.
Tabela D.4. Polecenia programu rpcclient
Polecenie

Opis

regenum nazwa_klucza
regdeletekey nazwa_klucza
regcreatekey nazwa_klucza
[wartoϾ klucza]
regquerykey nazwa_klucza
regdeleteval nazwa_wartoœci
regcreateval nazwa_wartoœci
typ_wartoœci wartoœæ
reggetsec nazwa_klucza
regtestsec nazwa_klucza
ntlogin [nazwa_u¿ytkownika]
[has³o]
wksinfo
srvinfo
srvsessions
srvshares

Listowanie Rejestru (klucze, wartoœci)
Usuwa klucz Rejestru
Tworzy klucz Rejestru
Sprawdza klucz Rejestru
Usuwa wartoϾ z Rejestru
Tworzy wartoϾ Rejestru
Pobiera zabezpieczenia z Rejestru
Testuje zabezpieczenia w Rejestrze
Testuje logowanie w domenie NT
Informacje o stacji roboczej
Informacje o serwerze
Listuje sesje z serwerem
Listuje udzia³y w serwerze

Programy wchodz¹ce w sk³ad dystrybucji Samby

369

Polecenie

Opis

srvconnections
srvfiles
lsaquery

Listuje po³¹czenia z serwerem
Listuje pliki w serwerze
Informacje o za³o¿eniach systemowych
(cz³onek domeny lub serwer)
Okreœla nazwy na podstawie identyfikatorów SID
Zmienia has³o w bazie danych SAM

lookupsids
ntpas

tcpdump
Program tcpdump, klasyczne narzêdzie administratora systemu, wyœwietla wszystkie nag³ówki pakietów przechodz¹cych przez interfejs sieciowy, które pasuj¹ do
podanego wyra¿enia. Wersja do³¹czona do dystrybucji Samby jest rozszerzona
o obs³ugê protoko³u SMB. Wyra¿enie mo¿e byæ wyra¿eniem logicznym zawieraj¹cym ³¹czniki „and”, „or” i „not”, choæ czasem bywa bardzo proste. Na przyk³ad
wyra¿enie host garda wybra³oby wszystkie pakiety wysy³ane lub odbierane od
hosta garda. Wyra¿enie sk³ada siê zwykle z jednego lub kilku s³ów kluczowych:
· host nazwa,
· net numer_sieci,
· port numer,
· src nazwa,
· dst nazwa.
Najczêœciej u¿ywane s³owa to src (Ÿród³o), dst (cel) i port. Na przyk³ad w tej
ksi¹¿ce u¿yliœmy polecenia:
tcpdump port not telnet

Przechwytuje ono wszystkie pakiety z wyj¹tkiem telnetu; byliœmy zalogowani przez
telnet i chcieliœmy ogl¹daæ tylko pakiety SMB.
Poni¿szy przyk³ad przechwytuje tylko ruch miêdzy serwerem a komputerami zuzia lub jacek:
tcpdump host serwer and \(zuzia or jacek \)

Zalecamy u¿ycie opcji -s 1500, abyœ móg³ przechwyciæ ca³e komunikaty SMB, a nie
tylko informacje z nag³ówka.
Opcje
Polecenie tcpdump ma wiele opcji i rozpoznaje wiele typów wyra¿eñ. Szczegó³owy
opis zaawansowanych opcji znajdziesz na stronie podrêcznika man. Poni¿ej przedstawiamy najczêœciej u¿ywane opcje:
-c liczba
Powoduje zakoñczenie pracy programu po odebraniu okreœlonej liczby pakietów.

370

Dodatek D: Spis demonów i poleceñ Samby

-F plik
Odczytuje wyra¿enie z podanego pliku i ignoruje wyra¿enia okreœlone w linii
polecenia.
-i interfejs
Wymusza monitorowanie okreœlonego interfejsu.
-r plik
Odczytuje pakiety z okreœlonego pliku (przechwycone opcj¹ -w).
-s d³ugoœæ
Zapisuje okreœlon¹ liczbê bajtów z ka¿dego pakietu (zamiast domyœlnych 68 bajtów).
-w plik
Zapisuje pakiety w okreœlonym pliku.

E

Pobieranie Samby
za pomoc¹ systemu CVS

Ten dodatek omawia pobieranie najnowszej wersji Ÿród³owej Samby za pomoc¹ systemu CVS (Concurrent Version System). System CVS to bezp³atne narzêdzie do
zarz¹dzania wersjami programu, napisane przez Cyclic Software i rozpowszechniane na zasadach Powszechnej Licencji Publicznej GNU. Najnowsz¹ wersjê CVS
mo¿esz pobraæ pod adresem http://www.cyclic.com.
CVS dzia³a w oparciu o system GNU RCS (Revision Control System). RCS wchodzi
w sk³ad wielu dystrybucji Uniksa. Jeœli jednak chcesz pobraæ najnowsz¹ wersjê RCS,
znajdziesz j¹ pod adresem http://ftp.gnu.org/gnu/rcs/.
Jedn¹ z najwiêkszych zalet CVS jest obs³uga zdalnego logowania. Oznacza to, ¿e
u¿ytkownicy Internetu z ca³ego œwiata mog¹ pobieraæ i uaktualniaæ pliki Ÿród³owe
ka¿dego projektu, który korzysta z repozytorium CVS. Tak w³aœnie jest w przypadku Samby. Kiedy zainstalujesz w swoim systemie RCS i CVS, musisz najpierw zalogowaæ siê w serwerze plików Ÿród³owych Samby za pomoc¹ nastêpuj¹cego polecenia:
cvs -d :pserver:cvs@cvs.samba.org:/cvsroot login

Informuje ono system CVS, ¿e chcesz po³¹czyæ siê z serwerem CVS o adresie cvs.samba.org. Kiedy siê po³¹czysz, mo¿esz pobraæ najnowsze drzewo plików Ÿród³owych
za pomoc¹ nastêpuj¹cego polecenia:
cvs -d :pserver:cvs@cvs.samba.org:/cvsroot co samba

Spowoduje ono pobranie ca³ej dystrybucji Samby (plik po pliku) do katalogu o nazwie /samba, który zostanie utworzony na twoim dysku twardym. Katalog ten bêdzie mia³ tak¹ sam¹ strukturê, jak Ÿród³owa dystrybucja Samby omówiona w rozdziale 2, Instalowanie Samby w Uniksie. Zawiera ona pliki Ÿród³owe i nag³ówkowe,
dokumentacjê i przyk³adowe pliki konfiguracyjne, które u³atwi¹ ci start. Kiedy pobieranie dobiegnie koñca, zajrzyj do instrukcji z rozdzia³u 2, aby skonfigurowaæ
i skompilowaæ Sambê w swoim serwerze.

Przyk³adowy plik
konfiguracyjny

F

Dodatek F: Przyk³adowy plik konfiguracyjny

W tym dodatku zamieszczamy rzeczywisty plik smb.conf, aby pokazaæ, ile spoœród
dostêpnych opcji jest wykorzystywanych w praktyce. Jest to nieco zmodyfikowana
wersja pliku, którego u¿ywaliœmy w firmie z piêcioma serwerami linuksowymi, piêcioma klientami Windows for Workgroups i piêcioma klientami Windows NT
Workstation:
# smb.conf -- Serwer plików dla sieci przyklad.COM
[globals]
workgroup = 1EG_BSC
interfaces = 10.10.1.14/24

Udostêpniamy us³ugi tylko przez jeden z interfejsów serwera. Opcja interfaces
okreœla jego adres i maskê sieciow¹, przy czym /24 oznacza to samo, co
255.255.255.0.
comment = Samba wersja %v
preexec = csh -c 'echo /usr/samba/bin/smbclient \
-M %m -I %I' &

U¿ywamy polecenia preexec w celu zarejestrowania informacji o po³¹czeniach
wed³ug nazwy komputera (%m) oraz adresu IP (%I).
# polecenie smbstatus bêdzie wyœwietlaæ informacje o bie¿¹cym statusie
Samby
status = yes
browseable = yes
printing = bsd
# nazwa konta, które bêdzie u¿ywane podczas dostêpu do udzia³ów
# oznaczonych opcj¹ 'guest ok = yes'
guest account = samba

Domyœlnym kontem goœcinnym by³o nobody, o identyfikatorze -1, co w jednym
z naszych komputerów powodowa³o pojawianie siê komunikatów „your server is
being unfriendly”, wiêc utworzyliœmy specjalne konto goœcinne Samby na potrzeby
przegl¹dania i drukowania.
# konto superu¿ytkownika - uprzywilejowany dostêp do udzia³ów,
# bez ¿adnych ograniczeñ
# OSTRZE¯ENIE: u¿ywaæ tej opcji ostro¿nie, poniewa¿ superu¿ytkownik

374

Dodatek F: Przyk³adowy plik konfiguracyjny
# bêdzie móg³ zmieniaæ pliki niezale¿nie od ich praw dostêpu
admin users = root
# u¿ytkownicy NIE maj¹cy dostêpu do ¯ADNYCH us³ug
invalid users = @wheel, mail, daemon, adt

Demony nie mog¹ u¿ywaæ Samby, tylko ludzie. Opcja invalid users zamyka
lukê w bezpieczeñstwie – uniemo¿liwia intruzom w³amanie siê pod przykrywk¹
procesu demona.
# hosty, które MOG¥ lub które NIE MOG¥ korzystaæ z us³ug
hosts allow = 10.10.1.
hosts deny = 10.10.1.6
# po³o¿enie plików blokady
lock directory = /var/lock/samba/locks
# pliki dzienników diagnostycznych
# %m: oddzielny plik dla ka¿dej nazwy NetBIOS-owej (ka¿dego komputera)
log file = /var/log/samba/log.%m
# Do dziennika systemowego wysy³amy komunikaty o priorytetach 0, 1 i 2
syslog = 2
# Jeœli do serwera zostanie wys³any komunikat WinPopup, kierujemy go do
# u¿ytkownika za pomoc¹ poczty e-mail
message command = /bin/mail -s 'komunikat od #% z komputera %m' \
pkelly & lt; %s; rm %s
# ----------------------------------------------------# [globals] Optymalizowanie wydajnoœci
# ----------------------------------------------------# buforowanie redukuje czas wykonania wywo³añ getwd()
getwd cache = yes
socket options = TCP_NODELAY
# serwer ma sprawdzaæ, czy klient jest obecny i aktywny,
# z podan¹ poni¿ej czêstotliwoœci¹
keep alive = 60
# liczba minut, po której bezczynne po³¹czenie zostanie
# uznane za przerwane
dead time = 30
read prediction = yes
share modes = yes
max xmit = 17384
read size = 512

Opcje share modes, max xmit i read size s¹ zale¿ne od komputera (patrz dodatek B, Optymalizowanie wydajnoœci Samby).
# serwer obs³uguje blokady plików
locking = yes
# dosowe atrybuty plików bêd¹ odwzorowywane na uniksowe bity
# praw do wykonania pliku

Dodatek F: Przyk³adowy plik konfiguracyjny

375

map hidden = yes
map archive = yes
map system = yes

Trzy opcje map bêd¹ dzia³a³y tylko w udzia³ach, w których tryb tworzenia plików
uwzglêdnia bity praw do wykonania (0111). Nasze udzia³y homes i printers nie
bêd¹ ich honorowaæ, ale udzia³ [www] owszem.
# ----------------------------------------------------# [globals] Bezpieczeñstwo i logowania domenowe
# ----------------------------------------------------# w po³¹czeniach sprawdzane s¹ identyfikatory u¿ytkownika
# i grupy, a nie has³a dostêpu do udzia³u
security = user
# zmienna logiczna, która okreœla, czy has³a bêd¹ szyfrowane
encrypt passwords = yes
passwd chat = " *New password:* " %n\r " *New password (again):* " %n\r \
" *Password changed* "
passwd program = /usr/bin/passwd %u
# Samba zawsze bêdzie g³ówn¹ przegl¹dark¹ lokaln¹
domain master = yes
preferred master = yes
os level = 34
# Aby logowania domenowe dzia³a³y poprawnie, Samba pracuje
# jako podstawowy kontroler domeny
domain logons = yes
# Skrypty logowania, które bêd¹ pobierane z serwera i wykonywane
# w komputerze u¿ytkownika (%U) przy ka¿dym logowaniu. Skrypty te
# ustawiaj¹ czas, ³¹cz¹ z udzia³ami, wykonuj¹ testy antywirusowe itp.
logon script = skrypty\%U.bat
[netlogon]
comment = " Us³ugi logowania domenowego "
path = /u/netlogon
writable = yes
create mode = 444
guest ok = no
volume = " Siec "

Ten udzia³, omówiony w rozdziale 6, U¿ytkownicy, bezpieczeñstwo i domeny, jest wymagany do bezproblemowej pracy Samby w domenie Windows NT.
# ----------------------------------------------------# [homes] Katalogi macierzyste u¿ytkowników
# ----------------------------------------------------[homes]
comment = " Katalog macierzysty u¿ytkownika %u "
path = /u/uzytkownicy/%u

Plik hase³ w serwerze Samby okreœla katalog macierzysty ka¿dego u¿ytkownika
jako /home/nazwa_komputera/osoba, co NFS przekszta³ca na rzeczywist¹ lokalizacjê fizyczn¹ w katalogu /u/uzytkownicy. Opcja path w udziale [homes] informuje
Sambê o rzeczywistym (a nie widzianym przez NFS) po³o¿eniu katalogów.
guest ok = no

376

Dodatek F: Przyk³adowy plik konfiguracyjny
read only = no
create mode = 644
writable = yes
browseable = no

# ----------------------------------------------------# [printers] Drukarki systemowe
# ----------------------------------------------------[printers]
comment = " Drukarki "
path = /var/spool/lpd/samba
printcap name = /etc/printcap
printable = yes
public = no
writable = no
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
lppause command = /usr/sbin/lpc stop %p
lpresume command = /usr/sbin/lpc start %p
create mode = 0700
browseable = no
load printers = yes
# ----------------------------------------------------# Indywidualne udzia³y: [programy] [dane] [www]
# ----------------------------------------------------[programy]
comment = " Wspó³dzielone programy %T "
volume = " programy "

Tekst „Wspó³dzielone programy” pojawia siê w Otoczeniu sieciowym, a programy
to nazwa wolumenu, który podajemy po to, aby programy instalacyjne rozpozna³y
etykietê CD-ROM-u, z którego – jak s¹dz¹ – s¹ uruchamiane.
path = /u/programy
public = yes
writeable = no
printable = no
create mode = 664
[cdrom]
comment = " Uniksowy CD-ROM "
path = /u/cdrom
public = no
writable = no
printable = no
volume = " cdrom "
[dane]
comment = " Katalogi danych %T "
path = /u/dane
public = no
create mode = 770
writeable = yes
volume = " dane "

Dodatek F: Przyk³adowy plik konfiguracyjny

377

[nt4]
comment = " Serwer NT4 "
path = /u/systemy/nt4
public = yes
create mode = 770
writeable = yes
volume = " serwer_nt4 "
[www]
comment = " System WWW "
path = /usr/www/http
public = yes
create mode = 775
writeable = yes
volume = " system_www "

Udzia³ [www] to katalog uniksowego serwera, zawieraj¹cy strony WWW. Samba
udostêpnia ten katalog komputerom PC, aby pracownicy dzia³u graficznego mogli
uaktualniaæ strony WWW.

O autorach
O autorach

Robert Eckstein zajmuje siê niemal wszystkim, co ma zwi¹zek z komputerami, zaczynaj¹c od renderingu i handlu elektronicznego, a koñcz¹c na konstruowaniu kompilatorów i logice rozmytej. Jego przyjaciele zgodnie twierdz¹, ¿e Robert spêdza
zbyt wiele czasu przed ekranem komputera. W wydawnictwie O'Reilly Robert pracuje g³ównie nad ksi¹¿kami poœwiêconymi Javie (w szczególnoœci Java Swing). Jest
tak¿e odpowiedzialny za tytu³y XML Pocket Reference oraz Webmaster in a Nutshell,
2nd Edition. W wolnym czasie zdarza³o mu siê publikowaæ w Sieci sprawozdania
z popularnych konferencji. Pisze tak¿e artyku³y dla magazynu „JavaWorld”. Posiada tytu³y licencjata z zakresu informatyki i komunikacji, uzyskane na Uniwersytecie
Trinity. Kiedyœ pracowa³ w firmie ubezpieczeniowej, a przez ostatnie cztery lata zajmowa³ siê oprogramowaniem dla telefonii komórkowej Motoroli. Obecnie mieszka
w Austin w Teksasie z niedawno poœlubion¹ ¿on¹, Michelle.
David Collier-Brown jest konsultantem do spraw integracji systemów. Obecnie pracuje w grupie optymalizatorów i in¿ynierów w oddziale Sun Opcom w Toronto.
W wolnym czasie niezmordowanie czyta, podlicza wyniki zespo³u baseballowego
swojej ¿ony, a latem ¿egluje w okolicach miejskiego portu.
Peter Kelly pracuje na w³asn¹ rêkê jako konsultant systemowy w Toronto, specjalizuj¹c siê w Internecie i bezpieczeñstwie sieci. Obecnie zdaje ostatnie egzaminy potrzebne do uzyskania dyplomu MCSE, ale kiedy tylko mo¿e, woli pracowaæ
w Linuksie. Kiedy nie pracuje, lubi graæ w golfa oraz czytaæ o bezpieczeñstwie, sieciach i Calvinie & Hobbesie.

Informacje licencyjne
Informacje licencyjne

Ksi¹¿ka Samba (Using Samba) mo¿e byæ swobodnie reprodukowana i rozpowszechniana w dowolnej postaci i na dowolnym noœniku fizycznym lub elektronicznym,
pod warunkiem, ¿e zostan¹ spe³nione warunki tej licencji, a reprodukcja bêdzie zawieraæ tê licencjê lub odniesienie do niej. W przypadku pe³nej reprodukcji ksi¹¿ki
odniesienie to powinno mieæ nastêpuj¹c¹ treœæ:
Copyright (c) 1999 O'Reilly & Associates. Ta ksi¹¿ka, Using Samba, first edition, zosta³a napisana przez Roberta Ecksteina, Davida Colliera-Browna i Petera Kelly'ego,
a wydana przez O'Reilly & Associates. Mo¿na j¹ rozpowszechniaæ tylko na warunkach i zasadach okreœlonych w licencji, która obecnie jest dostêpna pod adresem
http://www.oreilly.com/catalog/samba/licenseinfo.html.
W przypadku wykorzystania ustêpów z tej ksi¹¿ki odniesienie powinno mieæ nastêpuj¹c¹ treœæ:
Copyright (c) 1999 O'Reilly & Associates. Niniejszy materia³ pochodzi z ksi¹¿ki
Using Samba, first edition, napisanej przez Roberta Ecksteina, Davida Colliera-Browna i Petera Kelly'ego oraz wydanej przez O'Reilly & Associates. Mo¿na go rozpowszechniaæ tylko na warunkach i zasadach okreœlonych w licencji, która obecnie jest
dostêpna pod adresem http://www.oreilly.com/catalog/samba/licenseinfo.html.
T³umaczenia musz¹ zawieraæ podobne odniesienia w jêzyku przek³adu. Przyk³adowe
odniesienie dla t³umaczenia mo¿e mieæ nastêpuj¹c¹ treœæ:
Copyright (c) 1999 [posiadacz praw do t³umaczenia]. Jest to t³umaczenie ksi¹¿ki
Using Samba, first edition, napisanej przez Roberta Ecksteina, Davida Colliera-Browna i Petera Kelly'ego oraz wydanej przez O'Reilly & Associates. Mo¿na je rozpowszechniaæ tylko na warunkach i zasadach okreœlonych w licencji, która obecnie jest
dostêpna pod adresem http://www.oreilly.com/catalog/samba/licenseinfo.html.
Dozwolona jest zarówno komercyjna, jak i niekomercyjna redystrybucja tej ksi¹¿ki,
jednak¿e pod pewnymi warunkami:
1. Wszystkie kopie dowolnej wersji tej ksi¹¿ki, w tym dzie³a pochodne, powinny zawieraæ dobrze widoczn¹ notê z nazwiskami autorów orygina³u oraz informacjê o pierwotnym opublikowaniu ksi¹¿ki przez wydawnictwo O'Reilly & Associates. Ka¿da
publikacja w postaci fizycznej (papierowej) ksi¹¿ki powinna mieæ na zewnêtrznej
ok³adce nazwiska autorów oraz nazwê wydawnictwa O'Reilly & Associates.
2. O wszelkich zmianach nale¿y informowaæ w podany ni¿ej sposób.
3. T³umaczeñ nie mo¿na rozpowszechniaæ w postaci drukowanej bez uprzedniego
zezwolenia od O'Reilly & Associates. Do ka¿dego t³umaczenia, czy to dokonanego przez O'Reilly & Associates, czy te¿ przez inne strony, maj¹ zastosowanie te
same warunki, co do wersji oryginalnej.
WERSJE ZMODYFIKOWANE. Wersje zmodyfikowane musz¹ zawieraæ widoczn¹
notê, opisuj¹c¹ dokonane zmiany, oraz adres URL albo inn¹ informacjê niezbêdn¹
do uzyskania oryginalnego dzie³a. O'Reilly & Associates oraz zespó³ programistów

382

Informacje licencyjne

Samby nie ponosz¹ odpowiedzialnoœci za poprawnoœæ modyfikacji nie do³¹czonych
do pierwotnie rozpowszechnianej wersji. Nazwisk pierwotnych autorów i nazw
„O'Reilly & Associates " oraz „zespó³ Samby " nie mo¿na wykorzystywaæ jako gwarancji jakoœci wynikowego dzie³a, o ile wczeœniej nie uzyska siê odpowiedniego zezwolenia. Ka¿dy, kto rozpowszechnia wersjê tej ksi¹¿ki ze zmianami w tekœcie, rysunkach lub dowolnym innym elemencie musi udostêpniæ zmodyfikowan¹ wersjê
w standardowym formacie Ÿród³owym wydawnictwu O'Reilly i zespo³owi Samby,
na takich samych warunkach, na jakich udostêpniana jest wersja oryginalna.
Zwyk³e po³¹czenie tego dzie³a (lub jego czêœci) z innymi dzie³ami lub programami na
tym samym noœniku nie powoduje objêcia innych dzie³ niniejsz¹ licencj¹. Po³¹czone
dzie³o musi zawieraæ tê licencjê oraz notê informuj¹c¹ o do³¹czeniu materia³u.
Wydawnictwo O'Reilly zachowuje wszystkie prawa autorskie, dopóki nie zaprzestanie drukowania tej ksi¹¿ki. Ksi¹¿ka ta bêdzie jednak aktualizowana przez zespó³
Samby. Wszystkie zmiany dokonane przez wydawnictwo zostan¹ przekazane ze spo³owi Samby i vice versa.
T£UMACZENIA. W przypadku t³umaczeñ wydawnictwo O'Reilly zdecyduje, kiedy uaktualniæ i ponownie wydaæ drukowan¹ wersjê. Jeœli wydawnictwo zaniecha
drukowania t³umaczeñ na d³u¿ej ni¿ szeœæ miesiêcy, prawa autorskie i inne prawa
przechodz¹ na rzecz zespo³u Samby.
ROZ£¥CZNOŒÆ. Jeœli dowolna czêœæ tej licencji nie bêdzie mia³a zastosowania ze
wzglêdu na obowi¹zuj¹ce prawo, pozosta³e czêœci pozostaj¹ w mocy.
BRAK GWARANCJI. To dzie³o jest udostêpniane „tak, jak jest " , bez jakiejkolwiek gwarancji, jawnej czy domyœlnej, ³¹cznie, choæ nie tylko, z domyœlnymi gwarancjami przydatnoœci handlowej, przydatnoœci do konkretnych zastosowañ i nienaruszalnoœci.
ZALECANA PRAKTYKA. Niezale¿nie od wymogów tej licencji, prosimy redystrybutorów o spe³nienie poni¿szych zaleceñ:
1. Jeœli wydajesz to dzie³o drukiem lub na CD-ROM-ie, powiadom o tym autorów
za pomoc¹ e-maila co najmniej trzydzieœci dni przed planowanym zamro¿eniem
manuskryptu lub noœnika, aby autorzy mieli czas na dostarczenie zaktualizowanych dokumentów. W powiadomieniu wspomnij o modyfikacjach, którym poddano dokument.
2. Wszystkie istotne modyfikacje (tak¿e te polegaj¹ce na usuniêciu tekstu) powinny
byæ czytelnie oznaczone w samym dokumencie lub opisane w za³¹czniku do dokumentu.
3. Choæ licencja tego nie nakazuje, uwa¿amy za stosowne zaoferowanie bezp³atnej kopii drukowanej lub elektronicznej wersji tego dzie³a pierwotnym autorom i twórcom oprogramowania.
4. T³umaczenia powinny zawieraæ tê licencjê w jêzyku przek³adu.

Indeks

*
# (hash), komentarz w smb.conf,
80
% (znak procentu), 80
\ (odwrotny ukoœnik)
w udzia³ach, 5
znak kontynuacji, 79
\\ (dwa odwrotne ukoœniki), w
udzia³ach 5
* (gwiazdka)
nazwy NetBIOS-owe, 12
wy³¹czanie konta, 160
zmiana has³a, 168
. (kropka)
ukrywanie plików, 120
w nazwach NetBIOS-owych, 12
w plikach uniksowych, 126
..__MSBROWSE__., 111
/ (ukoœnik), we wzorcach, 121
; (œrednik), komentarz w
smb.conf, 80
? (znak zapytania), 126
@ (znak at), w nazwach grup,
153-154
_ (znak podkreœlenia), 109
__MSBROWSE__, 15
~ (tylda), znak przekszta³cania,
138
& lt; & gt; (nawiasy ostrok¹tne), typ zasobu, 13

A
admin users, opcja, 152
Adres IP, karta, 53; 64
Adres WINS, karta, 66
adresy rozg³oszeniowe, 276
adresy, rozwi¹zywanie problemów, 275
algorytmy szyfrowania hase³, 163
aliasy NetBIOS-owe, 99

allow hosts, opcja, 96
announce as, opcja, 115
announce version, 116
application programming interface (API), 8
atrybuty plików w Windows, 127
auto services, opcja, 116

B
backup domain controller
(BDC), 18
.BAT, pliki, 182
bind interfaces only, opcja, 98
blocking locks, opcja, 143
blokady, 139
fa³szywe, 144
na poziomie j¹dra, 141; 144
oportunistyczne, 139
w trybie odmowy, 139; 142
w Uniksie i w Windows, 141
wstrzymuj¹ce, 143
browse list, opcja, 116
browseable, opcja, 116

C
Ca³a sieæ, ikona, 4
case sensitive, opcja, 137
Certification Authority (CA), 281
certyfikaty SSL, 281
change notify timeout, opcja,
227
character set, opcja, 224
client code page, opcja, 223
.CMD, pliki, 182
coding system, opcja, 224
comment, opcja, 92
Common Internet File System
(CIFS), 2
config file, opcja, 85
configure, skrypt, 35

copy, opcja, 86
create mask, opcja, 131

D
datagramy, 15
deadtime, opcja, 230
debug timestamp, opcja, 105
default case, opcja, 137
default service, opcja, 117
default, opcja, 117
delete readonly, opcja, 132
delete veto files, opcja, 126
demony Samby
sprawdzanie dowi¹zañ do
portów, 253
sprawdzanie za pomoc¹ telnetu, 254
testowanie za pomoc¹ polecenia testparm, 45, 254
uruchamianie, 43
wyszukiwanie za pomoc¹ polecenia ps, 252
deny hosts, opcja, 97
dfree command, opcja, 230
diagnozowanie usterek
drzewo b³êdów, 245
pliki dziennika, 239
polecenie trace, 243
poziomy rejestrowania, 240
problemy z demonami serwera, 252
problemy z nazwami NetBIOS-owymi, 277
problemy z po³¹czeniami
SMB, 256
problemy z przegl¹daniem, 263
program tcpdump, 244
testowanie po³¹czeñ za pomoc¹ Eksploratora Windows, 261
testowanie TCP, 251

384
testowanie za pomoc¹ ping,
246; 251
w³¹czanie i wy³¹czanie rejestrowania, 242
directory mask, opcja, 132
directory, opcja, 91
dns proxy, opcja, 216
DNS, karta, 65
dokumentacja Samby, 278
domain group map, opcja, 180
domain logons, opcja, 176; 180
domain master, opcja, 118
Domain Name System (DNS), 65
domain user map, opcja, 181
domeny Windows, 17
dodawanie serwera Samby,
162
konfigurowanie Samby jako
kontrolera, 175
konta zaufania, 176
domyœlne us³ugi, 108
dont descend, opcja, 125
dos filetime resolution, opcja,
221
dos filetimes, opcja, 220
dostêp do serwera, 94
dowi¹zania do plików, 122
drukowanie
automatyczna konfiguracja
sterowników, 199-202
konfigurowanie klientów Windows, 197
mechanizmy wydruku, 192
minimalna konfiguracja, 193
minimalna przestrzeñ dyskowa, 211
na drukarkach Windows, 202
w BSD, 204
w System V, 204
polecenia wydruku, 192
testowanie wydruku, 196
wstrzymywanie i wznawianie
kolejkowania, 212
wysy³anie zleceñ wydruku, 191
zmienne, 192
drzewo b³êdów, 245
jak korzystaæ z, 246

E
encrypt passwords, opcja, 171
/etc/inetd.conf, plik konfiguracyjny, 45
/etc/printcap, plik, 211

Indeks
/etc/resolv.conf, plik konfiguracyjny, 54
/etc/services, plik konfiguracyjny, 44

F
fake directory create times,
opcja, 221
fake oplocks, opcja, 144
follow symlinks, opcja, 125
force create mode, opcja, 132
force directory mode, opcja, 132
force group, opcja, 132
force user, opcja, 132
format 8.3, 134
fstype, opcja, 230

G
getwd cache, opcja, 125
globalne, opcje konfiguracyjne,
82
[globals], sekcja smb.conf, 82
g³ówna przegl¹darka domeny,
22; 112; 118
g³ówna przegl¹darka lokalna,
19; 109
gniazda sieciowe, opcje, 300
group, opcja, 132
grupa robocza, 14
a domena, 17
obejmuj¹ca wiele podsieci, 22
obejmuj¹ca wiele podsieci, 112
guest account, opcja, 153
guest ok, opcja, 92
guest only, opcja, 153

zmiana has³a Windows, 49
zmiana za pomoc¹ skryptu
chat, 168
zmiana zaszyfrowanych, 167
Has³a, aplet Panelu sterowania,
47
hide dot files, opcja, 126
hide files, opcja, 125
homedir map, opcja, 189
[homes], sekcja smb.conf, 83
hosts allow, opcja, 96
hosts deny, opcja, 97
hosts equiv, opcja, 174
HOSTS, plik hostów w Windows, 56; 67
hosts.allow, plik, 94
hosts.deny, plik, 94
hosts.equiv, plik, 174

I
identyfikator drzewa, 70; 74
include, opcja, 86
inetd, demon internetowy, 44
instalowanie Samby
dodatkowe opcje kompilacji, 34
dokumentacja, 31
kompilowanie, 36
koñcowe czynnoœci, 38
opcje kompilacji, 32-34
pakiety binarne i Yród³owe, 30
pobieranie dystrybucji, 29
wymagany kompilator, 31
interfaces, opcja, 98
Internet Engineering Task Force
(IETF), 9
invalid users, opcja, 152

H

K

has³a, 163
algorytmy szyfrowania, 163
debugowanie skryptu zmiany
has³a, 172
równowa¿ne jawnemu tekstowi, 164
suma mieszana, 166
synchronizowanie, 167
szyfrowanie, 39; 59; 69
u¿ytkownika Windows, 47
wy³¹czanie szyfrowania w
klientach, 164
zaszyfrowane i niezaszyfrowane, 159; 163

katalogi macierzyste, 149
keep alive, opcja, 231
kernel oplocks, opcja, 144
klienty Windows 95/98
dodawanie obs³ugi TCP/IP, 51
konfigurowanie, 47
konfigurowanie logowania
domenowego, 177
konfigurowanie wydruku, 197
ustawianie nazwy, 57
klienty Windows NT
instalowanie obs³ugi TCP/IP, 61
instalowanie us³ugi stacji roboczej, 62

Indeks
konfigurowanie, 59
konfigurowanie logowania
domenowego, 178
konfigurowanie TCP/IP, 63
konfigurowanie wydruku, 197
nadawanie nazwy, 60
komentarze, w pliku smb.conf,
80
komunikaty SMB, 70
Konfiguracja DNS, karta, 54
Konfiguracja WINS, karta, 55
konfigurowanie
klientów Windows 95/98, 47
klientów Windows NT, 59
logowania domenowego w
Windows 95/98, 177
logowania domenowego w
Windows NT, 178
Samby do obs³ugi SSL, 286
Samby jako kontrolera domeny, 175; 177
Samby jako serwera WINS,
214
serwera Samby, 87
TCP/IP w Windows, 50
udzia³ów dyskowych, 90
konta
goœcia, 92
okreœlanie konta goœcia, 153
u¿ytkowników i grup, 147
znaczniki konta w Windows,
166
zaufania, 176
kontrola dostêpu, 150
kontroler domeny, 17
podstawowy i zapasowy, 18
Samba jako podstawowy, 175
kopie zapasowe, tworzenie, 234;
237
kopiowanie sekcji smb.conf, 86
kreator dodawania drukarki, 197

L
LAN Manager
wysy³anie og³oszeñ, 117
ldd, program, 31
Ligthweight Directory Access
Protocol (LDAP), 170
lista przegl¹dania, 109
lista przegl¹dania, 19
³adowanie drukarek, 211
rozpowszechnianie, 22
synchronizowanie, 114; 119

385
udostêpnianie w innych podsieciach, 119
wstêpne ³adowanie zasobów,
116
wy³¹czanie, 116
lm announce, opcja, 117
lm interval, opcja, 118
LMHOSTS, plik, 213
load printers, opcja, 211
local group map, opcja, 181
local master, opcja, 117
lock directory, opcja, 145
locking, opcja, 143
log file, opcja, 104
log level, opcja, 104
logon drive, opcja, 187
logon home, opcja, 187
logon path, opcja, 186
logon script, opcja, 186
logowania domenowe, 26
logowanie
logowania domenowe, 177
skrypty logowania, 182
problemy przy braku zalogowania, 269
lppause command, opcja, 209
lpq cache time, opcja, 209
lpq command, opcja, 209
lpresume command, opcja, 209
lprm command, opcja, 209
LPRNG (LPR New Generation),
210

M
machine password timeout,
opcja, 227
magic output, opcja, 222
magic script, opcja, 222
magiczne skrypty, 221
make_printerdef, skrypt, 200
mangle case, opcja, 138
mangled map, opcja, 139
mangled names, opcja, 138
mangled stack, opcja, 139
mangling char, opcja, 138
map archive, opcja, 133
map hidden, opcja, 133
map system, opcja, 133
maska sieciowa, 275
maski tworzenia plików, 129
wymuszanie praw dostêpu, 129
max connections, opcja, 153
max disk size, opcja, 231

max log size, opcja, 104
max mux, opcja, 231
max open files, opcja, 231
max ttl, opcja, 217
max wins ttl, opcja, 217
max xmit, opcja, 231
Maximum Segment Size (MSS),
301
Maximum Transport Unit
(MTU), 301
message command, opcja, 226
min print space, opcja, 211
min wins ttl, opcja, 217

N
name resolve order, opcja, 217
net use, polecenie Windows,
259
NET VIEW, polecenie Windows, 267
netbios aliases, opcja, 99
NetBIOS Extended User Interface (NetBEUI), 8
NetBIOS Name Server (NBNS),
9; 23
netbios name, opcja, 88
NetBIOS over TCP/IP (NBT), 9
[netlogon], udzia³ dyskowy,
176, 182
netstat, polecenie, 253
Network Basic Input/Output
System (NetBIOS), 8
datagramy i sesje, 15
nazwy, 12
nazwy komputerów, 9
serwer NBNS, 9-11
typy wêz³ów, 11
typy zasobów, 13
wspó³praca z TCP/IP, 9
Network Information Service
(NIS), 189
nis homedir, opcja, 189
nmbd, demon, 25
nmblookup, program, 265
nt pipe support, opcja, 232
nt smb support, opcja, 232
null password, opcja, 173

O
Object Linking and Embedding
(OLE), 232
obrona nazwy hosta, 10

386
odwzorowywanie atrybutów
plików, 128
ole locking compatibility, 232
only user, opcja, 158
Open Source Software (OSS), 2
oplocks, opcja, 144
optymalizowanie wydajnoœci, 297
blokady oportunistyczne, 301
okna odbiorcze TCP, 302
pomiar wydajnoœci, 299
przyk³ady praktyczne, 309
rozmiar pakietu IP, 301
skalowanie, 305
w¹skie gard³a, 305
zmieniane opcje, 299
os level, opcja, 118
Otoczenie sieciowe (Windows), 4

P
panic action, opcja, 232
passwd chat debug, opcja, 172
passwd chat, opcja, 172
passwd program, opcja, 172
password level, opcja, 173
password server, opcja, 160
path, opcja, 91
ping, polecenie
testowanie oprogramowania
sieciowego, 246
testowanie po³¹czeñ, 248
testowanie sprzêtu sieciowego, 247
testowanie us³ug nazewniczych, 247
pliki
definicji drukarki, 200
dowi¹zania do, 122
format 8.3, 134; 138
maksymalna liczba otwartych,
231
maski tworzenia plików, 129
odwzorowywanie atrybutów,
128
prawa dostêpu w DOS-ie i
Uniksie, 126
przekszta³canie nazw, 134
reprezentowanie i ustalanie
nazw, 135
ukrywanie plików, 120
usuwanie plików tylko do odczytu, 132
usuwanie zawetowanych, 126
wetowanie plików, 121

Indeks
wielkoϾ liter w nazwie, 136
z kropk¹, 120
pliki dziennika
maksymalny rozmiar, 104
okreœlanie po³o¿enia, 104
rejestrowanie czasu, 105
PLP (Public Line Printer), 210
pluggable authentication modules (PAM), 170
podstawowy serwer WINS, 24
podtrzymywanie po³¹czenia, 231
postexec, opcja, 189
postscript, opcja, 209
powiadamianie o zmianie, 227
powi¹zania, 67
Powi¹zania, karta, 56
poziomy rejestrowania, 102-104;
240
poziomy zabezpieczeñ, 155
prawa dostêpu do plików,
126-129
preexec, opcja, 188
preferowana przegl¹darka
g³ówna, 111; 118
preferred master, opcja, 118
preload, opcja, 116
preserve case, opcja, 137
primary domain controller
(PDC), 18
print command, opcja, 209
printable, opcja, 207
printcap name, opcja, 211
printcap, opcja, 211
printer driver file, opcja, 208
printer driver location, opcja,
208
printer driver, opcja, 208
printer name, opcja, 207
printer, opcja, 207
[PRINTER$], udzia³, 201
[printers], sekcja smb.conf, 84
[printers], udzia³, 195
printing, opcja, 206
profile u¿ytkownika, 183-185
przegl¹danie, 19; 107
poziomy, 19
preferowana przegl¹darka,
111
rozwi¹zywanie problemów z,
263-269
wybory, 21
wybory, 109
zapobieganie przegl¹daniu,
107

przegl¹darka zapasowa, 20
przekszta³canie nazw plików,
134
przerwanie blokady, 140
public, opcja, 92

Q
queuepause command, 212
queuresume command, opcja,
212

R
read list, opcja, 153
read only, opcja, 93
rejestrowanie nazw, 9
rejestrowanie zdarzeñ, 100
remote announce, opcja, 119
remote browse sync, opcja, 119
remote procedure call (RPC),
161
reprezentowanie nazw plików,
135
revalidate, opcja, 159; 181
.rhosts, plik, 174
root postexec, opcja, 189
root preexec, opcja, 188
ró¿nice w systemach plików,
119

S
Samba
dokumentacja, 278
drzewo b³êdów, 245
funkcje pe³nione w sieci, 24
grupy dykusyjne, 278
grupy wysy³kowe, 279
instalowanie w Uniksie, 29-38
integracja z Windows NT, 161
internacjonalizacja, 222
jako podstawowy kontroler
domeny, 175
jako serwer WINS, 214
kompilowanie, 36
narzêdzia testowe, 243
nowe opcje w wersji 2.0, 227
nowoœci w wersji 2.0, 26-28
obs³uga domen NT, 26
obs³ugs SSL, 281
odwzorowywanie nazw, 212
opcje kompilacji, 32-34
opcje konfiguracji hase³, 170

Indeks
opcje konfiguracji SSL, 291
opcje kontroli dostêpu, 152
opcje pomocne dla programistów, 219
opcje praw dostêpu do plików, 130
opcje przegl¹dania, 114
opcje przekszta³cania nazw
plików, 136
opcje sieciowe, 94
opcje systemu plików, 123
optymalizowanie wydajnoœci,
297
pliki dziennika, 239
pobieranie, 26
pochodzenie nazwy, 2
podstawowy plik konfiguracyjny, 39
programy w dystrybucji, 25
przekszta³canie nazw plików,
134
status, 8
testowanie demonów, 45
uruchamianie demonów, 43
wspó³praca z NIS, 189
wspó³praca z serwerem WINS,
213
wydajnoϾ, 27
zadania demonów, 25
zastosowania, 3
zgodnoϾ z Windows NT, 17; 27
zmienne, 80
Samba Web Administration
Tool (SWAT), 26
korzystanie z programu, 40
uzupe³nianie plików konfiguracyjnych, 38
Samba, serwery wirtualne, 99
Secure Sockets Layer (SSL), 281
certyfikaty, 281
serwis certyfikacyjny, 281
security account manager
(SAM), 18
security authentication module
(SAM), 161
server string, opcja, 89
sesje, 15
set directory, opcja, 232
share modes, opcja, 142
short preserve case, opcja, 138
skalowanie serwera Samby, 305
skrypty logowania, 182
skrypty po³¹czeniowe, 187
smb passwd file, opcja, 174

387
smb.conf
komentarze, 80
kontynuowanie linii, 79
przyk³adowy plik, 77
sekcja [globals], 82
sekcja [homes], 83
sekcja [printers], 84
sekcje specjalne, 82
struktura pliku, 78
testowanie za pomoc¹ testparm, 42
tworzenie w programie
SWAT, 40
wielkoϾ liter, 79
zmienne, 80
SMB/CIFS, protokó³, 69
format komunikatu SMB, 70
format poleceñ SMB, 71
klienty i serwery, 72
nawi¹zywanie po³¹czenia z
zasobem, 76
negocjowanie dialektu, 74
odmiany, 71
parametry sesji i logowania, 75
przyk³adowe po³¹czenie, 73
SMB/CIFS, sieæ, 8
smbclient, program, 45
smbd, demon, 25
smbpasswd, plik, 163
dodawanie wpisów, 166
struktura, 165
smbpasswd, program, 59; 167
smbrun, opcja, 233
smbstatus, program, 7
smbtar, program, 234
smbwrapper, biblioteka, 28
socket address, opcja, 99
ssl CA certDir, opcja, 293
ssl CA certFile, opcja, 293
ssl ciphers, opcja, 295
ssl client cert, opcja, 294
ssl client key, opcja, 294
ssl compatibility, opcja, 295
ssl hosts resign, opcja, 293
ssl hosts, opcja, 292
SSL Proxy, program, 282
konfigurowanie, 290
ssl require clientcert, opcja, 294
ssl require servercert, opcja, 295
ssl server key, opcja, 293; 294
ssl version, opcja, 295
ssl, opcja, 292
SSLeay, biblioteka, 282
instalowanie, 283

konfigurowanie, 285
stat cache size, opcja, 228
stat cache, opcja, 228
status Samby, 8
status, opcja, 233
stos przekszta³conych nazw, 139
strict locking, opcja, 143
strict sync, opcja, 233
strip dot, opcja, 233
strony kodowe, 223
sync always, opcja, 233
syslog only, opcja, 105; 106
syslog, opcja, 105
syslog, rejestrator systemowy,
102
konwersja priorytetów, 105
œcie¿ki do udzia³ów, 91

T
tcpdump, program, 244
testparm, program, 42
testprns, program, 196
time offset, opcja, 220
time server, opcja, 220
timestamp logs, opcja, 105
trace, polecenie, 243
Tridgell, Andrew, 2
tryby udzia³ów, 142

U
udzia³y
kontrola dostêpu, 150
goœcinne, 153
udzia³y dyskowe
[netlogon], 176
goœcinny dostêp, 92
konfigurowanie, 90
nazwa wolumenu, 93
tylko do odczytu, 94
us³uga domyœlna, 108
ukrywanie plików, 120
ukrywanie zawartoœci katalogów, 121
Uniform Resource Locator
(URL), 5
Universal Naming Convention
(UNC), 5
unix password sync, opcja, 171
unix realname, opcja, 124
update encrypted, opcja, 172;
173
use rhosts, opcja, 174

388
username level, opcja, 155
username map, opcja, 154
username, opcja, 159
us³ugi nazewnicze
identyfikowanie dzia³aj¹cych
us³ug, 270
kolejnoϾ korzystania z, 214
rozwi¹zywanie problemów z,
269; 275
testowanie za pomoc¹ ping,
247
w NetBIOSie, 9
ustalanie nazw plików, 135
uwierzytelnianie
poziomy zabezpieczeñ, 155
u¿ytkownicy
nieuprawnieni do korzystania
z udzia³ów, 150
goœcinni, 151
nazwy w Uniksie i w Windows, 154
profile obowi¹zkowe, 185
profile przechodnie, 183
t³umaczenie nazw uniksowych na nazwy Windows,
181
udzia³ [homes], 149

Indeks
uprawnieni do korzystania z
udzia³ów, 147
uwierzytelnianie, 155

V
valid chars, opcja, 225
valid users, opcja, 152
veto files, opcja, 126
veto oplock files, opcja, 145
volume, opcja, 93

W
wartoœci opcji, 84
w¹skie gard³a, 305
eliminowanie, 306
wetowanie plików, 121
wêz³y NetBIOS-owe, 11
wide links, opcja, 125
wielkoϾ liter
domyœlna, 137
w nazwach plików, 136
w nazwach u¿ytkowników,
155
wielkoϾ liter, w pliku
smb.conf, 79

Windows Internet Name Service (WINS), 23; 212
WinPopup, 225
wins proxy, opcja, 216
wins server, opcja, 216
wins support, opcja, 216
wirtualne, serwery, 99
wolumenu, nazwa, 93
workgroup, opcja, 89
write list, opcja, 153
writeable, opcja, 93
wybory przegl¹darek, 21; 110
wy³anianie zwyciêzcy, 110

Z
zabezpieczenia
na poziomie serwera, 160
na poziomie udzia³u, 156
na poziomie u¿ytkownika, 159
zdalne wywo³ania procedury, 161
Zmiany identyfikacji, okno dialogowe, 60
zmienne
w pliku smb.conf, 80
zwi¹zane z drukowaniem, 193
zwi¹zane z WinPopup, 227