Code

Added first shot of a gosa.conf manual page
[gosa.git] / gosa-core / contrib / gosa.conf.5
1 .TH gosa.conf 5
2 .SH NAME
3 gosa.conf - GOsa configuration file
4 .SH DESCRIPTION
5 The gosa.conf file contains configuration information for
6 .IR GOsa,
7 a powerful GPL'ed framework for managing accounts and systems in
8 LDAP databases.
9 .PP
10 The gosa.conf file is a XML style configuration file. It is parsed by
11 the GOsa web application during log in.  The file may contain
12 extra tabs and newlines for formatting purposes.  Tag keywords in the
13 file are case-insensitive. Comments should be placed outside of XML
14 tags and should be encapsulated inside of <!-- --> tags.
15 .PP
16 The gosa.conf file can be used to configure the look and feel, behaviour
17 and access control of the GOsa webinterface.
18 .SH Configuration layout
20 The configuration has to be specified inside of the <conf> tags. It
21 basically consists of three main parts: menu definition, definition
22 of subdialogs (tabbed dialogs) and the main configuration - including
23 information about several locations.
25 .B Layout example:
27 .nf
28   <?xml version="1.0"?>
29   
30   <conf config_version="...." >
31     <!-- Menu definition -->
32     <menu>
33     ...
34     </menu>
35   
36     <!-- Tabbed dialog definitions -->
37     ...
38   
39     <!-- Global setup -->
40     <main>
41   
42        <!-- Location specific setups -->
43        <location name="">
44          ...
45        </location>
46   
47     </main>
48   
49   </conf>
50 .fi
52 .SH Menu definition
54 This tag defines the side and icon menu inside the
55 interface. Defining an entry here is no guarantie to get it shown,
56 though. Only entries with matching ACL's get shown.
58 There are two types of entries inside of the menu: section and plugin
60 .B Defining a section
62 Open a 
63 .I <section>
64 tag including a 
65 .I name
66 attribute. This will show up in the menu as a new section later on.
67 Own entries are not handled via I18N by default. Close the 
68 .I </section>
69 tag after your plugin definitions.
71 .B Defining a plugin
73 Open a 
74 .I <plugin>
75 tag including a 
76 .I "class"
77 attribute. The 
78 .I "class" 
79 should be present inside your GOsa setup - the entry will be ignored if it is not.
81 Plugins should have an 
82 .I "acl"
83 entry, that allows GOsa to decide wether a user is allowed to see a plugin or not.
84 The 
85 .I "acl"
86 string matches with an ACL definition done inside of GOsa.
88 You can override an icon by specifying the 
89 .I "icon"
90 attribute.
92 For every plugin, you can provide at least four additional hooks: 
93 .I postcreate,
94 .I postdelete,
95 .I postmodify
96 and
97 .I check.
98 These can be used to perform special actions when a plugins gets
99 a create, delete, modify or check request. As a parameter, these
100 keywords get a shell script or program to the task.
102 .I The
103 .B create / delete / modify
104 .I keywords
106 These keywords take a full executable path of a script. You can
107 provide certain parameters in form of LDAP attributes. '%uid'
108 will pass the current user id, '%dn' the current object dn, etc.
110 The script gets executed after create, delete or modify tasks.
112 .I The
113 .B check
114 .I keyword
116 This keyword takes a full executable path of a script. Check is
117 triggered after you press the
118 -I "Apply"
119 or
120 -I "OK"
121 button. The complete LDAP entry as it will be written to the
122 LDAP is passed to your script. If parts of the entry do not
123 match some logic of your script, just print an error message
124 to STDOUT. GOsa will show this message and abort the current
125 process of saving the entry to the LDAP.
127 .B Example menu definition:
129 .nf
130   <menu>
131     <section name="My account">
132       <plugin acl="users/user:self" class="user" check="/usr/local/bin/test_user.sh" />
133       <plugin acl="users/samba:self" class="sambaAccount" postcreate="/usr/local/bin/create_share '%uid'" />
134     </section>
135   </menu>
136 .fi
138 .SH Tabbed dialog definitions
140 Tab definitions define the sub plugins which get included for certain
141 tabbed dialogs. If you change something here, never (!) remove the
142 primary (the first) "tab" tag which is defined. Most tabbed dialogs
143 need a primary plugin.
145 .I "*tab"
146 should be looked for by a defined plugin. This one will take
147 every 
148 .I "tab"
149 defined
150 .I "class"
151 and will show it inside of a tabbed dialog
152 with the header defined in
153 .I "name".
155 .B Example tabbed dialog definition:
157 .nf
158   <grouptabs>
159     <tab class="group" name="Generic" />
160     <tab class="environment" name="Environment" />
161     <tab class="appgroup" name="Applications" />
162     <tab class="mailgroup" name="Mail" />
163   </grouptabs>
164 .fi
166 .SH Main section
168 The main section defines global settings, which might be overridden by
169 each location definition inside of this global definition.
171 .B Example layout:
173 .nf
174   <main default="Example Net"
175         list_summary="false"
176         ... >
178         <location name="Example Net"
179                   hash="md5"
180                   dnmode="cn"
181                   ...
183                   <referral url="ldaps://ldap.example.net:636/dc=example,dc=net"
184                             admin="cn=gosa-admin,dc=example,dc=net"
185                             password="secret" />
187         </location>
189   </main>
191 .fi
193 .B Generic options
195 .PP
196 .B forceglobals
197 .I bool
198 .PP
199 The
200 .I forceglobals
201 statement enables PHP security checks to force register_global settings to
202 be switched off.
203 .PP
205 .B forcessl
206 .I bool
207 .PP
208 The
209 .I forceglobals
210 statement enables PHP security checks to force encrypted access to the web
211 interface. GOsa will try to redirect to the same URL - just with https://.
212 .PP
214 .B warnssl
215 .I bool
216 .PP
217 The
218 .I warnssl
219 statement enables PHP security checks to detect non encrypted access to
220 the web interface. GOsa will display a warning in this case.
221 .PP
223 .B uniq_identifier
224 .I string
225 .PP
226 The
227 .I uniq_identifier
228 statement enables GOsa to check if a entry currently being edited has
229 been modified from someone else outside GOsa in the meantime. It will
230 display an informative dialog then. It can be set to
231 .I entryCSN
232 for OpenLDAP based systems or
233 .I contextCSN
234 for Sun DS based systems.
235 .PP
237 .B logging
238 .I string
239 .PP
240 The
241 .I logging
242 statement enables event logging on GOsa side. Setting it to 
243 .I syslog,
244 GOsa will log every action a user performs via syslog. Setting it to
245 .I mysql,
246 GOsa will log every action to a mysql server, defined in the
247 GOsa systems plugin. Both values can be combined as a comma seperated
248 list.
250 GOsa will not log anything, if the logging value is empty.
251 .PP
253 .B login_attribute
254 .I string
255 .PP
256 The
257 .I login_attribute
258 statement tells GOsa which LDAP attribute is used as the login name
259 during login. It can be set to
260 .I uid, mail
261 or
262 .I both.
263 .PP
265 .B enableCopyPaste
266 .I bool
267 .PP
268 The
269 .I enableCopyPaste
270 statement enables copy and paste for LDAP entries managed with GOsa.
271 .PP
273 .B enable_snapshot
274 .I bool
275 .PP
276 The
277 .I enable_snapshot
278 statement enables a snapshot mechaism in GOsa. This enables you to save
279 certain states of entries and restore them later on.
280 .PP
282 .B snapshot_base
283 .I dn
284 .PP
285 The
286 .I snapshot_base
287 statement defines the base where snapshots should be stored inside of
288 the LDAP.
289 .PP
291 .B snapshot_server
292 .I url
293 .PP
294 The
295 .I snapshot_server
296 variable defines the LDAP URL for the server which is used to do object
297 snapshots.
298 .PP
300 .B snapshot_user
301 .I dn
302 .PP
303 The
304 .I snapshot_user
305 variable defines the user which is used to authenticate when connecting
306 to
307 .I snapshot_server.
308 .PP
310 .B snapshot_password
311 .I string
312 .PP
313 The
314 .I snapshot_password
315 variable defines the credentials which are used in combination with
316 .I snapshot_user
317 and
318 .I snapshot_server
319 in order to authenticate.
320 .PP
322 .B config
323 .I dn
324 .PP
325 The
326 .I config
327 statement defines the LDAP base, where GOsa stores management information,
328 such as site wide locking and user notifications.
329 .PP
331 .B compile
332 .I path
333 .PP
334 The
335 .I compile
336 statements defines the path, where the PHP templating engins
337 .I smarty
338 should store its compiled GOsa templates for improved speed. This path
339 needs to be writeable by the user your webserver is running with.
340 .PP
342 .B timezone
343 .I string
344 .PP
345 The
346 .I timezone
347 statements defines the timezone used inside of GOsa to handle date
348 related tasks, such as password expiery, vacation messages, etc.
349 The
350 .I timezone
351 value should be a unix conform timezone value like in /etc/timezone.
352 .PP
354 .B governmentmode
355 .I bool
356 .PP
357 The
358 .I governmentmode
359 statement enables the IVBB mode inside of GOsa. You need the ivbb.schema
360 file from used by german authorities.
361 .PP
363 .B strict
364 .I bool
365 .PP
366 The
367 .I strict
368 statement enables strict checking of uids and group names. If you need
369 characters like . or - inside of your accounts, set this to
370 .I false.
371 .PP
373 .B strict_units
374 .I bool
375 .PP
376 The
377 .I strict_units
378 statement enables checking of
379 .I unitTag
380 attributes when using administrative units. If this is set to
381 .I true
382 GOsa can only see objects inside the administrative unit a
383 user is logged into.
384 .PP
386 .B rfc2307bis
387 .I bool
388 .PP
389 The
390 .I rfc2307bis
391 statement enables rfc2307bis style groups in GOsa. You can use
392 .I member
393 attributes instead of memberUid in this case. To make it work
394 on unix systems, you've to adjust your NSS configuration to
395 use rfc2307bis style groups, too.
396 .PP
410 .B Display options
411 .PP
412 .I The
413 .B list_summary
414 .I statement
415 .PP
416 .B list_summary
417 .I true/false
418 .PP
419 The
420 .I list_summary
421 statement determines whether a status bar will be shown on the bottom of
422 GOsa generated lists, displaying a short summary of type and number of
423 elements in the list.
424 .PP
426 .B Password options
427 .PP
428 .I The
429 .B pwminlen
430 .I statement
431 .PP
432 .B pwminlen
433 .I integer
434 .PP
435 The
436 .I pwminlen
437 statement determines whether a newly entered password has to be of
438 a minimum length.
439 .PP
441 .I The
442 .B pwdiffer
443 .I statement
444 .PP
445 .B pwdiffer
446 .I integer
447 .PP
448 The
449 .I pwdiffer
450 statement determines whether a newly entered password has to be checked
451 to have at least n different characters.
452 .PP
454 .I The
455 .B externalpwdhook
456 .I statement
457 .PP
458 .B externalpwdhook
459 .I path
460 .PP
461 The
462 .I externalpwdhook
463 can specify an external script to handle password settings at some other
464 location besides the LDAP. 
465 .PP
470 .SH AUTHOR
471 .B gosa.conf(5)
472 was written by Cajus Pollmeier for
473 the GOsa project (
474 .B http://www.gosa-project.org
475 ).