import HEAD into svn+ssh://svn.samba.org/home/svn/samba/trunk
[metze/old/v3-2-winbind-ndr.git] / examples / LDAP / samba.schema
1 ##
2 ## schema file for OpenLDAP 2.x
3 ## Schema for storing Samba user accounts and group maps in LDAP
4 ## OIDs are owned by the Samba Team
5 ##
6 ## Prerequisite schemas - uid         (cosine.schema)
7 ##                      - displayName (inetorgperson.schema)
8 ##                      - gidNumber   (nis.schema)
9 ##
10 ## 1.3.6.1.4.1.7165.2.1.x - attributetypes
11 ## 1.3.6.1.4.1.7165.2.2.x - objectclasses
12 ##
13
14 ########################################################################
15 ##                            HISTORICAL                              ##
16 ########################################################################
17
18 ##
19 ## Password hashes
20 ##
21 #attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword'
22 #       DESC 'LanManager Passwd'
23 #       EQUALITY caseIgnoreIA5Match
24 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
25
26 #attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword'
27 #       DESC 'NT Passwd'
28 #       EQUALITY caseIgnoreIA5Match
29 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
30
31 ##
32 ## Account flags in string format ([UWDX     ])
33 ##
34 #attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags'
35 #       DESC 'Account Flags'
36 #       EQUALITY caseIgnoreIA5Match
37 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
38
39 ##
40 ## Password timestamps & policies
41 ##
42 #attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet'
43 #       DESC 'NT pwdLastSet'
44 #       EQUALITY integerMatch
45 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
46
47 #attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime'
48 #       DESC 'NT logonTime'
49 #       EQUALITY integerMatch
50 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
51
52 #attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime'
53 #       DESC 'NT logoffTime'
54 #       EQUALITY integerMatch
55 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
56
57 #attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime'
58 #       DESC 'NT kickoffTime'
59 #       EQUALITY integerMatch
60 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
61
62 #attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange'
63 #       DESC 'NT pwdCanChange'
64 #       EQUALITY integerMatch
65 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
66
67 #attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange'
68 #       DESC 'NT pwdMustChange'
69 #       EQUALITY integerMatch
70 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
71
72 ##
73 ## string settings
74 ##
75 #attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive'
76 #       DESC 'NT homeDrive'
77 #       EQUALITY caseIgnoreIA5Match
78 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
79
80 #attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath'
81 #       DESC 'NT scriptPath'
82 #       EQUALITY caseIgnoreIA5Match
83 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
84
85 #attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath'
86 #       DESC 'NT profilePath'
87 #       EQUALITY caseIgnoreIA5Match
88 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
89
90 #attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations'
91 #       DESC 'userWorkstations'
92 #       EQUALITY caseIgnoreIA5Match
93 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
94
95 #attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome'
96 #       DESC 'smbHome'
97 #       EQUALITY caseIgnoreIA5Match
98 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
99
100 #attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain'
101 #       DESC 'Windows NT domain to which the user belongs'
102 #       EQUALITY caseIgnoreIA5Match
103 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
104
105 ##
106 ## user and group RID
107 ##
108 #attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid'
109 #       DESC 'NT rid'
110 #       EQUALITY integerMatch
111 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
112
113 #attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID'
114 #       DESC 'NT Group RID'
115 #       EQUALITY integerMatch
116 #       SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
117
118 ##
119 ## The smbPasswordEntry objectclass has been depreciated in favor of the
120 ## sambaAccount objectclass
121 ##
122 #objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY
123 #        DESC 'Samba smbpasswd entry'
124 #        MUST ( uid $ uidNumber )
125 #        MAY  ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags ))
126
127 #objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL
128 #       DESC 'Samba Account'
129 #       MUST ( uid $ rid )
130 #       MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
131 #               logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
132 #               displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
133 #               description $ userWorkstations $ primaryGroupID $ domain ))
134
135 #objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY
136 #       DESC 'Samba Auxiliary Account'
137 #       MUST ( uid $ rid )
138 #       MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
139 #              logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
140 #              displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
141 #              description $ userWorkstations $ primaryGroupID $ domain ))
142
143 ########################################################################
144 ##                        END OF HISTORICAL                           ##
145 ########################################################################
146
147 #######################################################################
148 ##                Attributes used by Samba 3.0 schema                ##
149 #######################################################################
150
151 ##
152 ## Password hashes
153 ##
154 attributetype ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword'
155         DESC 'LanManager Password'
156         EQUALITY caseIgnoreIA5Match
157         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
158
159 attributetype ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword'
160         DESC 'MD4 hash of the unicode password'
161         EQUALITY caseIgnoreIA5Match
162         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
163
164 ##
165 ## Account flags in string format ([UWDX     ])
166 ##
167 attributetype ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags'
168         DESC 'Account Flags'
169         EQUALITY caseIgnoreIA5Match
170         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
171
172 ##
173 ## Password timestamps & policies
174 ##
175 attributetype ( 1.3.6.1.4.1.7165.2.1.27 NAME 'sambaPwdLastSet'
176         DESC 'Timestamp of the last password update'
177         EQUALITY integerMatch
178         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
179
180 attributetype ( 1.3.6.1.4.1.7165.2.1.28 NAME 'sambaPwdCanChange'
181         DESC 'Timestamp of when the user is allowed to update the password'
182         EQUALITY integerMatch
183         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
184
185 attributetype ( 1.3.6.1.4.1.7165.2.1.29 NAME 'sambaPwdMustChange'
186         DESC 'Timestamp of when the password will expire'
187         EQUALITY integerMatch
188         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
189
190 attributetype ( 1.3.6.1.4.1.7165.2.1.30 NAME 'sambaLogonTime'
191         DESC 'Timestamp of last logon'
192         EQUALITY integerMatch
193         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
194
195 attributetype ( 1.3.6.1.4.1.7165.2.1.31 NAME 'sambaLogoffTime'
196         DESC 'Timestamp of last logoff'
197         EQUALITY integerMatch
198         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
199
200 attributetype ( 1.3.6.1.4.1.7165.2.1.32 NAME 'sambaKickoffTime'
201         DESC 'Timestamp of when the user will be logged off automatically'
202         EQUALITY integerMatch
203         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
204
205 attributetype ( 1.3.6.1.4.1.7165.2.1.48 NAME 'sambaBadPasswordCount'
206         DESC 'Bad password attempt count'
207         EQUALITY integerMatch
208         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
209
210 attributetype ( 1.3.6.1.4.1.7165.2.1.49 NAME 'sambaBadPasswordTime'
211         DESC 'Time of the last bad password attempt'
212         EQUALITY integerMatch
213         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
214
215
216 ##
217 ## string settings
218 ##
219 attributetype ( 1.3.6.1.4.1.7165.2.1.33 NAME 'sambaHomeDrive'
220         DESC 'Driver letter of home directory mapping'
221         EQUALITY caseIgnoreIA5Match
222         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
223
224 attributetype ( 1.3.6.1.4.1.7165.2.1.34 NAME 'sambaLogonScript'
225         DESC 'Logon script path'
226         EQUALITY caseIgnoreMatch
227         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
228
229 attributetype ( 1.3.6.1.4.1.7165.2.1.35 NAME 'sambaProfilePath'
230         DESC 'Roaming profile path'
231         EQUALITY caseIgnoreMatch
232         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
233
234 attributetype ( 1.3.6.1.4.1.7165.2.1.36 NAME 'sambaUserWorkstations'
235         DESC 'List of user workstations the user is allowed to logon to'
236         EQUALITY caseIgnoreMatch
237         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
238
239 attributetype ( 1.3.6.1.4.1.7165.2.1.37 NAME 'sambaHomePath'
240         DESC 'Home directory UNC path'
241         EQUALITY caseIgnoreMatch
242         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
243
244 attributetype ( 1.3.6.1.4.1.7165.2.1.38 NAME 'sambaDomainName'
245         DESC 'Windows NT domain to which the user belongs'
246         EQUALITY caseIgnoreMatch
247         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
248
249 attributetype ( 1.3.6.1.4.1.7165.2.1.47 NAME 'sambaMungedDial'
250         DESC ''
251         EQUALITY caseExactMatch
252         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} )
253
254 ##
255 ## SID, of any type
256 ##
257
258 attributetype ( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID'
259         DESC 'Security ID'
260         EQUALITY caseIgnoreIA5Match
261         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
262
263
264 ##
265 ## Primary group SID, compatible with ntSid
266 ##
267
268 attributetype ( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID'
269         DESC 'Primary Group Security ID'
270         EQUALITY caseIgnoreIA5Match
271         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
272
273 ##
274 ## group mapping attributes
275 ##
276 attributetype ( 1.3.6.1.4.1.7165.2.1.19 NAME 'sambaGroupType'
277         DESC 'NT Group Type'
278         EQUALITY integerMatch
279         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
280
281 ##
282 ## Store info on the domain
283 ##
284
285 attributetype ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid'
286         DESC 'Next NT rid to give our for users'
287         EQUALITY integerMatch
288         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
289
290 attributetype ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid'
291         DESC 'Next NT rid to give out for groups'
292         EQUALITY integerMatch
293         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
294
295 attributetype ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid'
296         DESC 'Next NT rid to give out for anything'
297         EQUALITY integerMatch
298         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
299
300 attributetype ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase'
301         DESC 'Base at which the samba RID generation algorithm should operate'
302         EQUALITY integerMatch
303         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
304
305
306
307 attributetype ( 1.3.6.1.4.1.7165.2.1.41 NAME 'sambaShareName'
308         DESC 'Share Name'
309         EQUALITY caseIgnoreMatch
310         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
311
312 attributetype ( 1.3.6.1.4.1.7165.2.1.42 NAME 'sambaOptionName'
313         DESC 'Option Name'
314         EQUALITY caseIgnoreMatch
315         SUBSTR caseIgnoreSubstringsMatch
316         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
317
318 attributetype ( 1.3.6.1.4.1.7165.2.1.43 NAME 'sambaBoolOption'
319         DESC 'A boolean option'
320         EQUALITY booleanMatch
321         SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
322
323 attributetype ( 1.3.6.1.4.1.7165.2.1.44 NAME 'sambaIntegerOption'
324         DESC 'An integer option'
325         EQUALITY integerMatch
326         SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
327
328 attributetype ( 1.3.6.1.4.1.7165.2.1.45 NAME 'sambaStringOption'
329         DESC 'A string option'
330         EQUALITY caseExactIA5Match
331         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
332
333 attributetype ( 1.3.6.1.4.1.7165.2.1.46 NAME 'sambaStringListOption'
334         DESC 'A string list option'
335         EQUALITY caseIgnoreMatch
336         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
337
338
339 attributetype ( 1.3.6.1.4.1.7165.2.1.50 NAME ( 'sambaPrivName' ) SUP name )
340
341 attributetype ( 1.3.6.1.4.1.7165.2.1.51 NAME 'sambaSIDList'
342         DESC 'Security ID List'
343         EQUALITY caseIgnoreIA5Match
344         SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} )
345
346 #######################################################################
347 ##              objectClasses used by Samba 3.0 schema               ##
348 #######################################################################
349
350 ## The X.500 data model (and therefore LDAPv3) says that each entry can
351 ## only have one structural objectclass.  OpenLDAP 2.0 does not enforce
352 ## this currently but will in v2.1
353
354 ##
355 ## added new objectclass (and OID) for 3.0 to help us deal with backwards
356 ## compatibility with 2.2 installations (e.g. ldapsam_compat)  --jerry
357 ##
358 objectclass ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY
359         DESC 'Samba 3.0 Auxilary SAM Account'
360         MUST ( uid $ sambaSID )
361         MAY  ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $
362                sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $
363                sambaPwdCanChange $ sambaPwdMustChange $ sambaAcctFlags $
364                displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $
365                sambaProfilePath $ description $ sambaUserWorkstations $
366                sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $
367                sambaBadPasswordCount $ sambaBadPasswordTime))
368
369 ##
370 ## Group mapping info
371 ##
372 objectclass ( 1.3.6.1.4.1.7165.2.2.4 NAME 'sambaGroupMapping' SUP top AUXILIARY
373         DESC 'Samba Group Mapping'
374         MUST ( gidNumber $ sambaSID $ sambaGroupType )
375         MAY  ( displayName $ description $ sambaSIDList ))
376
377 ##
378 ## Whole-of-domain info
379 ##
380 objectclass ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL
381         DESC 'Samba Domain Information'
382         MUST ( sambaDomainName $ 
383                sambaSID ) 
384         MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $
385               sambaAlgorithmicRidBase ) )
386
387 ## used for idmap_ldap module
388 objectclass ( 1.3.6.1.4.1.7165.1.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY
389         DESC 'Pool for allocating UNIX uids/gids'
390         MUST ( uidNumber $ gidNumber ) )
391
392
393 objectclass ( 1.3.6.1.4.1.7165.1.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY
394         DESC 'Mapping from a SID to an ID'
395         MUST ( sambaSID )
396         MAY ( uidNumber $ gidNumber ) )
397
398 objectclass ( 1.3.6.1.4.1.7165.1.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL
399         DESC 'Structural Class for a SID'
400         MUST ( sambaSID ) )
401
402
403
404
405 objectclass ( 1.3.6.1.4.1.7165.1.2.2.10 NAME 'sambaConfig' SUP top AUXILIARY
406         DESC 'Samba Configuration Section'
407         MAY ( description ) )
408
409 objectclass ( 1.3.6.1.4.1.7165.1.2.2.11 NAME 'sambaShare' SUP top STRUCTURAL
410         DESC 'Samba Share Section'
411         MUST ( sambaShareName )
412         MAY ( description ) )
413
414 objectclass ( 1.3.6.1.4.1.7165.1.2.2.12 NAME 'sambaConfigOption' SUP top STRUCTURAL
415         DESC 'Samba Configuration Option'
416         MUST ( sambaOptionName )
417         MAY ( sambaBoolOption $ sambaIntegerOption $ sambaStringOption $ sambaStringListoption $ description ) )
418
419
420 objectclass ( 1.3.6.1.4.1.7165.1.2.2.13 NAME 'sambaPrivilege' SUP top STRUCTURAL
421         DESC 'Samba Privilege'
422         MUST ( sambaPrivName )
423         MAY ( sambaSIDList $ description ) )
424