summaryrefslogtreecommitdiff
path: root/docs-xml/Samba3-HOWTO/TOSHARG-upgrading-to-3.0.xml
blob: 7ae6fd5bc2c41b229ab785e37a1786f157ce5082 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
<chapter id="upgrading-to-3.0">
<chapterinfo>
	&author.jelmer;
	&author.jht;
	&author.jerry;
	<pubdate>August 16, 2007</pubdate>
</chapterinfo>

<title>Updating and Upgrading Samba</title>
<para>
This chapter provides a detailed record of changes made during the 3.x series releases. At this time this
series consists of the 3.0.x series that is under the GNU GPL version 2 license, and the Samba 3.2.x series
that is being released under the terms of the GNU GPL version 3 license.
</para>

<sect1>
<title>Key Update Requirements</title>
<para>
Samba is a fluid product in which there may be significant changes between releases. Some of these changes are
brought about as a result of changes in the protocols that are used by Microsoft Windows network clients as a
result of security or functionality updates through official Microsoft patches and updates. Samba must track
such changes, particularly where they affect the internal operation of Samba itself.
</para>

<para>
Please refer to any notes below that make explicit mention of the version of Samba you are using. In general,
all changes that apply to a new release will apply to follow-on releases also. For example, changes to Samba
3.0.23 affect all releases up to an including 3.0.25 and later.  Samba 3.2.x was originaly cut from Samba
3.0.25 before 3.2.0-specific changes were applied. Unless a 3.0.x series feature is specifically revoked, the
behavior of the 3.2.x series can be expected to follow the earlier pattern.
</para>

<sect2>
<title>Upgrading from Samba-3.0.x to Samba-3.2.0</title>
<para>
</para>
</sect2>

<sect2 id="oldupdatenotes">
<title>Upgrading from Samba-2.x to Samba-3.0.25</title>
<para>
<indexterm><primary>Samba differences</primary></indexterm>
<indexterm><primary>changed parameters</primary></indexterm>
<indexterm><primary>simple guide</primary></indexterm>
This chapter deals exclusively with the differences between Samba-3.0.25 and Samba-2.2.8a.
It points out where configuration parameters have changed, and provides a simple guide for
the move from 2.2.x to 3.0.25.
</para>
</sect2>

<sect2>
<title>Quick Migration Guide</title>

<para>
Samba-3.0.25 default behavior should be approximately the same as Samba-2.2.x.
The default behavior when the new parameter <smbconfoption name="passdb backend"/>
is not defined in the &smb.conf; file provides the same default behavior as Samba-2.2.x
with <smbconfoption name="encrypt passwords">Yes</smbconfoption> and
will use the <filename>smbpasswd</filename> database.
</para>

<para>
<indexterm><primary>behavior approximately same</primary></indexterm>
<indexterm><primary>differing protocol</primary></indexterm>
So why say that <emphasis>behavior should be approximately the same as Samba-2.2.x</emphasis>? Because
Samba-3.0.25 can negotiate new protocols, such as support for native Unicode, that may result in
differing protocol code paths being taken. The new behavior under such circumstances is not
exactly the same as the old one. The good news is that the domain and machine SIDs will be
preserved across the upgrade.
</para>

<para>
<indexterm><primary>LDAP backend</primary></indexterm>
<indexterm><primary>database</primary></indexterm>
<indexterm><primary>pdbedit</primary></indexterm>
<indexterm><primary>Samba-3-compatible LDAP backend</primary></indexterm>
If the Samba-2.2.x system is using an LDAP backend, and there is no time to update the LDAP
database, then make sure that <smbconfoption name="passdb backend">ldapsam_compat</smbconfoption>
is specified in the &smb.conf; file. For the rest, behavior should remain more or less the same.
At a later date, when there is time to implement a new Samba-3-compatible LDAP backend, it is possible
to migrate the old LDAP database to the new one through use of the <command>pdbedit</command>.
See <link linkend="pdbeditthing">The <emphasis>pdbedit</emphasis> Command</link>.
</para>

</sect2>
</sect1>

<sect1>
<title>New Features in Samba-3.x Series</title>
<para>
</para>

<sect2>
<title>New Features in Samba-3.2.x Series</title>

<para>Samba is now distributed under the version 3
of the new GNU General Public License. 
</para>

<para>
The major new features are:
</para>


<orderedlist numeration="arabic">
	<listitem><para>
<indexterm><primary>File Service</primary></indexterm>
<indexterm><primary>limit</primary></indexterm>
	Removal of the 1024 byte limit on pathnames and 256 byte limit on
	filename components to honor the MAX_PATH setting from the host OS.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Registory</primary></indexterm>
