Code

Added prototype support
[gosa.git] / gosa-core / contrib / gosa.conf.5
1 .TH gosa.conf 5 "2008-04-07" "GOsa v2.6" "Debian"
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 configVersion="...." >
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 postremove,
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         listSummary="false"
176         ... >
178         <location name="Example Net"
179                   hash="md5"
180                   accountPrimaryAttribute="cn"
181                   ...
183                   <referral uri="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 forceSSL
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 modificationDetectionAttribute
225 .I string
226 .PP
227 The
228 .I modificationDetectionAttribute
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 true,
245 GOsa will log every action a user performs via syslog. If you use
246 rsyslog and configure it to mysql logging, you can browse all events
247 within GOsa.
249 GOsa will not log anything, if the logging value is empty or set to
250 false.
251 .PP
253 .B loginAttribute
254 .I string
255 .PP
256 The
257 .I loginAttribute
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 copyPaste
266 .I bool
267 .PP
268 The
269 .I copyPaste
270 statement enables copy and paste for LDAP entries managed with GOsa.
271 .PP
273 .B snapshots
274 .I bool
275 .PP
276 The
277 .I snapshots
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 snapshotBase
283 .I dn
284 .PP
285 The
286 .I snapshotBase
287 statement defines the base where snapshots should be stored inside of
288 the LDAP.
289 .PP
291 .B snapshotURI
292 .I uri 
293 .PP
294 The
295 .I snapshotURI
296 variable defines the LDAP URI for the server which is used to do object
297 snapshots.
298 .PP
300 .B snapshotAdminDn
301 .I dn
302 .PP
303 The
304 .I snapshotAdminDn
305 variable defines the user which is used to authenticate when connecting
306 to
307 .I snapshotURI.
308 .PP
310 .B snapshotAdminPassword
311 .I string
312 .PP
313 The
314 .I snapshotAdminPassword
315 variable defines the credentials which are used in combination with
316 .I snapshotAdminDn
317 and
318 .I snapshotURI
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 templateCompileDirectory
332 .I path
333 .PP
334 The
335 .I templateCompileDirectory
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 honourIvbbAttributes
355 .I bool
356 .PP
357 The
358 .I honourIvbbAttributes
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 strictNamingRules
364 .I bool
365 .PP
366 The
367 .I strictNamingRules
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 honourUnitTags
374 .I bool
375 .PP
376 The
377 .I honourUnitTags
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
398 .B ppdPath
399 .I path
400 .PP
401 The
402 .I ppdPath
403 variable defines where to store PPD files for the GOto environment plugins.
404 .PP
406 .B resolutions
407 .I path
408 .PP
409 The
410 .I resolutions
411 variable defines a plain text file which contains additional resolutions
412 to be shown in the environment and system plugins.
413 .PP
415 .B htaccessAuthentication
416 .I bool
417 .PP
418 The
419 .I htaccessAuthentication
420 variable tells GOsa to use either htaccess authentication or LDAP authentication. This
421 can be used if you want to use i.e. kerberos to authenticate the users.
422 .PP
424 .B gosaSupportURI
425 .I URI
426 .PP
427 The
428 .I gosaSupportURI
429 defines the major gosa-si server host and the password for GOsa to connect to it.
430 can be used if you want to use i.e. kerberos to authenticate the users.
432 The format is:
434 .nf
435 credentials@host:port
436 .fi
437 .PP
440 .B Browser and display options
442 .B listSummary
443 .I true/false
444 .PP
445 The
446 .I listSummary
447 statement determines whether a status bar will be shown on the bottom of
448 GOsa generated lists, displaying a short summary of type and number of
449 elements in the list.
450 .PP
452 .B sendCompressedOutput
453 .I true/false
454 .PP
455 The
456 .I sendCompressedOutput
457 statement determines whether PHP should send compressed HTML pages to
458 browsers or not. This may increase or decrease the performance, depending
459 on your network.
460 .PP
462 .B storeFilterSettings
463 .I true/false
464 .PP
465 The
466 .I storeFilterSettings
467 statement determines whether GOsa should store filter and plugin settings
468 inside of a cookie.
469 .PP
471 .B language
472 .I string
473 .PP
474 The
475 .I language
476 statement defines the default language used by GOsa. Normally GOsa autodetects
477 the language from the browser settings. If this is not working or you want to
478 force the language, just add the language code (i.e. de for german) here.
479 .PP
481 .B theme
482 .I string
483 .PP
484 The
485 .I theme
486 statement defines what theme is used to display GOsa pages. You can install some
487 corporate identity like theme and/or modify certain templates to fit your needs
488 within themes. Take a look at the GOsa
489 .I FAQ
490 for more information.
491 .PP
493 .B sessionLifetime
494 .I int
495 .PP
496 The
497 .I sessionLifetime
498 value defines when a session will expire in seconds. For Debian systems, this will
499 not work because the sessions will be removed by a cron job instead. Please modify
500 the value inside of your php.ini instead.
501 .PP
503 .B primaryGroupFilter
504 .I bool
505 .PP
506 The
507 .I primaryGroupFilter
508 variable enables or disables the group filter to show primary user groups. It is
509 time consuming to evaluate which groups are primary and which are not. So you may
510 want to set it to
511 .I true
512 if your group plugin is slow.
513 .PP
515 .B iePngWorkaround
516 .I bool
517 .PP
518 The
519 .I iePngWorkaround
520 variable enables or disables a workaround for IE < 7 in order to display transparent
521 PNG files correctly. This drastically slows down browsing. Please use Firefox or Opera
522 instead.
523 .PP
524 .PP
527 .B Password options
528 .PP
529 .B passwordMinLength
530 .I integer
531 .PP
532 The
533 .I passwordMinLength
534 statement determines whether a newly entered password has to be of
535 a minimum length.
536 .PP
538 .B passwordMinDiffer
539 .I integer
540 .PP
541 The
542 .I passwordMinDiffer
543 statement determines whether a newly entered password has to be checked
544 to have at least n different characters.
545 .PP
547 .B passwordHook
548 .I path
549 .PP
550 The
551 .I passwordHook
552 can specify an external script to handle password settings at some other
553 location besides the LDAP. It will be called this way:
555 .nf
556 /path/to/your/script "username" "oldpassword" "newpassword"
557 .fi
559 .B handleExpiredAccounts
560 .I bool
561 .PP
562 The
563 .I handleExpiredAccounts
564 statement enables shadow attribute tests during the login to the GOsa web
565 interface and forces password renewal or account lockout.
566 .PP
568 .B useSaslForKerberos
569 .I bool
570 .PP
571 The
572 .I useSaslForKerberos
573 statement defines the way the kerberos realm is stored in the
574 .I userPassword
575 attribute. Set it to
576 .I true
577 in order to get {sasl}user@REALM.NET, or to
578 .I false
579 to get {kerberos}user@REALM.NET. The latter is outdated, but may be
580 needed from time to time.
581 .PP
582 .PP
585 .B LDAP options
586 .PP
587 .B ldapMaxQueryTime
588 .I integer
589 .PP
590 The
591 .I ldapMaxQueryTime
592 statement tells GOsa to stop LDAP actions if there is no answer within the
593 specified number of seconds.
594 .PP
596 .B schemaCheck
597 .I bool
598 .PP
599 The
600 .I schemaCheck
601 statement enables or disables schema checking during login. It is recommended
602 to switch this on in order to let GOsa handle object creation more efficient.
603 .PP
605 .B ldapTLS
606 .I bool
607 .PP
608 The
609 .I ldapTLS
610 statement enables or disables TLS operating on LDAP connections.
611 .PP
613 .B accountPrimaryAttribute
614 .I cn/uid
615 .PP
616 The
617 .I accountPrimaryAttribute
618 option tells GOsa how to create new accounts. Possible values are
619 .I uid
620 and
621 .I cn.
622 In the first case GOsa creates uid style DN entries:
623 .nf
624 uid=superuser,ou=staff,dc=example,dc=net
625 .fi
626 In the second case, GOsa creates cn style DN entries:
627 .nf
628 cn=Foo Bar,ou=staff,dc=example,dc=net
629 .fi
630 If you choose "cn" to be your
631 .I accountPrimaryAttribute
632 you can decide whether to include the personal title in your dn by
633 selecting
634 .I personalTitleInDN.
635 .PP
637 .B accountRDN
638 .I pattern
639 .PP
640 The
641 .I accountRDN
642 option tells GOsa to use a placeholder pattern for generating account
643 RDNs. A pattern can include attribute names prefaced by a % and normal
644 text:
645 .nf
646 accountRDN="cn=%sn %givenName"
647 .fi
648 This will generate a RDN consisting of cn=.... filled with surname and
649 given name of the edited account. This option disables the use of
650 .I accountPrimaryAttribute
651 and
652 .I personalTitleInDn
653 in your config. The latter attributes are maintained for compatibility.
656 .B personalTitleInDN
657 .I bool
658 .PP
659 The
660 .I personalTitleInDN
661 option tells GOsa to include the personal title in user DNs when
662 .I accountPrimaryAttribute
663 is set to "cn".
665 .B userRDN
666 .I string
667 .PP
668 The
669 .I userRDN
670 statement defines the location where new accounts will be created inside of
671 defined departments. The default is
672 .I ou=people.
673 .PP
675 .B groupsRDN
676 .I string
677 .PP
678 The
679 .I groupsRDN
680 statement defines the location where new groups will be created inside of
681 defined departments. The default is
682 .I ou=groups.
683 .PP
685 .B sudoRDN
686 .I string
687 .PP
688 The
689 .I sudoRDN
690 statement defines the location where new groups will be created inside of
691 defined departments. The default is
692 .I ou=groups.
693 .PP
695 .B sambaMachineAccountRDN
696 .I string
697 .PP
698 This statement defines the location where GOsa looks for new samba workstations.
699 .PP
701 .B ogroupRDN
702 .I string
703 .PP
704 This statement defines the location where GOsa creates new object groups inside of defined
705 departments. Default is
706 .I ou=groups.
707 .PP
709 .B serverRDN
710 .I string
711 .PP
712 This statement defines the location where GOsa creates new servers inside of defined
713 departments. Default is
714 .I ou=servers.
715 .PP
717 .B terminalRDN
718 .I string
719 .PP
720 This statement defines the location where GOsa creates new terminals inside of defined
721 departments. Default is
722 .I ou=terminals.
723 .PP
725 .B workstationRDN
726 .I string
727 .PP
728 This statement defines the location where GOsa creates new workstations inside of defined
729 departments. Default is
730 .I ou=workstations.
731 .PP
733 .B printerRDN
734 .I string
735 .PP
736 This statement defines the location where GOsa creates new printers inside of defined
737 departments. Default is
738 .I ou=printers.
739 .PP
741 .B componentRDN
742 .I string
743 .PP
744 This statement defines the location where GOsa creates new network components inside of defined
745 departments. Default is
746 .I ou=components.
747 .PP
749 .B phoneRDN
750 .I string
751 .PP
752 This statement defines the location where GOsa creates new phones inside of defined
753 departments. Default is
754 .I ou=phones.
755 .PP
757 .B phoneConferenceRDN
758 .I string
759 .PP
760 This statement defines the location where GOsa creates new phone conferences inside of defined
761 departments. Default is
762 .I ou=conferences.
763 .PP
765 .B faxBlocklistRDN
766 .I string
767 .PP
768 This statement defines the location where GOsa creates new fax blocklists inside of defined
769 departments. Default is
770 .I ou=blocklists.
771 .PP
773 .B systemIncomingRDN
774 .I string
775 .PP
776 This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
777 Default is
778 .I ou=incoming.
779 .PP
781 .B systemRDN
782 .I string
783 .PP
784 This statement defines the base location for servers, workstations, terminals, phones and
785 components. Default is
786 .I ou=systems.
787 .PP
789 .B ogroupRDN
790 .I string
791 .PP
792 This statement defines the location where GOsa looks for object groups.
793 Default is
794 .I ou=groups.
795 .PP
797 .B aclRoleRDN
798 .I string
799 .PP
800 This statement defines the location where GOsa stores ACL role definitions.
801 Default is
802 .I ou=aclroles.
803 .PP
805 .B phoneMacroRDN
806 .I string
807 .PP
808 This statement defines the location where GOsa stores phone macros for use with the Asterisk
809 phone server.
810 Default is
811 .I ou=macros,ou=asterisk,ou=configs,ou=systems.
812 .PP
814 .B faiBaseRDN
815 .I string
816 .PP
817 This statement defines the location where GOsa looks for FAI settings.
818 Default is
819 .I ou=fai,ou=configs,ou=systems.
820 .PP
822 .B faiScriptRDN, faiHookRDN, faiTemplateRDN, faiVariableRDN, faiProfileRDN, faiPackageRDN, faiPartitionRDN 
823 .I string
824 .PP
825 These statement define the location where GOsa stores FAI classes. The complete base for the
826 corresponding class is an additive of
827 .B faiBaseRDN
828 an and this value.
829 .PP
831 .B deviceRDN
832 .I string
833 .PP
834 This statement defines the location where GOsa looks for devices.
835 Default is
836 .I ou=devices.
837 .PP
839 .B mimetypeRDN
840 .I string
841 .PP
842 This statement defines the location where GOsa stores mime type definitions.
843 Default is
844 .I ou=mimetypes.
845 .PP
847 .B applicationRDN
848 .I string
849 .PP
850 This statement defines the location where GOsa stores application definitions.
851 Default is
852 .I ou=apps.
853 .PP
855 .B ldapFilterNestingLimit
856 .I integer
857 .PP
858 The
859 .I ldapFilterNestingLimit
860 statement can be used to speed up group handling for groups with several hundreds of members.
861 The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
862 To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
863 Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
864 stop to do these lookups.
865 .PP
867 .B ldapSizelimit
868 .I integer
869 .PP
870 The
871 .I ldapSizelimit
872 statement tells GOsa to retrieve the specified maximum number of results. The user will get
873 a warning, that not all entries were shown.
874 .PP
876 .B ldapFollowReferrals
877 .I bool
878 .PP
879 The
880 .I ldapFollowReferrals
881 statement tells GOsa to follow LDAP referrals.
882 .PP
883 .PP
886 .B Account creation options
887 .PP
888 .B uidNumberBase
889 .I integer
890 .PP
891 The
892 .I uidNumberBase
893 statement defines where to start looking for a new free user id. This should be synced
894 with your
895 .I adduser.conf
896 to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase
897 can even be dynamic. Take a look at the
898 .I baseIdHook
899 definition below.
900 .PP
902 .B gidNumberBase
903 .I integer
904 .PP
905 The
906 .I gidNumberBase
907 statement defines where to start looking for a new free group id. This should be synced
908 with your
909 .I adduser.conf
910 to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase
911 can even be dynamic. Take a look at the
912 .I nextIdHook
913 definition below.
914 .PP
916 .B idAllocationMethod
917 .I traditional/pool
918 .PP
919 The
920 .I idAllocationMethod
921 statement defines how GOsa generates numeric user and group id values. If it is set to
922 .I traditional
923 GOsa will do create a lock and perform a search for the next free ID. The lock will be
924 removed after the procedure completes.
925 .I pool
926 will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe,
927 because it does not check for concurrent LDAP access and already used IDs in this range. 
928 On the other hand it is much faster.
929 .PP
931 .B minId
932 .I integer
933 .PP
934 The
935 .I minId
936 statement defines the minimum assignable user or group id to avoid security leaks with
937 uid 0 accounts. This is used for the
938 .I traditional
939 method
940 .PP
942 .B uidNumberPoolMin/gidNumberPoolMin
943 .I integer
944 .PP
945 The
946 .I uidNumberPoolMin/gidNumberPoolMin
947 statement defines the minimum assignable user/group id for use with the
948 .I pool
949 method.
950 .PP
952 .B uidNumberPoolMax/gidNumberPoolMax
953 .I integer
954 .PP
955 The
956 .I uidNumberPoolMin/gidNumberPoolMin
957 statement defines the highest assignable user/group id for use with the
958 .I pool
959 method.
960 .PP
962 .B nextIdHook
963 .I path
964 .PP
965 The
966 .I nextIdHook
967 statement defines a script to be called for finding the next free id for users or groups
968 externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
969 should return an integer value.
970 .PP
972 .B hash
973 .I string
974 .PP
975 The
976 .I hash
977 statement defines the default password hash to choose for new accounts. Valid values are
978 .I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
979 and
980 .I sasl.
981 These values will be overridden when using templates.
982 .PP
984 .B idGenerator
985 .I string
986 .PP
987 The
988 .I idGenerator
989 statement describes an automatic way to generate new user ids. There are two basic
990 functions supported - which can be combined:
992  a) using attributes
994     You can specify LDAP attributes (currently only sn and givenName) in
995     braces {} and add a percent sign befor it. Optionally you can strip it
996     down to a number of characters, specified in []. I.e.
998 .nf
999       idGenerator="{%sn}-{%givenName[2-4]}"
1000 .fi
1002     will generate an ID using the full surename, adding a dash, and adding at
1003     least the first two characters of givenName. If this ID is used, it'll
1004     use up to four characters. If no automatic generation is possible, a
1005     input box is shown.
1007  b) using automatic id's
1009     I.e. specifying
1011 .nf
1012       idGenerator="acct{id:3}"
1013 .fi
1015     will generate a three digits id with the next free entry appended to
1016     "acct".
1018 .nf
1019       idGenerator="acct{id!1}"
1020 .fi
1022     will generate a one digit id with the next free entry appended to
1023     "acct" - if needed.
1025 .nf
1026       idGenerator="ext{id#3}"
1027 .fi
1029     will generate a three digits random number appended to "ext".
1030 .PP
1031 .PP
1034 .B Samba options
1035 .PP
1036 .B sambaSID
1037 .I string
1038 .PP
1039 The
1040 .I sambaSID
1041 statement defines a samba SID if not available inside of the LDAP. You can retrieve
1042 the current sid by
1043 .I net getlocalsid.
1044 .PP
1046 .B sambaRidBase
1047 .I integer
1048 .PP
1049 The
1050 .I sambaRidBase
1051 statement defines the base id to add to ordinary sid calculations - if not available
1052 inside of the LDAP.
1053 .PP
1055 .B sambaHashHook
1056 .I path
1057 .PP
1058 The
1059 .I sambaHashHook
1060 statement contains an executable to generate samba hash values. This is required
1061 for password synchronization, but not required if you apply gosa-si services.
1062 If you don't have mkntpasswd from the samba distribution installed, you can use
1063 perl to generate the hash:
1065 .nf
1066 perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \\$ARGV[0]), $/;"
1067 .if
1068 .PP
1070 .B sambaidmapping
1071 .I bool
1072 .PP
1073 The
1074 .I sambaidmapping
1075 statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your
1076 setup this can drastically improve the windows login performance.
1077 .PP
1078 .PP
1080 .B Asterisk options
1081 .PP
1082 .B ctiHook
1083 .I path
1084 .PP
1085 The
1086 .I ctiHook
1087 statement defines a script to be executed if someone clicks on a phone number
1088 inside of the addressbook plugin. It gets called with two parameters:
1090 .nf
1091 ctiHook $source_number $destination_number
1092 .fi
1094 This script can be used to do automatted dialing from the addressbook.
1095 .PP
1096 .PP
1098 .B Mail options
1099 .PP
1100 .B mailMethod
1101 .I Cyrus/SendmailCyrus/Kolab/Kolab22
1102 .PP
1103 The
1104 .I mailMethod
1105 statement tells GOsa which mail method the setup should use to communicate
1106 with a possible mail server. Leave this undefined if your mail method does
1107 not match the predefined ones.
1109 .I Cyrus
1110 maintains accounts and sieve scripts in cyrus servers.
1111 .I Kolab/Kolab22
1112 is like cyrus, but lets the kolab daemon maintain the accounts.
1113 .I SendmailCyrus is based on sendmail LDAP attributes.
1114 .PP
1116 .B cyrusUseSlashes
1117 .I bool
1118 .PP
1119 The
1120 .I cyrusUseSlashes
1121 statement determines if GOsa should use "foo/bar" or "foo.bar" namespaces
1122 in IMAP. Unix style is with slashes.
1124 .B cyrusDeleteMailbox
1125 .I bool
1126 .PP
1127 The
1128 .I cyrusDeleteMailbox
1129 statement determines if GOsa should remove the mailbox from your IMAP
1130 server or keep it after the account is deleted in LDAP.
1132 .B cyrusAutocreateFolders
1133 .I string
1134 .PP
1135 The
1136 .I cyrusAutocreateFolders
1137 statement contains a comma seperated list of personal IMAP folders that
1138 should be created along initial account creation.
1140 .B postfixRestrictionFilters
1141 .I path
1142 .PP
1143 The
1144 .I postfixRestrictionFilters
1145 statement defines a file to include for the postfix module in order
1146 to display user defined restriction filters.
1148 .B postfixProtocols
1149 .I path
1150 .PP
1151 The
1152 .I postfixProtocols
1153 statement defines a file to include for the postfix module in order
1154 to display user defined protocols.
1156 .B mailAttribute
1157 .I mail/uid
1158 .PP
1159 The
1160 .I mailAttribute
1161 statement determines which attribute GOsa will use to create accounts.
1162 Valid values are
1163 .I mail
1164 and
1165 .I uid.
1167 .B imapTimeout
1168 .I Integer (default 10) 
1169 .PP
1170 The
1171 .I imapTimeout
1172 statement sets the connection timeout for imap actions.
1174 .B mailFolderCreation
1175 Every mail method has its own way to create mail accounts like 
1176 .I share/development
1177 or 
1178 .I shared.development@example.com
1179 which is used to identify the accounts, set quotas or add acls. 
1181 To override the methods default account creation syntax, you can set the
1182 .I mailFolderCreation
1183 option.
1185 .I Examples
1187 .nf
1188  mailFolderCreation="%prefix%%cn%"              => "shared.development"
1189  mailFolderCreation="my-prefix.%cn%%domain%"    => "my-prefix.development@example.com">
1190 .fi
1192 .I Placeholders
1194 .nf
1195  %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
1196  %cn%        The groups/users cn.
1197  %uid%       The users uid.
1198  %mail%      The objects mail attribute.
1199  %domain%    The domain part of the objects mail attribute.
1200  %mailpart%  The user address part of the mail address.
1201  %uattrib%   Depends on mailAttribute="uid/mail".
1202 .fi
1205 .B mailUserCreation
1206 This attribute allows to override the user account creation syntax, see
1207 the
1208 .I mailFolderCreation
1209 description for more details. 
1211 .I Examples
1213 .nf
1214  mailUserCreation="%prefix%%uid%"           => "user.foobar"
1215  mailUserCreation=my-prefix.%uid%%domain%"  => "my-prefix.foobar@example.com"
1216 .fi
1219 .B vacationTemplateDirectory
1220 .I path
1221 .PP
1222 The
1223 .I vacationTemplateDirectory
1224 statement sets the path where GOsa will look for vacation message
1225 templates. Default is /etc/gosa/vacation.
1227 Example template /etc/gosa/vacation/business.txt:
1229 .nf
1230    DESC:Away from desk
1231    Hi, I'm currently away from my desk. You can contact me on
1232    my cell phone via %mobile.
1234    Greetings,
1235    %givenName %sn
1236 .fi
1237 .PP
1240 .B Debug options
1241 .PP
1242 .B displayerrors
1243 .I bool
1244 .PP
1245 The
1246 .I displayerrors
1247 statement tells GOsa to show PHP errors in the upper part of the screen. This
1248 should be disabled in productive deployments, because there might be some
1249 important passwords arround.
1250 .PP
1252 .B ldapstats
1253 .I bool
1254 .PP
1255 The
1256 .I ldapstats
1257 statement tells GOsa to track LDAP timing statistics to the syslog. This may
1258 help to find indexing problems or bad search filters.
1259 .PP
1261 .B ignoreAcl
1262 .I dn
1263 .PP
1264 The
1265 .I ignoreAcl
1266 value tells GOsa to ignore complete ACL sets for the given DN. Add your
1267 DN here and you'll be able to restore accidently dropped ACLs.
1268 .PP
1270 .B debuglevel
1271 .I integer
1272 .PP
1273 The
1274 .I debuglevel
1275 value tells GOsa to display certain information on each page load. Value
1276 is an AND combination of the following byte values:
1278 DEBUG_TRACE   = 1
1280 DEBUG_LDAP    = 2
1282 DEBUG_MYSQL   = 4
1284 DEBUG_SHELL   = 8
1286 DEBUG_POST    = 16
1288 DEBUG_SESSION = 32
1290 DEBUG_CONFIG  = 64
1292 DEBUG_ACL     = 128
1294 DEBUG_SI      = 256
1296 DEBUG_MAIL    = 512
1297 .PP
1300 .SH LDAP resource definition
1302 For every location you define inside your gosa.conf, you need at least
1303 one entry of the type
1304 .I referral.
1305 These entries define the way how to connect to some directory service.
1307 .B Example:
1309 .nf
1310   <referral uri="ldap://ldap.example.net/dc=example,dc=net"
1311             admin="cn=gosa-admin,dc=example,dc=net"
1312             password="secret" />
1313 .fi
1315 .I uri
1316 is a valid LDAP uri extendet by the base this referral is responsible for.
1317 .I admin
1318 is the DN which has the permission to write LDAP entries. And
1319 .I password
1320 is the corresponding password for this DN.
1322 You can define a set of referrals if you have several server to
1323 connect to.
1325 .SH Settings for the environment plugin
1327 In order to make full use of the environment plugin, you may want
1328 to define the location where kiosk profiles will be stored on the
1329 servers harddisk.
1331 This is done by the
1332 .I kioskPath
1333 keyword defined within the
1334 .I environment
1335 class definition inside your gosa.conf.
1337 .B Example:
1339 .nf
1340   <plugin acl="users/environment"
1341           class="environment"
1342           kioskPath="/var/spool/kiosk"/>
1343 .fi
1345 Make sure, that this path is writeable by GOsa.
1347 .SH Settings for the FAI plugin
1349 The FAI plugin can be used in a way that it generates branched or
1350 freezed releases inside your repository. Specifying the
1351 .I postcreate
1352 and
1353 .I postmodify
1354 keywords in the
1355 .I servrepository
1356 definition, calls the provided script as a hook when adding or
1357 removing branches. This script should do the rest inside of your
1358 repository.
1360 .B Example:
1362 .nf
1363   <tab class="servrepository" 
1364           repositoryBranchHook="/opt/dak/bin/get_extra_repos"
1365           postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
1366 .fi
1368 .I %lock_dn
1369 keeps the base DN of the source branch,
1370 .I %lock_name
1371 the name of the new branch and
1372 .I %lock_type
1373 is either "freeze" or "branch".
1375 The
1376 .I repositoryBranchHook
1377 outputs additional releases, that are not retrieveable with the standard
1378 GOsa/FAI methods.
1380 If you have only one release, or want to define a default release to be shown
1381 by GOsa, define the
1382 .I defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..."
1383 within the 
1384 .I faiManagement
1385 class definition
1387 .SH Settings for the addressbook plugin
1389 The addressbook plugin can be configured to store the addressbook data on
1390 a special location. Use the
1391 .I addressbookBaseDN
1392 keyword within the
1393 .I addressbook
1394 class definition inside your gosa.conf to configure this location.
1396 Default:
1397 .I ou=addressbook.
1399 .SH Settings for system plugins
1400 For the
1401 .I workstationStartup
1402 and
1403 .I terminalStartup
1404 classes, you can define the
1405 .I systemKernelsHook
1406 keyword. It can load additional kernels that are not retrieveable by
1407 standard GOsa/FAI mechanisms.
1409 In order to make use of SNMP information, you can set the
1410 .I snmpCommunity
1411 in the
1412 .I terminfo
1413 class definition.
1415 To enable the burn CD image function, you can specify the
1416 .I systemIsoHook
1417 in the
1418 .I workgeneric
1419 class. You will get a CD symbol in the systems list - which calls
1420 the hook if pressed.
1422 .SH AUTHOR
1423 .B gosa.conf(5)
1424 was written by Cajus Pollmeier for
1425 the GOsa project (
1426 .B http://www.gosa-project.org
1427 ).