Fixed the "You password will expire in 0 days. Would you like to
[samba.git] / docs / textdocs / DOMAIN_CONTROL.txt
1 !==
2 !== DOMAIN_CONTROL.txt for Samba release 2.1.0prealpha 981204
3 !==
4 Initial Release:        August 22, 1996
5 Contributor:            John H Terpstra <samba-bugs@samba.org>
6                         Copyright (C) 1996-1997 - John H Terpstra
7 Updated:                July 5, 1998
8 Status:                 Current
9
10 Subject:     Windows NT Domain Control & Samba
11 ============================================================================
12
13 ****NOTE:****
14 =============
15 The term "Domain Controller" and those related to it refer to one specific
16 method of authentication that can underly an SMB domain. Domain Controllers
17 prior to Windows NT Server 3.1 were sold by various companies and based on 
18 private extensions to the LAN Manager 2.1 protocol. Windows NT introduced
19 Microsoft-specific ways of distributing the user authentication database.
20 See DOMAIN.txt for examples of how Samba can participate in or create
21 SMB domains based on shared authentication database schemes other than the 
22 Windows NT SAM.
23
24 Microsoft Windows NT Domain Control is an extremely complex protocol.
25 We have received countless requests to implement Domain Control in Samba.
26 The 1.9.18 release of Samba contains experimental code to implement
27 this. Please read the file docs/NTDOMAIN.txt for more information on this.
28 ============================================================================
29
30 Windows NT Server can be installed as either a plain file and print server
31 (WORKGROUP workstation or server) or as a server that participates in Domain
32 Control (DOMAIN member, Primary Domain controller or Backup Domain controller).
33
34 The same is true for OS/2 Warp Server, Digital Pathworks and other similar
35 products, all of which can participate in Domain Control along with Windows NT.
36 However only those servers which have licenced Windows NT code in them can be
37 a primary Domain Controller (eg Windows NT Server, Advanced Server for Unix.)
38
39 To many people these terms can be confusing, so let's try to clear the air.
40
41 Every Windows NT system (workstation or server) has a registry database.
42 The registry contains entries that describe the initialisation information
43 for all services (the equivalent of Unix Daemons) that run within the Windows
44 NT environment. The registry also contains entries that tell application
45 software where to find dynamically loadable libraries that they depend upon.
46 In fact, the registry contains entries that describes everything that anything
47 may need to know to interact with the rest of the system.
48
49 The registry files can be located on any Windows NT machine by opening a
50 command prompt and typing:
51         dir %SystemRoot%\System32\config
52
53 The environment variable %SystemRoot% value can be obtained by typing:
54         echo %SystemRoot%
55
56 The active parts of the registry that you may want to be familiar with are
57 the files called: default, system, software, sam and security.
58
59 In a domain environment, Microsoft Windows NT domain controllers participate
60 in replication of the SAM and SECURITY files so that all controllers within
61 the domain have an exactly identical copy of each.
62
63 The Microsoft Windows NT system is structured within a security model that
64 says that all applications and services must authenticate themselves before
65 they can obtain permission from the security manager to do what they set out
66 to do.
67
68 The Windows NT User database also resides within the registry. This part of
69 the registry contains the user's security identifier, home directory, group
70 memberships, desktop profile, and so on.
71
72 Every Windows NT system (workstation as well as server) will have its own
73 registry. Windows NT Servers that participate in Domain Security control
74 have a database that they share in common - thus they do NOT own an
75 independent full registry database of their own, as do Workstations and
76 plain Servers.
77
78 The User database is called the SAM (Security Access Manager) database and
79 is used for all user authentication as well as for authentication of inter-
80 process authentication (ie: to ensure that the service action a user has
81 requested is permitted within the limits of that user's privileges).
82
83 The Samba team have produced a utility that can dump the Windows NT SAM into 
84 smbpasswd format: see ENCRYPTION.txt for information on smbpasswd and
85 /pub/samba/pwdump on your nearest Samba mirror for the utility. This 
86 facility is useful but cannot be easily used to implement SAM replication
87 to Samba systems.
88
89 Windows for Workgroups, Windows 95, and Windows NT Workstations and Servers
90 can participate in a Domain security system that is controlled by Windows NT
91 servers that have been correctly configured. At most every domain will have
92 ONE Primary Domain Controller (PDC). It is desirable that each domain will
93 have at least one Backup Domain Controller (BDC).
94
95 The PDC and BDCs then participate in replication of the SAM database so that
96 each Domain Controlling participant will have an up to date SAM component
97 within its registry.
98
99 Samba can NOT at this time function as a Domain Controller for any of these
100 security services, but like all other domain members can interact with the
101 Windows NT security system for all access authentication.
102
103 When Samba is configured with the 'security = server' option and the
104 'password server = Your_Windows_NT_Server_Name' option, then it will
105 redirect all access authentication to that server. This way you can
106 use Windows NT to act as your password server with full support for
107 Microsoft encrypted passwords.
108
109 Note also, that since release of samba-1.9.18 we now support native encrypted
110 passwords too. To enable encrypted password handling several things need to be
111 done:
112         1) In smb.conf [globals]:
113                 encrypt passwords = yes
114                 smbpasswd file = /path/smbpasswd
115 the standard path is /usr/local/samba/private/smbpasswd but this may be
116 platform specific.
117
118         2) Use "smbpasswd -a" to add all users to the smbpasswd file.
119
120 Above all read all the documentation for encrypted password support - you will
121 need it!