<indexterm><primary>Configuration</primary></indexterm>
	Introduction of a registry based configuration system.
	</para></listitem>

	<listitem><para>
<indexterm><primary>cluster</primary></indexterm>
	Experimental support for file serving clusters.
	</para></listitem>

	<listitem><para>
<indexterm><primary>IPv6</primary></indexterm>
	Support for IPv6 in the server, and client tools and libraries.
	</para></listitem>

	<listitem><para>
<indexterm><primary>alternate data streams</primary></indexterm>
	Support for storing alternate data streams in xattrs.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Encrypted SMB transport</primary></indexterm>
	Encrypted SMB transport in client tools and libraries, and server.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Windows Vista</primary></indexterm>
	Support for Vista clients authenticating via Kerberos.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Winbind</primary></indexterm>
<indexterm><primary>forest</primary></indexterm>
	Full support for Windows 2003 cross-forest, transitive trusts
	and one-way domain trusts.
	</para></listitem>

	<listitem><para>
<indexterm><primary>pam_winbind</primary></indexterm>
	Support for userPrincipalName logons via pam_winbind and NSS lookups.
	</para></listitem>

	<listitem><para>
<indexterm><primary>LDAP</primary></indexterm>
<indexterm><primary>Active Directory</primary></indexterm>
<indexterm><primary>Signing</primary></indexterm>
	Support for Active Directory LDAP Signing policy.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Licence</primary></indexterm>
<indexterm><primary>GPL</primary></indexterm>
	New LGPL Winbind client library (libwbclient.so).
	</para></listitem>

	<listitem><para>
<indexterm><primary>domain</primary></indexterm>
<indexterm><primary>domain trust</primary></indexterm>
	Support for establishing interdomain trust relationships with Windows 2008.
	</para></listitem>

	<listitem><para>
<indexterm><primary>joining</primary></indexterm>
	New client and server support for remotely joining and unjoining Domains.
	</para></listitem>


        <listitem><para>
<indexterm><primary>joining</primary></indexterm>
        Support for joining into Windows 2008 domains.
        </para></listitem>

</orderedlist>

<para>
Plus lots of other improvements!
</para>


</sect2>

<sect2>
<title>New Features in Samba-3.0.x</title>

<para>
The major new features are:
</para>

<orderedlist numeration="arabic">
	<listitem><para>
<indexterm><primary>ADS</primary></indexterm>
<indexterm><primary>LDAP/Kerberos</primary></indexterm>
	Active Directory support. This release is able to join an ADS realm
	as a member server and authenticate users using LDAP/Kerberos.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Unicode</primary></indexterm>
<indexterm><primary>multibyte character sets</primary></indexterm>
	Unicode support. Samba will now negotiate Unicode on the wire, and
	internally there is a much better infrastructure for multibyte
	and Unicode character sets.
	</para></listitem>

	<listitem><para>
<indexterm><primary>authentication system</primary></indexterm>
	New authentication system. The internal authentication system has
	been almost completely rewritten. Most of the changes are internal,
	but the new authoring system is also very configurable.
	</para></listitem>

	<listitem><para>
<indexterm><primary>filename mangling</primary></indexterm>
	New filename mangling system. The filename mangling system has been
	completely rewritten. An internal database now stores mangling maps
	persistently.
	</para></listitem>

	<listitem><para>
<indexterm><primary>net command</primary></indexterm>
	New <quote>net</quote> command. A new <quote>net</quote> command has been added. It is
	somewhat similar to the <quote>net</quote> command in Windows. Eventually, we
	plan to replace a bunch of other utilities (such as smbpasswd)
	with subcommands in <quote>net</quote>.
	</para></listitem>

	<listitem><para>
<indexterm><primary>status32 codes</primary></indexterm>
	Samba now negotiates NT-style status32 codes on the wire. This
	considerably improves error handling.
	</para></listitem>

	<listitem><para>
<indexterm><primary>printer attributes publishing</primary></indexterm>
	Better Windows 200x/XP printing support, including publishing
	printer attributes in Active Directory.
	</para></listitem>

	<listitem><para>
<indexterm><primary>RPC modules</primary></indexterm>
<indexterm><primary>passdb backends</primary></indexterm>
<indexterm><primary>character sets</primary></indexterm>
	New loadable RPC modules for passdb backends and character sets.
	</para></listitem>

	<listitem><para>
<indexterm><primary>dual-daemon winbindd</primary></indexterm>
	New default dual-daemon winbindd support for better performance.
	</para></listitem>

	<listitem><para>
