Code

More updates
[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 .PP
194 .B Generic options
196 .PP
197 .B forceglobals
198 .I bool
199 .PP
200 The
201 .I forceglobals
202 statement enables PHP security checks to force register_global settings to
203 be switched off.
204 .PP
206 .B forcessl
207 .I bool
208 .PP
209 The
210 .I forceglobals
211 statement enables PHP security checks to force encrypted access to the web
212 interface. GOsa will try to redirect to the same URL - just with https://.
213 .PP
215 .B warnssl
216 .I bool
217 .PP
218 The
219 .I warnssl
220 statement enables PHP security checks to detect non encrypted access to
221 the web interface. GOsa will display a warning in this case.
222 .PP
224 .B uniq_identifier
225 .I string
226 .PP
227 The
228 .I uniq_identifier
229 statement enables GOsa to check if a entry currently being edited has
230 been modified from someone else outside GOsa in the meantime. It will
231 display an informative dialog then. It can be set to
232 .I entryCSN
233 for OpenLDAP based systems or
234 .I contextCSN
235 for Sun DS based systems.
236 .PP
238 .B logging
239 .I string
240 .PP
241 The
242 .I logging
243 statement enables event logging on GOsa side. Setting it to 
244 .I syslog,
245 GOsa will log every action a user performs via syslog. Setting it to
246 .I mysql,
247 GOsa will log every action to a mysql server, defined in the
248 GOsa systems plugin. Both values can be combined as a comma seperated
249 list.
251 GOsa will not log anything, if the logging value is empty.
252 .PP
254 .B login_attribute
255 .I string
256 .PP
257 The
258 .I login_attribute
259 statement tells GOsa which LDAP attribute is used as the login name
260 during login. It can be set to
261 .I uid, mail
262 or
263 .I both.
264 .PP
266 .B enableCopyPaste
267 .I bool
268 .PP
269 The
270 .I enableCopyPaste
271 statement enables copy and paste for LDAP entries managed with GOsa.
272 .PP
274 .B enable_snapshot
275 .I bool
276 .PP
277 The
278 .I enable_snapshot
279 statement enables a snapshot mechaism in GOsa. This enables you to save
280 certain states of entries and restore them later on.
281 .PP
283 .B snapshot_base
284 .I dn
285 .PP
286 The
287 .I snapshot_base
288 statement defines the base where snapshots should be stored inside of
289 the LDAP.
290 .PP
292 .B snapshot_server
293 .I url
294 .PP
295 The
296 .I snapshot_server
297 variable defines the LDAP URL for the server which is used to do object
298 snapshots.
299 .PP
301 .B snapshot_user
302 .I dn
303 .PP
304 The
305 .I snapshot_user
306 variable defines the user which is used to authenticate when connecting
307 to
308 .I snapshot_server.
309 .PP
311 .B snapshot_password
312 .I string
313 .PP
314 The
315 .I snapshot_password
316 variable defines the credentials which are used in combination with
317 .I snapshot_user
318 and
319 .I snapshot_server
320 in order to authenticate.
321 .PP
323 .B config
324 .I dn
325 .PP
326 The
327 .I config
328 statement defines the LDAP base, where GOsa stores management information,
329 such as site wide locking and user notifications.
330 .PP
332 .B compile
333 .I path
334 .PP
335 The
336 .I compile
337 statements defines the path, where the PHP templating engins
338 .I smarty
339 should store its compiled GOsa templates for improved speed. This path
340 needs to be writeable by the user your webserver is running with.
341 .PP
343 .B timezone
344 .I string
345 .PP
346 The
347 .I timezone
348 statements defines the timezone used inside of GOsa to handle date
349 related tasks, such as password expiery, vacation messages, etc.
350 The
351 .I timezone
352 value should be a unix conform timezone value like in /etc/timezone.
353 .PP
355 .B governmentmode
356 .I bool
357 .PP
358 The
359 .I governmentmode
360 statement enables the IVBB mode inside of GOsa. You need the ivbb.schema
361 file from used by german authorities.
362 .PP
364 .B strict
365 .I bool
366 .PP
367 The
368 .I strict
369 statement enables strict checking of uids and group names. If you need
370 characters like . or - inside of your accounts, set this to
371 .I false.
372 .PP
374 .B strict_units
375 .I bool
376 .PP
377 The
378 .I strict_units
379 statement enables checking of
380 .I unitTag
381 attributes when using administrative units. If this is set to
382 .I true
383 GOsa can only see objects inside the administrative unit a
384 user is logged into.
385 .PP
387 .B rfc2307bis
388 .I bool
389 .PP
390 The
391 .I rfc2307bis
392 statement enables rfc2307bis style groups in GOsa. You can use
393 .I member
394 attributes instead of memberUid in this case. To make it work
395 on unix systems, you've to adjust your NSS configuration to
396 use rfc2307bis style groups, too.
397 .PP
399 .B ppd_path
400 .I path
401 .PP
402 The
403 .I ppd_path
404 variable defines where to store PPD files for the GOto environment plugins.
405 .PP
406 .PP
409 .B Browser and display options
411 .B list_summary
412 .I true/false
413 .PP
414 The
415 .I list_summary
416 statement determines whether a status bar will be shown on the bottom of
417 GOsa generated lists, displaying a short summary of type and number of
418 elements in the list.
419 .PP
421 .B compressed
422 .I true/false
423 .PP
424 The
425 .I compressed
426 statement determines whether PHP should send compressed HTML pages to
427 browsers or not. This may increase or decrease the performance, depending
428 on your network.
429 .PP
431 .B save_filter
432 .I true/false
433 .PP
434 The
435 .I save_filter
436 statement determines whether GOsa should store filter and plugin settings
437 inside of a cookie.
438 .PP
440 .B lang
441 .I string
442 .PP
443 The
444 .I lang
445 statement defines the default language used by GOsa. Normally GOsa autodetects
446 the language from the browser settings. If this is not working or you want to
447 force the language, just add the language code (i.e. de for german) here.
448 .PP
450 .B theme
451 .I string
452 .PP
453 The
454 .I theme
455 statement defines what theme is used to display GOsa pages. You can install some
456 corporate identity like theme and/or modify certain templates to fit your needs
457 within themes. Take a look at the GOsa
458 .I FAQ
459 for more information.
460 .PP
462 .B session_lifetime
463 .I int
464 .PP
465 The
466 .I session_lifetime
467 value defines when a session will expire in seconds. For Debian systems, this will
468 not work because the sessions will be removed by a cron job instead. Please modify
469 the value inside of your php.ini instead.
470 .PP
472 .B noprimarygroup
473 .I bool
474 .PP
475 The
476 .I noprimarygroup
477 variable enables or disables the group filter to show primary user groups. It is
478 time consuming to evaluate which groups are primary and which are not. So you may
479 want to set it to
480 .I true
481 if your group plugin is slow.
482 .PP
484 .B ie_png_workaround
485 .I bool
486 .PP
487 The
488 .I ie_png_workaround
489 variable enables or disables a workaround for IE < 7 in order to display transparent
490 PNG files correctly. This drastically slows down browsing. Please use Firefox or Opera
491 instead.
492 .PP
493 .PP
496 .B Password options
497 .PP
498 .B pwminlen
499 .I integer
500 .PP
501 The
502 .I pwminlen
503 statement determines whether a newly entered password has to be of
504 a minimum length.
505 .PP
507 .B pwdiffer
508 .I integer
509 .PP
510 The
511 .I pwdiffer
512 statement determines whether a newly entered password has to be checked
513 to have at least n different characters.
514 .PP
516 .B externalpwdhook
517 .I path
518 .PP
519 The
520 .I externalpwdhook
521 can specify an external script to handle password settings at some other
522 location besides the LDAP. It will be called this way:
524 .nf
525 /path/to/your/script "username" "oldpassword" "newpassword"
526 .fi
528 .B account_expiration
529 .I bool
530 .PP
531 The
532 .I account_expiration
533 statement enables shadow attribute tests during the login to the GOsa web
534 interface and forces password renewal or account lockout.
535 .PP
537 .B krbsasl
538 .I bool
539 .PP
540 The
541 .I krbsasl
542 statement defines the way the kerberos realm is stored in the
543 .I userPassword
544 attribute. Set it to
545 .I true
546 in order to get {sasl}user@REALM.NET, or to
547 .I false
548 to get {kerberos}user@REALM.NET. The latter is outdated, but may be
549 needed from time to time.
550 .PP
551 .PP
554 .B LDAP options
555 .PP
556 .B max_ldap_query_time
557 .I integer
558 .PP
559 The
560 .I max_ldap_query_time
561 statement tells GOsa to stop LDAP actions if there is no answer within the
562 specified number of seconds.
563 .PP
565 .B schema_check
566 .I bool
567 .PP
568 The
569 .I schema_check
570 statement enables or disables schema checking during login. It is recommended
571 to switch this on in order to let GOsa handle object creation more efficient.
572 .PP
574 .B tls
575 .I bool
576 .PP
577 The
578 .I tls
579 statement enables or disables TLS operating on LDAP connections.
580 .PP
582 .B dnmode
583 .I cn/uid
584 .PP
585 The
586 .I dnmode
587 option tells GOsa how to create new accounts. Possible values are
588 .I uid
589 and
590 .I cn.
591 In the first case GOsa creates uid style DN entries:
592 .nf
593 uid=superuser,ou=staff,dc=example,dc=net
594 .fi
595 In the second case, GOsa creates cn style DN entries:
596 .nf
597 cn=Foo Bar,ou=staff,dc=example,dc=net
598 .fi
599 If you choose "cn" to be your
600 .I dnmode
601 you can decide whether to include the personal title in your dn by
602 selecting
603 .I include_personal_title.
604 .PP
606 .B include_personal_title
607 .I bool
608 .PP
609 The
610 .I include_personal_title
611 option tells GOsa to include the personal title in user DNs when
612 .I dnmode
613 is set to "cn".
615 .B people
616 .I string
617 .PP
618 The
619 .I people
620 statement defines the location where new accounts will be created inside of
621 defined departments. The default is
622 .I ou=people.
623 .PP
625 .B groups
626 .I string
627 .PP
628 The
629 .I groups
630 statement defines the location where new groups will be created inside of
631 defined departments. The default is
632 .I ou=groups.
633 .PP
635 .B sudoou
636 .I string
637 .PP
638 The
639 .I sudoou
640 statement defines the location where new groups will be created inside of
641 defined departments. The default is
642 .I ou=groups.
643 .PP
645 .B winstations
646 .I string
647 .PP
648 This statement defines the location where GOsa looks for new samba workstations.
649 .PP
651 .B ogroupou
652 .I string
653 .PP
654 This statement defines the location where GOsa creates new object groups inside of defined
655 departments. Default is
656 .I ou=groups.
657 .PP
659 .B serverou
660 .I string
661 .PP
662 This statement defines the location where GOsa creates new servers inside of defined
663 departments. Default is
664 .I ou=servers.
665 .PP
667 .B terminalou
668 .I string
669 .PP
670 This statement defines the location where GOsa creates new terminals inside of defined
671 departments. Default is
672 .I ou=terminals.
673 .PP
675 .B workstationou
676 .I string
677 .PP
678 This statement defines the location where GOsa creates new workstations inside of defined
679 departments. Default is
680 .I ou=workstations.
681 .PP
683 .B printerou
684 .I string
685 .PP
686 This statement defines the location where GOsa creates new printers inside of defined
687 departments. Default is
688 .I ou=printers.
689 .PP
691 .B componentou
692 .I string
693 .PP
694 This statement defines the location where GOsa creates new network components inside of defined
695 departments. Default is
696 .I ou=components.
697 .PP
699 .B phoneou
700 .I string
701 .PP
702 This statement defines the location where GOsa creates new phones inside of defined
703 departments. Default is
704 .I ou=phones.
705 .PP
707 .B conferenceou
708 .I string
709 .PP
710 This statement defines the location where GOsa creates new phone conferences inside of defined
711 departments. Default is
712 .I ou=conferences.
713 .PP
715 .B blocklistou
716 .I string
717 .PP
718 This statement defines the location where GOsa creates new fax blocklists inside of defined
719 departments. Default is
720 .I ou=blocklists.
721 .PP
723 .B incomingou
724 .I string
725 .PP
726 This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
727 Default is
728 .I ou=incoming.
729 .PP
731 .B systemsou
732 .I string
733 .PP
734 This statement defines the base location for servers, workstations, terminals, phones and
735 components. Default is
736 .I ou=systems.
737 .PP
739 .B ldap_filter_nesting_limit
740 .I integer
741 .PP
742 The
743 .I ldap_filter_nesting_limit
744 statement can be used to speed up group handling for groups with several hundreds of members.
745 The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
746 To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
747 Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
748 stop to do these lookups.
749 .PP
751 .B sizelimit
752 .I integer
753 .PP
754 The
755 .I sizelimit
756 statement tells GOsa to retrieve the specified maximum number of results. The user will get
757 a warning, that not all entries were shown.
758 .PP
760 .B recursive
761 .I bool
762 .PP
763 The
764 .I recursive
765 statement tells GOsa to follow LDAP referrals.
766 .PP
767 .PP
770 .B Account creation options
771 .PP
772 .B uidbase
773 .I integer
774 .PP
775 The
776 .I uidbase
777 statement defines where to start looking for a new free user id. This should be synced
778 with your
779 .I adduser.conf
780 to avoid overlapping uidNumber values between local and LDAP based lookups. The uidbase
781 can even be dynamic. Take a look at the
782 .I base_hook
783 definition below.
784 .PP
786 .B gidbase
787 .I integer
788 .PP
789 The
790 .I gidbase
791 statement defines where to start looking for a new free group id. This should be synced
792 with your
793 .I adduser.conf
794 to avoid overlapping gidNumber values between local and LDAP based lookups. The gidbase
795 can even be dynamic. Take a look at the
796 .I base_hook
797 definition below.
798 .PP
800 .B minid
801 .I integer
802 .PP
803 The
804 .I minid
805 statement defines the minimum assignable user or group id to avoid security leaks with
806 uid 0 accounts.
807 .PP
809 .B base_hook
810 .I path
811 .PP
812 The
813 .I base_hook
814 statement defines a script to be called for finding the next free id for users or groups
815 externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
816 should return an integer value.
817 .PP
819 .B hash
820 .I string
821 .PP
822 The
823 .I hash
824 statement defines the default password hash to choose for new accounts. Valid values are
825 .I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
826 and
827 .I sasl.
828 These values will be overridden when using templates.
829 .PP
831 .B idgen
832 .I string
833 .PP
834 The
835 .I idgen
836 statement describes an automatic way to generate new user ids. There are two basic
837 functions supported - which can be combined:
839  a) using attributes
840     You can specify LDAP attributes (currently only sn and givenName) in braces {}
841     and add a percent sign befor it. Optionally you can strip it down to a number
842     of characters, specified in []. I.e.
843 .nf
844       idgen="{%sn}-{%givenName[2-4]}"
845 .fi
847     will generate an ID using the full surename, adding a dash, and adding at least
848     the first two characters of givenName. If this ID is used, it'll use up to four
849     characters. If no automatic generation is possible, a input box is shown.
851  b) using automatic id's
852     I.e. specifying
853 .nf
854       idgen="acct{id:3}"
855 .fi
856     will generate a three digits id with the next free entry appended to "acct".
857 .nf
858       idgen="ext{id#3}"
859 .fi
860     will generate a three digits random number appended to "ext".
861 .PP
862 .PP
873 .SH AUTHOR
874 .B gosa.conf(5)
875 was written by Cajus Pollmeier for
876 the GOsa project (
877 .B http://www.gosa-project.org
878 ).