67b90914835349bc9ff14b23133dacf47447412a
[samba.git] / docs / textdocs / DOMAIN.txt
1 !==
2 !== DOMAIN.txt for Samba release 2.0.0-alpha1 31 Aug 1998
3 !==
4 Contributor:    Samba Team
5 Updated:        June 27, 1997
6
7 Subject:        Network Logons and Roving Profiles
8 ===========================================================================
9
10 A domain and a workgroup are exactly the same thing in terms of network
11 browsing.  The difference is that a distributable authentication
12 database is associated with a domain, for secure login access to a
13 network.  Also, different access rights can be granted to users if they
14 successfully authenticate against a domain logon server (samba does not
15 support this, but NT server and other systems based on NT server do).
16
17 The SMB client logging on to a domain has an expectation that every other
18 server in the domain should accept the same authentication information.
19 However the network browsing functionality of domains and workgroups is
20 identical and is explained in BROWSING.txt.
21
22 Issues related to the single-logon network model are discussed in this
23 document.  Samba supports domain logons, network logon scripts, and user
24 profiles.  The support is still experimental, but it seems to work.
25
26 The support is also not complete.  Samba does not yet support the sharing
27 of the Windows NT-style SAM database with other systems.  However this is
28 only one way of having a shared user database: exactly the same effect can
29 be achieved by having all servers in a domain share a distributed NIS or
30 Kerberos authentication database.
31
32 When an SMB client in a domain wishes to logon it broadcast requests for a
33 logon server.  The first one to reply gets the job, and validates its
34 password using whatever mechanism the Samba administrator has installed.
35 It is possible (but very stupid) to create a domain where the user
36 database is not shared between servers, ie they are effectively workgroup
37 servers advertising themselves as participating in a domain.  This
38 demonstrates how authentication is quite different from but closely
39 involved with domains.
40
41 Another thing commonly associated with single-logon domains is remote
42 administration over the SMB protocol.  Again, there is no reason why this
43 cannot be implemented with an underlying username database which is
44 different from the Windows NT SAM.  Support for the Remote Administration
45 Protocol is planned for a future release of Samba.
46
47 The domain support works for WfWg, and Win95 clients and NT 4.0 and 3.51.
48 Domain support is currently at an early experimental stage for NT 4.0 and
49 NT 3.51.  Support for Windows OS/2 clients is still being worked on and is
50 still experimental.
51
52 Support for profiles is confirmed as working for Win95, NT 4.0 and NT 3.51.
53 It is possible to specify: the profile location; script file to be loaded
54 on login; the user's home directory; and for NT a kick-off time could also
55 now easily be supported.
56
57 With NT Workstations, all this does not require the use or intervention of
58 an NT 4.0 or NT 3.51 server: Samba can now replace the logon services
59 provided by an NT server, to a limited and experimental degree (for example,
60 running "User Manager for Domains" will not provide you with access to
61 a domain created by a Samba Server).
62
63 With Win95, the help of an NT server can be enlisted, both for profile storage
64 and for user authentication.  For details on user authentication, see
65 security_level.txt.  For details on profile storage, see below.
66
67
68 Using these features you can make your clients verify their logon via
69 the Samba server; make clients run a batch file when they logon to
70 the network and download their preferences, desktop and start menu.
71
72
73 Configuration Instructions:     Network Logons
74 ==========================================
75
76 To use domain logons and profiles you need to do the following:
77
78
79 1) Setup nmbd and smbd by configuring smb.conf so that Samba is
80    acting as the master browser. See <your OS>_INSTALL.txt and BROWSING.txt
81    for details.
82
83 2) Setup a WINS server (see NetBIOS.txt) and configure all your clients
84    to use that WINS service.  
85
86 3) Create a share called [netlogon] in your smb.conf. This share should
87    be readable by all users, and probably should not be writeable. This
88    share will hold your network logon scripts, and the CONFIG.POL file
89    (Note: for details on the CONFIG.POL file, how to use it, what it is,
90    refer to the Microsoft Windows NT Administration documentation.
91    The format of these files is not known, so you will need to use
92    Microsoft tools).
93
94 For example I have used:
95
96    [netlogon]
97     path = /data/dos/netlogon
98     writeable = no
99     guest ok = no
100
101 Note that it is important that this share is not writeable by ordinary
102 users, in a secure environment: ordinary users should not be allowed
103 to modify or add files that another user's computer would then download
104 when they log in.
105
106 4) in the [global] section of smb.conf set the following:
107
108    domain logons = yes
109    logon script = %U.bat
110
111 The choice of batch file is, of course, up to you. The above would
112 give each user a separate batch file as the %U will be changed to
113 their username automatically. The other standard % macros may also be
114 used. You can make the batch files come from a subdirectory by using
115 something like:
116
117    logon script = scripts\%U.bat
118
119 5) create the batch files to be run when the user logs in. If the batch
120    file doesn't exist then no batch file will be run. 
121
122 In the batch files you need to be careful to use DOS style cr/lf line
123 endings. If you don't then DOS may get confused. I suggest you use a
124 DOS editor to remotely edit the files if you don't know how to produce
125 DOS style files under unix.
126
127 6) Use smbclient with the -U option for some users to make sure that
128    the \\server\NETLOGON share is available, the batch files are
129    visible and they are readable by the users.
130
131 7) you will probabaly find that your clients automatically mount the
132    \\SERVER\NETLOGON share as drive z: while logging in. You can put
133    some useful programs there to execute from the batch files.
134
135 NOTE: You must be using "security = user" or "security = server" for
136 domain logons to work correctly.  Share level security won't work
137 correctly.
138
139
140
141 Configuration Instructions:     Setting up Roaming User Profiles
142 ================================================================
143
144 In the [global] section of smb.conf set the following (for example):
145
146   logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath
147
148 The default for this option is \\%N\%U\profile, namely
149 \\sambaserver\username\profile.  The \\N%\%U service is created
150 automatically by the [homes] service.
151
152 If you are using a samba server for the profiles, you _must_ make the
153 share specified in the logon path browseable.  Windows 95 appears to
154 check that it can see the share and any subdirectories within that share
155 specified by the logon path option, rather than just connecting straight
156 away.  It also attempts to create the components of the full path for
157 you.  If the creation of any component fails, or if it cannot see any
158 component of the path, the profile creation / reading fails.
159
160 [lkcl 26aug96 - we have discovered a problem where Windows clients can
161 maintain a connection to the [homes] share in between logins.  The
162 [homes] share must NOT therefore be used in a profile path.]
163
164
165 Windows 95
166 ----------
167
168 When a user first logs in on Windows 95, the file user.DAT is created,
169 as are folders "Start Menu", "Desktop", "Programs" and "Nethood".  
170 These directories and their contents will be merged with the local
171 versions stored in c:\windows\profiles\username on subsequent logins,
172 taking the most recent from each.  You will need to use the [global]
173 options "preserve case = yes", "short case preserve = yes" and
174 "case sensitive = no" in order to maintain capital letters in shortcuts
175 in any of the profile folders.
176
177 The user.DAT file contains all the user's preferences.  If you wish to
178 enforce a set of preferences, rename their user.DAT file to user.MAN,
179 and deny them write access to this file.
180
181 2) On the Windows 95 machine, go to Control Panel | Passwords and
182    select the User Profiles tab.  Select the required level of
183    roaming preferences.  Press OK, but do _not_ allow the computer
184    to reboot.
185
186 3) On the Windows 95 machine, go to Control Panel | Network |
187    Client for Microsoft Networks | Preferences.  Select 'Log on to
188    NT Domain'.  Then, ensure that the Primary Logon is 'Client for
189    Microsoft Networks'.  Press OK, and this time allow the computer
190    to reboot.
191
192 Under Windows 95, Profiles are downloaded from the Primary Logon.
193 If you have the Primary Logon as 'Client for Novell Networks', then
194 the profiles and logon script will be downloaded from your Novell
195 Server.  If you have the Primary Logon as 'Windows Logon', then the
196 profiles will be loaded from the local machine - a bit against the
197 concept of roaming profiles, if you ask me.
198
199 You will now find that the Microsoft Networks Login box contains
200 [user, password, domain] instead of just [user, password].  Type in
201 the samba server's domain name (or any other domain known to exist,
202 but bear in mind that the user will be authenticated against this
203 domain and profiles downloaded from it, if that domain logon server
204 supports it), user name and user's password.
205
206 Once the user has been successfully validated, the Windows 95 machine
207 will inform you that 'The user has not logged on before' and asks you
208 if you wish to save the user's preferences?  Select 'yes'.
209
210 Once the Windows 95 client comes up with the desktop, you should be able
211 to examine the contents of the directory specified in the "logon path"
212 on the samba server and verify that the "Desktop", "Start Menu",
213 "Programs" and "Nethood" folders have been created.
214
215 These folders will be cached locally on the client, and updated when
216 the user logs off (if you haven't made them read-only by then :-).
217 You will find that if the user creates further folders or short-cuts,
218 that the client will merge the profile contents downloaded with the
219 contents of the profile directory already on the local client, taking
220 the newest folders and short-cuts from each set.
221
222 If you have made the folders / files read-only on the samba server,
223 then you will get errors from the w95 machine on logon and logout, as
224 it attempts to merge the local and the remote profile.  Basically, if
225 you have any errors reported by the w95 machine, check the unix file
226 permissions and ownership rights on the profile directory contents,
227 on the samba server.
228
229
230 If you have problems creating user profiles, you can reset the user's
231 local desktop cache, as shown below.  When this user then next logs in,
232 they will be told that they are logging in "for the first time".
233
234
235 1) instead of logging in under the [user, password, domain] dialog],
236    press escape.
237
238 2) run the regedit.exe program, and look in:
239
240      HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList
241
242    you will find an entry, for each user, of ProfilePath.  Note the
243    contents of this key (likely to be c:\windows\profiles\username),
244    then delete the key ProfilePath for the required user.
245
246    [Exit the registry editor].
247
248 3) WARNING - before deleting the contents of the directory listed in
249    the ProfilePath (this is likely to be c:\windows\profiles\username),
250    ask them if they have any important files stored on their desktop
251    or in their start menu.  delete the contents of the directory
252    ProfilePath (making a backup if any of the files are needed).
253
254    This will have the effect of removing the local (read-only hidden
255    system file) user.DAT in their profile directory, as well as the
256    local "desktop", "nethood", "start menu" and "programs" folders.
257
258 4) search for the user's .PWL password-cacheing file in the c:\windows
259    directory, and delete it.
260
261 5) log off the windows 95 client.
262
263 6) check the contents of the profile path (see "logon path" described
264    above), and delete the user.DAT or user.MAN file for the user,
265    making a backup if required.  
266
267
268 If all else fails, increase samba's debug log levels to between 3 and 10,
269 and / or run a packet trace program such as tcpdump or netmon.exe, and
270 look for any error reports.
271
272 If you have access to an NT server, then first set up roaming profiles
273 and / or netlogons on the NT server.  Make a packet trace, or examine
274 the example packet traces provided with NT server, and see what the
275 differences are with the equivalent samba trace.
276
277
278 Windows NT Workstation 4.0
279 --------------------------
280
281 When a user first logs in to a Windows NT Workstation, the profile
282 NTuser.DAT is created.  The profile location can be now specified
283 through the "logon path" parameter, in exactly the same way as it
284 can for Win95.  [lkcl 10aug97 - i tried setting the path to
285 \\samba-server\homes\profile, and discovered that this fails because
286 a background process maintains the connection to the [homes] share
287 which does _not_ close down in between user logins.  you have to
288 have \\samba-server\%L\profile, where user is the username created
289 from the [homes] share].
290
291 There is a parameter that is now available for use with NT Profiles:
292 "logon drive".  This should be set to "h:" or any other drive, and
293 should be used in conjunction with the new "logon home" parameter.
294
295 The entry for the NT 4.0 profile is a _directory_ not a file.  The NT
296 help on profiles mentions that a directory is also created with a .PDS
297 extension.  The user, while logging in, must have write permission to
298 create the full profile path (and the folder with the .PDS extension)
299 [lkcl 10aug97 - i found that the creation of the .PDS directory failed,
300 and had to create these manually for each user, with a shell script.
301 also, i presume, but have not tested, that the full profile path must
302 be browseable just as it is for w95, due to the manner in which they
303 attempt to create the full profile path: test existence of each path
304 component; create path component].
305
306 In the profile directory, NT creates more folders than 95.  It creates
307 "Application Data" and others, as well as "Desktop", "Nethood",
308 "Start Menu" and "Programs".  The profile itself is stored in a file
309 NTuser.DAT.  Nothing appears to be stored in the .PDS directory, and
310 its purpose is currently unknown.
311
312 You can use the System Control Panel to copy a local profile onto
313 a samba server (see NT Help on profiles: it is also capable of firing
314 up the correct location in the System Control Panel for you).  The
315 NT Help file also mentions that renaming NTuser.DAT to NTuser.MAN
316 turns a profile into a mandatory one.
317
318 [lkcl 10aug97 - i notice that NT Workstation tells me that it is
319 downloading a profile from a slow link.  whether this is actually the
320 case, or whether there is some configuration issue, as yet unknown,
321 that makes NT Workstation _think_ that the link is a slow one is a
322 matter to be resolved].
323
324 [lkcl 20aug97 - after samba digest correspondance, one user found, and
325 another confirmed, that profiles cannot be loaded from a samba server
326 unless "security = user" and "encrypt passwords = yes" (see the file
327 ENCRYPTION.txt) or "security = server" and "password server = ip.address.
328 of.yourNTserver" are used.  either of these options will allow the NT
329 workstation to access the samba server using LAN manager encrypted
330 passwords, without the user intervention normally required by NT
331 workstation for clear-text passwords].
332
333 [lkcl 25aug97 - more comments received about NT profiles: the case of
334 the profile _matters_.  the file _must_ be called NTuser.DAT or, for
335 a mandatory profile, NTuser.MAN].
336
337
338 Windows NT Server
339 -----------------
340
341 There is nothing to stop you specifying any path that you like for the
342 location of users' profiles.  Therefore, you could specify that the
343 profile be stored on a samba server, or any other SMB server, as long as
344 that SMB server supports encrypted passwords.
345
346
347
348 Sharing Profiles between W95 and NT Workstation 4.0
349 ---------------------------------------------------
350
351 The default logon path is \\%N\U%.  NT Workstation will attempt to create
352 a directory "\\samba-server\username.PDS" if you specify the logon path
353 as "\\samba-server\username" with the NT User Manager.  Therefore, you
354 will need to specify (for example) "\\samba-server\username\profile".
355 NT 4.0 will attempt to create "\\samba-server\username\profile.PDS", which
356 is more likely to succeed.
357
358 If you then want to share the same Start Menu / Desktop with W95, you will
359 need to specify "logon path = \\samba-server\username\profile" [lkcl 10aug97
360 this has its drawbacks: i created a shortcut to telnet.exe, which attempts
361 to run from the c:\winnt\system32 directory.  this directory is obviously
362 unlikely to exist on a Win95-only host].
363
364 If you have this set up correctly, you will find separate user.DAT and
365 NTuser.DAT files in the same profile directory.
366
367 [lkcl 25aug97 - there are some issues to resolve with downloading of
368 NT profiles, probably to do with time/date stamps.  i have found that
369 NTuser.DAT is never updated on the workstation after the first time that
370 it is copied to the local workstation profile directory.  this is in
371 contrast to w95, where it _does_ transfer / update profiles correctly].
372