<indexterm><primary>migrating</primary></indexterm>
<indexterm><primary>maintaining ids</primary></indexterm>
<indexterm><primary>SID</primary></indexterm>
	Support for migrating from a Windows NT 4.0 domain to a Samba
	domain and maintaining user, group, and domain SIDs.
	</para></listitem>

	<listitem><para>
<indexterm><primary>trust relationships</primary></indexterm>
<indexterm><primary>domain controllers</primary></indexterm>
	Support for establishing trust relationships with Windows NT 4.0
	domain controllers.
	</para></listitem>

	<listitem><para>
<indexterm><primary>Winbind architecture</primary></indexterm>
<indexterm><primary>LDAP directory</primary></indexterm>
<indexterm><primary>ID mapping</primary></indexterm>
	Initial support for a distributed Winbind architecture using
	an LDAP directory for storing SID to UID/GID mappings.
	</para></listitem>

	<listitem><para>
	Major updates to the Samba documentation tree.
	</para></listitem>

	<listitem><para>
<indexterm><primary>SMB signing</primary></indexterm>
<indexterm><primary>security settings</primary></indexterm>
	Full support for client and server SMB signing to ensure
	compatibility with default Windows 2003 security settings.
	</para></listitem>
</orderedlist>

<para>
Plus lots of other improvements!
</para>


<sect3>
<title>Configuration Parameter Changes</title>

<para>
This section contains a brief listing of changes to &smb.conf; options since the Samba-2.2.x series up to and
including Samba-3.0.25.
</para>

<para>
Please refer to the smb.conf(5) man page for complete descriptions of new or modified
parameters.
</para>

<para>
Whenever a Samba update or upgrade is performed it is highly recommended to read the file called
<emphasis>WHATSNEW.txt</emphasis> that is part of the Samba distribution tarball. This file may also
be obtain on-line from the Samba <ulink url="http://www.samba.org/samba/">web site</ulink>, in
the right column, under Current Stable Release, by clicking on <emphasis>Release Notes</emphasis>.
</para>

</sect3>

<sect3>
<title>Removed Parameters</title>

<indexterm><primary>deleted parameters</primary></indexterm>
<para>
In alphabetical order, these are the parameters eliminated from Samba-2.2.x through 3.0.25.
</para>

<itemizedlist>
	<listitem><para>admin log</para></listitem>
	<listitem><para>alternate permissions</para></listitem>
	<listitem><para>character set</para></listitem>
	<listitem><para>client codepage</para></listitem>
	<listitem><para>code page directory</para></listitem>
	<listitem><para>coding system</para></listitem>
	<listitem><para>domain admin group</para></listitem>
	<listitem><para>domain guest group</para></listitem>
	<listitem><para>enable rid algorithm</para></listitem>
	<listitem><para>enable svcctl</para></listitem>
	<listitem><para>force unknown acl user</para></listitem>
	<listitem><para>hosts equiv</para></listitem>
	<listitem><para>ldap filter</para></listitem>
	<listitem><para>min password length</para></listitem>
	<listitem><para>nt smb support</para></listitem>
	<listitem><para>post script</para></listitem>
	<listitem><para>printer admin</para></listitem>
	<listitem><para>printer driver</para></listitem>
	<listitem><para>printer driver file</para></listitem>
	<listitem><para>printer driver location</para></listitem>
	<listitem><para>read size</para></listitem>
	<listitem><para>source environment</para></listitem>
	<listitem><para>status </para></listitem>
	<listitem><para>strip dot </para></listitem>
	<listitem><para>total print jobs</para></listitem>
	<listitem><para>unicode</para></listitem>
	<listitem><para>use rhosts</para></listitem>
	<listitem><para>valid chars</para></listitem>
	<listitem><para>vfs options</para></listitem>
	<listitem><para>winbind enable local accounts</para></listitem>
	<listitem><para>winbind max idle children</para></listitem>
	<listitem><para>wins partners</para></listitem>
</itemizedlist>

</sect3>

<sect3>
<title>New Parameters</title>

<para>The following new parameters have been released up to and including Samba 3.0.25 (grouped by function:)</para>

<para>Remote Management</para>

<indexterm><primary>new parameters</primary></indexterm>

<itemizedlist>
	<listitem><para>abort shutdown script</para></listitem>
	<listitem><para>shutdown script</para></listitem>
</itemizedlist>

<para>User and Group Account Management</para>

<itemizedlist>
	<listitem><para>add group script</para></listitem>
	<listitem><para>add machine script</para></listitem>
	<listitem><para>add user to group script</para></listitem>
	<listitem><para>algorithmic rid base</para></listitem>
	<listitem><para>delete group script</para></listitem>
	<listitem><para>delete user from group script</para></listitem>
	<listitem><para>passdb backend</para></listitem>
	<listitem><para>rename user script</para></listitem>
	<listitem><para>set primary group script</para></listitem>
	<listitem><para>username map script</para></listitem>
</itemizedlist>

<para>Authentication</para>

<itemizedlist>
	<listitem><para>auth methods</para></listitem>
	<listitem><para>ldap password sync</para></listitem>
	<listitem><para>passdb expand explicit</para></listitem>
	<listitem><para>realm</para></listitem>
</itemizedlist>

<para>Protocol Options</para>

<itemizedlist>
	<listitem><para>add port command</para></listitem>
	<listitem><para>afs token lifetime</para></listitem>
	<listitem><para>client lanman auth</para></listitem>
	<listitem><para>client NTLMv2 auth</para></listitem>
	<listitem><para>client schannel</para></listitem>
	<listitem><para>client signing</para></listitem>
	<listitem><para>client use spnego</para></listitem>
	<listitem><para>defer sharing violations</para></listitem>
	<listitem><para>disable netbios</para></listitem>
	<listitem><para>dmapi support</para></listitem>
	<listitem><para>enable privileges</para></listitem>
	<listitem><para>use kerberos keytab</para></listitem>
	<listitem><para>log nt token command</para></listitem>
	<listitem><para>ntlm auth</para></listitem>
	<listitem><para>paranoid server security </para></listitem>
	<listitem><para>sendfile</para></listitem>
	<listitem><para>server schannel</para></listitem>
	<listitem><para>server signing</para></listitem>
	<listitem><para>smb ports</para></listitem>
	<listitem><para>svcctl list</para></listitem>
	<listitem><para>use spnego</para></listitem>
</itemizedlist>

<para>File Service</para>

<itemizedlist>
	<listitem><para>allocation roundup size</para></listitem>
	<listitem><para>acl check permissions</para></listitem>
	<listitem><para>acl group control</para></listitem>
	<listitem><para>acl map full control</para></listitem>
	<listitem><para>aio read size</para></listitem>
	<listitem><para>aio write size</para></listitem>
	<listitem><para>dfree cache time</para></listitem>
	<listitem><para>dfree command</para></listitem>
	<listitem><para>ea support</para></listitem>
	<listitem><para>enable asu support</para></listitem>
	<listitem><para>fam change notify</para></listitem>
	<listitem><para>force unknown acl user</para></listitem>
	<listitem><para>get quota command</para></listitem>
	<listitem><para>hide special files</para></listitem>
	<listitem><para>hide unwriteable files</para></listitem>
	<listitem><para>inherit owner</para></listitem>
	<listitem><para>hostname lookups</para></listitem>
	<listitem><para>kernel change notify</para></listitem>
	<listitem><para>mangle prefix</para></listitem>
	<listitem><para>map acl inherit</para></listitem>
	<listitem><para>map read only</para></listitem>
	<listitem><para>max stat cache size</para></listitem>
	<listitem><para>msdfs proxy</para></listitem>
	<listitem><para>open files database hash size</para></listitem>
	<listitem><para>set quota command</para></listitem>
	<listitem><para>store dos attributes</para></listitem>
	<listitem><para>use sendfile</para></listitem>
	<listitem><para>usershare allow guests</para></listitem>
	<listitem><para>usershare max shares</para></listitem>
	<listitem><para>usershare owner only</para></listitem>
	<listitem><para>usershare path</para></listitem>
	<listitem><para>usershare prefix allow list</para></listitem>
	<listitem><para>usershare prefix deny list</para></listitem>
	<listitem><para>usershare template share</para></listitem>
	<listitem><para>vfs objects</para></listitem>
</itemizedlist>

<para>Printing</para>

<itemizedlist>
	<listitem><para>cups options</para></listitem>
	<listitem><para>cups server</para></listitem>
	<listitem><para>force printername</para></listitem>
	<listitem><para>iprint server</para></listitem>
	<listitem><para>max reported print jobs</para></listitem>
	<listitem><para>printcap cache time</para></listitem>
</itemizedlist> 


<para>Unicode and Character Sets</para>

<itemizedlist>
	<listitem><para>display charset</para></listitem>
	<listitem><para>dos charset</para></listitem>
	<listitem><para>UNIX charset</para></listitem>
</itemizedlist>

<para>SID to UID/GID Mappings</para>

<itemizedlist>
	<listitem><para>idmap backend</para></listitem>
	<listitem><para>idmap gid</para></listitem>
	<listitem><para>idmap uid</para></listitem>
	<listitem><para>username map script</para></listitem>
	<listitem><para>winbind nss info</para></listitem>
	<listitem><para>winbind offline logon</para></listitem>
	<listitem><para>winbind refresh tickets</para></listitem>
	<listitem><para>winbind trusted domains only</para></listitem>
	<listitem><para>template primary group</para></listitem>
</itemizedlist>

<para>LDAP</para>

<itemizedlist>
	<listitem><para>ldap delete dn</para></listitem>
	<listitem><para>ldap group suffix</para></listitem>
	<listitem><para>ldap idmap suffix</para></listitem>
	<listitem><para>ldap machine suffix</para></listitem>
	<listitem><para>ldap passwd sync</para></listitem>
	<listitem><para>ldap replication sleep</para></listitem>
	<listitem><para>ldap timeout</para></listitem>
	<listitem><para>ldap user suffix</para></listitem>
</itemizedlist>

<para>General Configuration</para>

<itemizedlist>
	<listitem><para>eventlog list</para></listitem>
	<listitem><para>preload modules</para></listitem>
	<listitem><para>reset on zero vc</para></listitem>
	<listitem><para>privatedir</para></listitem>
</itemizedlist>

</sect3>

<sect3>
<title>Modified Parameters (Changes in Behavior)</title>

<itemizedlist>
	<listitem><para>acl group control (new default is No, deprecated parameter)</para></listitem>
	<listitem><para>change notify timeout (scope changed)</para></listitem>
	<listitem><para>dos filemode (disabled by default)</para></listitem>
	<listitem><para>dos filetimes (enabled by default)</para></listitem>
	<listitem><para>enable asu support (disabled by default)</para></listitem>
	<listitem><para>enable privileges (enabled by default)</para></listitem>
	<listitem><para>encrypt passwords (enabled by default) </para></listitem>
	<listitem><para>host msdfs (enabled by default)</para></listitem>
	<listitem><para>mangling method (set to hash2 by default) </para></listitem>
	<listitem><para>map to guest</para></listitem>
	<listitem><para>only user (deprecated)</para></listitem>
	<listitem><para>passwd chat</para></listitem>
	<listitem><para>passwd program</para></listitem>
	<listitem><para>password server</para></listitem>
	<listitem><para>restrict anonymous (integer value)</para></listitem>
	<listitem><para>security (new ads value)</para></listitem>
	<listitem><para>strict locking (auto by default)</para></listitem>
	<listitem><para>winbind cache time (increased to 5 minutes)</para></listitem>
	<listitem><para>winbind enum groups (disabled by default)</para></listitem>
	<listitem><para>winbind enum users (disabled by default)</para></listitem>
	<listitem><para>winbind nested groups (enabled by default)</para></listitem>
	<listitem><para>winbind uid (deprecated in favor of idmap uid)</para></listitem>
	<listitem><para>winbind gid (deprecated in favor of idmap gid)</para></listitem>
	<listitem><para>winbindd nss info</para></listitem>
	<listitem><para>write cache (deprecated)</para></listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2>
<title>New Functionality</title>

	<para>
<indexterm><primary>major changes</primary></indexterm>
	The major changes in behavior since that Samba-2.2.x series are documented in this section.
	Please refer to the <filename>WHATSNEW.txt</filename> file that ships with every release of
	Samba to obtain detailed information regarding the changes that have been made during the
	life of the current Samba release.
	</para>

	<sect3>
	<title>TDB Data Files</title>

<indexterm><primary>tdb data files</primary></indexterm>
	<para>
	Refer to <link linkend="install">Installation, Chapter 1</link>, <link linkend="tdbdocs">Chapter 1</link>
	for information pertaining to the Samba-3 data files, their location and the information that must be
	preserved across server migrations, updates and upgrades.
	</para>

	<para>
<indexterm><primary>tdb file backup</primary></indexterm>
	Please remember to back up your existing ${lock directory}/*tdb before upgrading to Samba-3. If necessary,
	Samba will upgrade databases as they are opened. Downgrading from Samba-3 to 2.2, or reversion to an earlier
	version of Samba-3 from a later release, is an unsupported path.
	</para>

	<para>
<indexterm><primary>tdb file descriptions</primary></indexterm>
	The old Samba-2.2.x tdb files are described in <link linkend="oldtdbfiledesc">the next table</link>.
	</para>


        <table frame='all' id="oldtdbfiledesc"><title>Samba-2.2.x TDB File Descriptions</title>
        <tgroup cols='3'>
			<colspec align="left"/>
			<colspec align="justify" colwidth="1*"/>
			<colspec align="left"/>
                <thead>
                <row>
                        <entry align="left">Name</entry>
                        <entry align="justify">Description</entry>
                        <entry align="center">Backup?</entry>
                </row>
                </thead>
                <tbody>
                <row>
                        <entry>account_policy</entry>
			<entry>User policy settings</entry>
			<entry>yes</entry>
		</row>
		<row>
			<entry>brlock</entry>
			<entry>Byte-range file locking information.</entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>connections</entry>
			<entry><para>Client connection information</para></entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>locking</entry>
			<entry>Temporary file locking data.</entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>messages</entry>
			<entry><para>Temporary storage of messages being processed by smbd.</para></entry>
			<entry>no</entry>
		</row>
       <row>
            <entry>ntdrivers</entry>
            <entry><para>Stores per-printer driver information.</para></entry>
			<entry>yes</entry>
        </row>
        <row>
            <entry>ntforms</entry>
            <entry><para>Stores per-printer forms information.</para></entry>
			<entry>yes</entry>
        </row>
        <row>
            <entry>ntprinters</entry>
            <entry><para>Stores the per-printer devmode configuration settings.</para></entry>
			<entry>yes</entry>
        </row>
		<row>
			<entry>printing/*.tdb</entry>
			<entry><para>Cached output from lpq command created on a per-print-service basis.</para></entry>
			<entry>no</entry>
		</row>
		<row>

			<entry>registry</entry>
			<entry><para>Read-only Samba registry skeleton that provides support for
				exporting various database tables via the winreg RPCs.</para></entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>sessionid</entry>
			<entry><para>Temporary cache for miscellaneous session information.</para></entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>share_info</entry>
			<entry>Share ACL settings.</entry>
			<entry>yes</entry>
		</row>
		<row>

			<entry>unexpected</entry>
			<entry><para>Packets received for which no process was listening.</para></entry>
			<entry>no</entry>
		</row>
		<row>
			<entry>winbindd_cache</entry>
			<entry><para>Cache of identity information received from an NT4 or an ADS domain.</para></entry>
			<entry>yes</entry>
		</row>
		<row>
			<entry>winbindd_idmap</entry>
			<entry><para>New ID map table from SIDS to UNIX UIDs/GIDs.</para></entry>
			<entry>yes</entry>
		</row>
		</tbody>
	</tgroup>
	</table>

	</sect3>

	<sect3>
	<title>Changes in Behavior</title>

	<para>
	The following issues are known changes in behavior between Samba-2.2 and
	Samba-3 that may affect certain installations of Samba.
	</para>

	<orderedlist>
		<listitem><para>
<indexterm><primary>Windows domain</primary></indexterm>
<indexterm><primary>getpwnam() call</primary></indexterm>
<indexterm><primary>NT_STATUS_LOGON_FAILURE</primary></indexterm>
		When operating as a member of a Windows domain, Samba-2.2 would map any users authenticated by the remote DC
		to the <quote>guest account</quote> if a UID could not be obtained via the getpwnam() call. Samba-3 rejects
		the connection with the error message <quote>NT_STATUS_LOGON_FAILURE.</quote> There is no current workaround
		to re-establish the Samba-2.2 behavior.
		</para></listitem>

		<listitem><para>
<indexterm><primary>add user script</primary></indexterm>
<indexterm><primary>add machine script</primary></indexterm>
		When adding machines to a Samba-2.2 controlled domain, the
		<quote>add user script</quote> was used to create the UNIX identity of the
		machine trust account. Samba-3 introduces a new <quote>add machine
		script</quote> that must be specified for this purpose. Samba-3 will
		not fall back to using the <quote>add user script</quote> in the absence of
		an <quote>add machine script</quote>.
		</para></listitem>
	</orderedlist>

	</sect3>

	<sect3>
	<title>Passdb Backends and Authentication</title>

	<para>
	There have been a few new changes that Samba administrators should be
	aware of when moving to Samba-3.
	</para>

	<orderedlist>
		<listitem><para>
<indexterm><primary>encrypted passwords</primary></indexterm>
		Encrypted passwords have been enabled by default in order to
		interoperate better with out-of-the-box Windows client
		installations. This does mean that either (a) a Samba account
		must be created for each user, or (b) <quote>encrypt passwords = no</quote>
		must be explicitly defined in &smb.conf;.
		</para></listitem>

		<listitem><para>
<indexterm><primary>ADS</primary></indexterm>
<indexterm><primary>Kerberos</primary></indexterm>
<indexterm><primary>LDAP</primary></indexterm>
		Inclusion of new <smbconfoption name="security">ads</smbconfoption> option for integration
		with an Active Directory domain using the native Windows Kerberos 5 and LDAP protocols.
		</para></listitem>
	</orderedlist>

	<para>
<indexterm><primary>account storage backends</primary></indexterm>
	Samba-3 also includes the possibility of setting up chains of authentication methods (<smbconfoption
	name="auth methods"/>) and account storage backends (<smbconfoption name="passdb backend"/>).  Please refer to
	the &smb.conf; man page and <link linkend="passdb">Account Information Databases</link>, for
	details. While both parameters assume sane default values, it is likely that you will need to understand what
	the values actually mean in order to ensure Samba operates correctly.
	</para>

	<para>
<indexterm><primary>pdbedit</primary></indexterm>
<indexterm><primary>smbpasswd</primary></indexterm>
<indexterm><primary>net tool</primary></indexterm>
	Certain functions of the <command>smbpasswd</command> tool have been split between the
	new <command>smbpasswd</command> utility, the <command>net</command> tool, and the new <command>pdbedit</command>
	utility. See the respective man pages for details.
	</para>

	</sect3>

	<sect3>
	<title>LDAP</title>

	<para>
	This section outlines the new features effecting Samba/LDAP integration.
	</para>

		<sect4>
		<title>New Schema</title>

		<para>
<indexterm><primary>object class</primary></indexterm>
<indexterm><primary>sambaSamAccount</primary></indexterm>
<indexterm><primary>LDIF</primary></indexterm>
<indexterm><primary>attributes</primary></indexterm>
		A new object class (sambaSamAccount) has been introduced to replace
		the old sambaAccount. This change aids in the renaming of attributes
		to prevent clashes with attributes from other vendors. There is a
		conversion script (examples/LDAP/convertSambaAccount) to modify an LDIF
		file to the new schema.
		</para>

		<para>
		Example:
<indexterm><primary>ldapsearch</primary></indexterm>
		</para>
		<para><screen>
		&prompt;ldapsearch .... -LLL -b "ou=people,dc=..." &gt; old.ldif
		&prompt;convertSambaAccount --sid &lt;DOM SID&gt; --input old.ldif --output new.ldif
		</screen></para>

		<para>
<indexterm><primary>net</primary><secondary>getlocalsid</secondary></indexterm>
		The &lt;DOM SID&gt; can be obtained by running
<screen>
&prompt;<userinput>net getlocalsid &lt;DOMAINNAME&gt;</userinput>
</screen>
<indexterm><primary>PDC</primary></indexterm>
		on the Samba PDC as root.
		</para>

		<para>
		Under Samba-2.x the domain SID can be obtained by executing:
<indexterm><primary>smbpasswd</primary></indexterm>
<screen>
&prompt;<userinput>smbpasswd -S &lt;DOMAINNAME&gt;</userinput>
</screen>
		</para>

		<para>
<indexterm><primary>old sambaAccount</primary></indexterm>
<indexterm><primary>ldapsam_compat</primary></indexterm>
<indexterm><primary>object class declaration</primary></indexterm>
<indexterm><primary>samba.schema</primary></indexterm>
		The old <literal>sambaAccount</literal> schema may still be used by specifying the
		<parameter>ldapsam_compat</parameter> passdb backend. However, the sambaAccount and
		associated attributes have been moved to the historical section of
		the schema file and must be uncommented before use if needed.
		The Samba-2.2 object class declaration for a <literal>sambaAccount</literal> has not changed
		in the Samba-3 <filename>samba.schema</filename> file.
		</para>

		<para>
		Other new object classes and their uses include:
		</para>

		<itemizedlist>
			<listitem><para>
<indexterm><primary>sambaDomain</primary></indexterm>
<indexterm><primary>domain information</primary></indexterm>
<indexterm><primary>RID</primary></indexterm>
<indexterm><primary>ldap suffix</primary></indexterm>
<indexterm><primary>ldapsam</primary></indexterm>
<indexterm><primary>idmap</primary></indexterm>
			<literal>sambaDomain</literal> &smbmdash; domain information used to allocate RIDs
			for users and groups as necessary. The attributes are added
			in <quote>ldap suffix</quote> directory entry automatically if
			an idmap UID/GID range has been set and the <quote>ldapsam</quote>
			passdb backend has been selected.
			</para></listitem>

			<listitem><para>
<indexterm><primary>sambaGroupMapping</primary></indexterm>
<indexterm><primary>ldap group suffix</primary></indexterm>
<indexterm><primary>net groupmap</primary></indexterm>
			sambaGroupMapping &smbmdash; an object representing the
			relationship between a posixGroup and a Windows
			group/SID. These entries are stored in the <quote>ldap
			group suffix</quote> and managed by the <quote>net groupmap</quote> command.
			</para></listitem>

			<listitem><para>
<indexterm><primary>sambaUNIXIdPool</primary></indexterm>
<indexterm><primary>ldap idmap suffix</primary></indexterm>
<indexterm><primary>idmap UID</primary></indexterm>
<indexterm><primary>idmap GID</primary></indexterm>
			<literal>sambaUNIXIdPool</literal> &smbmdash; created in the <quote>ldap idmap suffix</quote> entry
			automatically and contains the next available <quote>idmap UID</quote> and
			<quote>idmap GID</quote>.
			</para></listitem>

			<listitem><para>
<indexterm><primary>sambaIdmapEntry</primary></indexterm>
<indexterm><primary>idmap_ldap module</primary></indexterm>
			<literal>sambaIdmapEntry</literal> &smbmdash; object storing a mapping between a
			SID and a UNIX UID/GID. These objects are created by the
			idmap_ldap module as needed.
			</para></listitem>
		</itemizedlist>

		</sect4>

		<sect4>
		<title>New Suffix for Searching</title>

		<para>
<indexterm><primary>LDAP queries</primary></indexterm>
<indexterm><primary>passdb backend</primary></indexterm>
<indexterm><primary>ldap suffix</primary></indexterm>
<indexterm><primary>ldap user suffix</primary></indexterm>
<indexterm><primary>ldap machine suffix</primary></indexterm>
<indexterm><primary>ldap group suffix</primary></indexterm>
<indexterm><primary>ldap idmap suffix</primary></indexterm>
		The following new &smb.conf; parameters have been added to aid in directing
		certain LDAP queries when <parameter>passdb backend = ldapsam://...</parameter> has been
		specified.
		</para>

		<itemizedlist>
			<listitem><para>ldap suffix         &smbmdash; used to search for user and computer accounts.</para></listitem>
			<listitem><para>ldap user suffix    &smbmdash; used to store user accounts.</para></listitem>
			<listitem><para>ldap machine suffix &smbmdash; used to store machine trust accounts.</para></listitem>
			<listitem><para>ldap group suffix   &smbmdash; location of posixGroup/sambaGroupMapping entries.</para></listitem>
			<listitem><para>ldap idmap suffix   &smbmdash; location of sambaIdmapEntry objects.</para></listitem>
		</itemizedlist>

		<para>
<indexterm><primary>ldap suffix</primary></indexterm>
<indexterm><primary>subsuffix parameters</primary></indexterm>
		If an <parameter>ldap suffix</parameter> is defined, it will be appended to all of the
		remaining subsuffix parameters. In this case, the order of the suffix
		listings in &smb.conf; is important. Always place the <parameter>ldap suffix</parameter> first
		in the list.
		</para>

		<para>
		Due to a limitation in Samba's &smb.conf; parsing, you should not surround
		the domain names with quotation marks.
		</para>

		</sect4>

		<sect4>
		<title>IdMap LDAP Support</title>

		<para>
<indexterm><primary>idmap backend</primary></indexterm>
		Samba-3 supports an LDAP backend for the idmap subsystem. The
		following options inform Samba that the idmap table should be
		stored on the directory server <emphasis>onterose</emphasis> in the ou=Idmap,dc=quenya,dc=org partition.
		</para>

		<smbconfblock>
		<smbconfsection name="[global]"/>
		<member>...</member>
		<smbconfoption name="idmap backend">ldap:ldap://onterose/</smbconfoption>
		<smbconfoption name="ldap idmap suffix">ou=Idmap</smbconfoption>
		<smbconfoption name="idmap uid">40000-50000</smbconfoption>
		<smbconfoption name="idmap gid">40000-50000</smbconfoption>
		</smbconfblock>

		<para>
<indexterm><primary>NFS</primary></indexterm>
		This configuration allows Winbind installations on multiple servers to
		share a UID/GID number space, thus avoiding the interoperability problems
		with NFS that were present in Samba-2.2.
		</para>

		</sect4>

		</sect3>

	</sect2>

</sect1>

</chapter>