Code

Updated manpage
[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 enableSnapshots
274 .I bool
275 .PP
276 The
277 .I enableSnapshots
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 ppdGzip
407 .I bool
408 .PP
409 The
410 .I ppdGzip
411 variable enables PPD file compression.
412 .PP
414 .B resolutions
415 .I path
416 .PP
417 The
418 .I resolutions
419 variable defines a plain text file which contains additional resolutions
420 to be shown in the environment and system plugins.
421 .PP
423 .B htaccessAuthentication
424 .I bool
425 .PP
426 The
427 .I htaccessAuthentication
428 variable tells GOsa to use either htaccess authentication or LDAP authentication. This
429 can be used if you want to use i.e. kerberos to authenticate the users.
430 .PP
432 .B gosaSupportURI
433 .I URI
434 .PP
435 The
436 .I gosaSupportURI
437 defines the major gosa-si server host and the password for GOsa to connect to it.
438 can be used if you want to use i.e. kerberos to authenticate the users.
440 The format is:
442 .nf
443 credentials@host:port
444 .fi
445 .PP
447 .B gosaSupportTimeout
448 .I integer
449 .PP
450 The
451 .I gosaSupportTimeout
452 sets a connection timeout for all gosa-si actions. See 
453 .I gosaSupportURI
454 for details.
455 .PP
457 .B Browser and display options
459 .B listSummary
460 .I true/false
461 .PP
462 The
463 .I listSummary
464 statement determines whether a status bar will be shown on the bottom of
465 GOsa generated lists, displaying a short summary of type and number of
466 elements in the list.
467 .PP
469 .B sendCompressedOutput
470 .I true/false
471 .PP
472 The
473 .I sendCompressedOutput
474 statement determines whether PHP should send compressed HTML pages to
475 browsers or not. This may increase or decrease the performance, depending
476 on your network.
477 .PP
479 .B storeFilterSettings
480 .I true/false
481 .PP
482 The
483 .I storeFilterSettings
484 statement determines whether GOsa should store filter and plugin settings
485 inside of a cookie.
486 .PP
488 .B language
489 .I string
490 .PP
491 The
492 .I language
493 statement defines the default language used by GOsa. Normally GOsa autodetects
494 the language from the browser settings. If this is not working or you want to
495 force the language, just add the language code (i.e. de for german) here.
496 .PP
498 .B theme
499 .I string
500 .PP
501 The
502 .I theme
503 statement defines what theme is used to display GOsa pages. You can install some
504 corporate identity like theme and/or modify certain templates to fit your needs
505 within themes. Take a look at the GOsa
506 .I FAQ
507 for more information.
508 .PP
510 .B sessionLifetime
511 .I int
512 .PP
513 The
514 .I sessionLifetime
515 value defines when a session will expire in seconds. For Debian systems, this will
516 not work because the sessions will be removed by a cron job instead. Please modify
517 the value inside of your php.ini instead.
518 .PP
520 .B Password options
521 .PP
522 .B passwordMinLength
523 .I integer
524 .PP
525 The
526 .I passwordMinLength
527 statement determines whether a newly entered password has to be of
528 a minimum length.
529 .PP
531 .B passwordMinDiffer
532 .I integer
533 .PP
534 The
535 .I passwordMinDiffer
536 statement determines whether a newly entered password has to be checked
537 to have at least n different characters.
538 .PP
540 .B passwordHook
541 .I path
542 .PP
543 The
544 .I passwordHook
545 can specify an external script to handle password settings at some other
546 location besides the LDAP. It will be called this way:
548 .nf
549 /path/to/your/script "username" "oldpassword" "newpassword"
550 .fi
552 .B passwordProposalHook
553 .I command
554 .PP
555 The
556 .I passwordProposalHook
557 can be used to let GOsa generate password proposals for you. 
558 Whenever you change a password, you can then decide whether to use the proposal or to manually specify a password.
560 .nf
561 /usr/bin/apg -n1
562 .fi
564 .B strictPasswordRules
565 .I bool
566 .PP
567 The
568 .I strictPasswordRules
569 tells GOsa to check for UTF-8 characters in the supplied password. These
570 Characters can lead to non working authentications if UTF-8 and none
571 UTF-8 systems locales get mixed. The default is "true".
573 .B handleExpiredAccounts
574 .I bool
575 .PP
576 The
577 .I handleExpiredAccounts
578 statement enables shadow attribute tests during the login to the GOsa web
579 interface and forces password renewal or account lockout.
580 .PP
582 .B useSaslForKerberos
583 .I bool
584 .PP
585 The
586 .I useSaslForKerberos
587 statement defines the way the kerberos realm is stored in the
588 .I userPassword
589 attribute. Set it to
590 .I true
591 in order to get {sasl}user@REALM.NET, or to
592 .I false
593 to get {kerberos}user@REALM.NET. The latter is outdated, but may be
594 needed from time to time.
595 .PP
596 .PP
599 .B LDAP options
600 .PP
601 .B ldapMaxQueryTime
602 .I integer
603 .PP
604 The
605 .I ldapMaxQueryTime
606 statement tells GOsa to stop LDAP actions if there is no answer within the
607 specified number of seconds.
608 .PP
610 .B schemaCheck
611 .I bool
612 .PP
613 The
614 .I schemaCheck
615 statement enables or disables schema checking during login. It is recommended
616 to switch this on in order to let GOsa handle object creation more efficient.
617 .PP
619 .B ldapTLS
620 .I bool
621 .PP
622 The
623 .I ldapTLS
624 statement enables or disables TLS operating on LDAP connections.
625 .PP
627 .B accountPrimaryAttribute
628 .I cn/uid
629 .PP
630 The
631 .I accountPrimaryAttribute
632 option tells GOsa how to create new accounts. Possible values are
633 .I uid
634 and
635 .I cn.
636 In the first case GOsa creates uid style DN entries:
637 .nf
638 uid=superuser,ou=staff,dc=example,dc=net
639 .fi
640 In the second case, GOsa creates cn style DN entries:
641 .nf
642 cn=Foo Bar,ou=staff,dc=example,dc=net
643 .fi
644 If you choose "cn" to be your
645 .I accountPrimaryAttribute
646 you can decide whether to include the personal title in your dn by
647 selecting
648 .I personalTitleInDN.
649 .PP
651 .B accountRDN
652 .I pattern
653 .PP
654 The
655 .I accountRDN
656 option tells GOsa to use a placeholder pattern for generating account
657 RDNs. A pattern can include attribute names prefaced by a % and normal
658 text:
659 .nf
660 accountRDN="cn=%sn %givenName"
661 .fi
662 This will generate a RDN consisting of cn=.... filled with surname and
663 given name of the edited account. This option disables the use of
664 .I accountPrimaryAttribute
665 and
666 .I personalTitleInDn
667 in your config. The latter attributes are maintained for compatibility.
670 .B personalTitleInDN
671 .I bool
672 .PP
673 The
674 .I personalTitleInDN
675 option tells GOsa to include the personal title in user DNs when
676 .I accountPrimaryAttribute
677 is set to "cn".
679 .B userRDN
680 .I string
681 .PP
682 The
683 .I userRDN
684 statement defines the location where new accounts will be created inside of
685 defined departments. The default is
686 .I ou=people.
687 .PP
689 .B groupsRDN
690 .I string
691 .PP
692 The
693 .I groupsRDN
694 statement defines the location where new groups will be created inside of
695 defined departments. The default is
696 .I ou=groups.
697 .PP
699 .B sudoRDN
700 .I string
701 .PP
702 The
703 .I sudoRDN
704 statement defines the location where new groups will be created inside of
705 defined departments. The default is
706 .I ou=groups.
707 .PP
709 .B sambaMachineAccountRDN
710 .I string
711 .PP
712 This statement defines the location where GOsa looks for new samba workstations.
713 .PP
715 .B ogroupRDN
716 .I string
717 .PP
718 This statement defines the location where GOsa creates new object groups inside of defined
719 departments. Default is
720 .I ou=groups.
721 .PP
723 .B serverRDN
724 .I string
725 .PP
726 This statement defines the location where GOsa creates new servers inside of defined
727 departments. Default is
728 .I ou=servers.
729 .PP
731 .B terminalRDN
732 .I string
733 .PP
734 This statement defines the location where GOsa creates new terminals inside of defined
735 departments. Default is
736 .I ou=terminals.
737 .PP
739 .B workstationRDN
740 .I string
741 .PP
742 This statement defines the location where GOsa creates new workstations inside of defined
743 departments. Default is
744 .I ou=workstations.
745 .PP
747 .B printerRDN
748 .I string
749 .PP
750 This statement defines the location where GOsa creates new printers inside of defined
751 departments. Default is
752 .I ou=printers.
753 .PP
755 .B componentRDN
756 .I string
757 .PP
758 This statement defines the location where GOsa creates new network components inside of defined
759 departments. Default is
760 .I ou=components.
761 .PP
763 .B phoneRDN
764 .I string
765 .PP
766 This statement defines the location where GOsa creates new phones inside of defined
767 departments. Default is
768 .I ou=phones.
769 .PP
771 .B phoneConferenceRDN
772 .I string
773 .PP
774 This statement defines the location where GOsa creates new phone conferences inside of defined
775 departments. Default is
776 .I ou=conferences.
777 .PP
779 .B faxBlocklistRDN
780 .I string
781 .PP
782 This statement defines the location where GOsa creates new fax blocklists inside of defined
783 departments. Default is
784 .I ou=blocklists.
785 .PP
787 .B systemIncomingRDN
788 .I string
789 .PP
790 This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
791 Default is
792 .I ou=incoming.
793 .PP
795 .B systemRDN
796 .I string
797 .PP
798 This statement defines the base location for servers, workstations, terminals, phones and
799 components. Default is
800 .I ou=systems.
801 .PP
803 .B ogroupRDN
804 .I string
805 .PP
806 This statement defines the location where GOsa looks for object groups.
807 Default is
808 .I ou=groups.
809 .PP
811 .B aclRoleRDN
812 .I string
813 .PP
814 This statement defines the location where GOsa stores ACL role definitions.
815 Default is
816 .I ou=aclroles.
817 .PP
819 .B phoneMacroRDN
820 .I string
821 .PP
822 This statement defines the location where GOsa stores phone macros for use with the Asterisk
823 phone server.
824 Default is
825 .I ou=macros,ou=asterisk,ou=configs,ou=systems.
826 .PP
828 .B faiBaseRDN
829 .I string
830 .PP
831 This statement defines the location where GOsa looks for FAI settings.
832 Default is
833 .I ou=fai,ou=configs,ou=systems.
834 .PP
836 .B faiScriptRDN, faiHookRDN, faiTemplateRDN, faiVariableRDN, faiProfileRDN, faiPackageRDN, faiPartitionRDN 
837 .I string
838 .PP
839 These statement define the location where GOsa stores FAI classes. The complete base for the
840 corresponding class is an additive of
841 .B faiBaseRDN
842 an and this value.
843 .PP
845 .B deviceRDN
846 .I string
847 .PP
848 This statement defines the location where GOsa looks for devices.
849 Default is
850 .I ou=devices.
851 .PP
853 .B mimetypeRDN
854 .I string
855 .PP
856 This statement defines the location where GOsa stores mime type definitions.
857 Default is
858 .I ou=mimetypes.
859 .PP
861 .B applicationRDN
862 .I string
863 .PP
864 This statement defines the location where GOsa stores application definitions.
865 Default is
866 .I ou=apps.
867 .PP
869 .B ldapFilterNestingLimit
870 .I integer
871 .PP
872 The
873 .I ldapFilterNestingLimit
874 statement can be used to speed up group handling for groups with several hundreds of members.
875 The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
876 To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
877 Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
878 stop to do these lookups.
879 .PP
881 .B ldapSizelimit
882 .I integer
883 .PP
884 The
885 .I ldapSizelimit
886 statement tells GOsa to retrieve the specified maximum number of results. The user will get
887 a warning, that not all entries were shown.
888 .PP
890 .B ldapFollowReferrals
891 .I bool
892 .PP
893 The
894 .I ldapFollowReferrals
895 statement tells GOsa to follow LDAP referrals.
896 .PP
897 .PP
900 .B Account creation options
901 .PP
902 .B uidNumberBase
903 .I integer
904 .PP
905 The
906 .I uidNumberBase
907 statement defines where to start looking for a new free user id. This should be synced
908 with your
909 .I adduser.conf
910 to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase
911 can even be dynamic. Take a look at the
912 .I baseIdHook
913 definition below.
914 .PP
916 .B gidNumberBase
917 .I integer
918 .PP
919 The
920 .I gidNumberBase
921 statement defines where to start looking for a new free group id. This should be synced
922 with your
923 .I adduser.conf
924 to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase
925 can even be dynamic. Take a look at the
926 .I nextIdHook
927 definition below.
928 .PP
930 .B idAllocationMethod
931 .I traditional/pool
932 .PP
933 The
934 .I idAllocationMethod
935 statement defines how GOsa generates numeric user and group id values. If it is set to
936 .I traditional
937 GOsa will do create a lock and perform a search for the next free ID. The lock will be
938 removed after the procedure completes.
939 .I pool
940 will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe,
941 because it does not check for concurrent LDAP access and already used IDs in this range. 
942 On the other hand it is much faster.
943 .PP
945 .B minId
946 .I integer
947 .PP
948 The
949 .I minId
950 statement defines the minimum assignable user or group id to avoid security leaks with
951 uid 0 accounts. This is used for the
952 .I traditional
953 method
954 .PP
956 .B uidNumberPoolMin/gidNumberPoolMin
957 .I integer
958 .PP
959 The
960 .I uidNumberPoolMin/gidNumberPoolMin
961 statement defines the minimum assignable user/group id for use with the
962 .I pool
963 method.
964 .PP
966 .B uidNumberPoolMax/gidNumberPoolMax
967 .I integer
968 .PP
969 The
970 .I uidNumberPoolMax/gidNumberPoolMax
971 statement defines the highest assignable user/group id for use with the
972 .I pool
973 method.
974 .PP
976 .B nextIdHook
977 .I path
978 .PP
979 The
980 .I nextIdHook
981 statement defines a script to be called for finding the next free id for users or groups
982 externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
983 should return an integer value.
984 .PP
986 .B passwordDefaultHash
987 .I string
988 .PP
989 The
990 .I passwordDefaultHash
991 statement defines the default password hash to choose for new accounts. Valid values are
992 .I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
993 and
994 .I sasl.
995 These values will be overridden when using templates.
996 .PP
998 .B idGenerator
999 .I string
1000 .PP
1001 The
1002 .I idGenerator
1003 statement describes an automatic way to generate new user ids. There are two basic
1004 functions supported - which can be combined:
1006  a) using attributes
1008     You can specify LDAP attributes (currently only sn and givenName) in
1009     braces {} and add a percent sign befor it. Optionally you can strip it
1010     down to a number of characters, specified in []. I.e.
1012 .nf
1013       idGenerator="{%sn}-{%givenName[2-4]}"
1014 .fi
1016     will generate an ID using the full surename, adding a dash, and adding at
1017     least the first two characters of givenName. If this ID is used, it'll
1018     use up to four characters. If no automatic generation is possible, a
1019     input box is shown.
1021  b) using automatic id's
1023     I.e. specifying
1025 .nf
1026       idGenerator="acct{id:3}"
1027 .fi
1029     will generate a three digits id with the next free entry appended to
1030     "acct".
1032 .nf
1033       idGenerator="acct{id!1}"
1034 .fi
1036     will generate a one digit id with the next free entry appended to
1037     "acct" - if needed.
1039 .nf
1040       idGenerator="ext{id#3}"
1041 .fi
1043     will generate a three digits random number appended to "ext".
1044 .PP
1045 .PP
1048 .B Samba options
1049 .PP
1050 .B sambaSID
1051 .I string
1052 .PP
1053 The
1054 .I sambaSID
1055 statement defines a samba SID if not available inside of the LDAP. You can retrieve
1056 the current sid by
1057 .I net getlocalsid.
1058 .PP
1060 .B sambaRidBase
1061 .I integer
1062 .PP
1063 The
1064 .I sambaRidBase
1065 statement defines the base id to add to ordinary sid calculations - if not available
1066 inside of the LDAP.
1067 .PP
1069 .B sambaHashHook
1070 .I path
1071 .PP
1072 The
1073 .I sambaHashHook
1074 statement contains an executable to generate samba hash values. This is required
1075 for password synchronization, but not required if you apply gosa-si services.
1076 If you don't have mkntpasswd from the samba distribution installed, you can use
1077 perl to generate the hash:
1079 .nf
1080 perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \\$ARGV[0]), $/;"
1081 .if
1082 .PP
1084 .B sambaIdmapping
1085 .I bool
1086 .PP
1087 The
1088 .I sambaIdMapping
1089 statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your
1090 setup this can drastically improve the windows login performance.
1091 .PP
1092 .PP
1094 .B Asterisk options
1095 .PP
1096 .B ctiHook
1097 .I path
1098 .PP
1099 The
1100 .I ctiHook
1101 statement defines a script to be executed if someone clicks on a phone number
1102 inside of the addressbook plugin. It gets called with two parameters:
1104 .nf
1105 ctiHook $source_number $destination_number
1106 .fi
1108 This script can be used to do automatted dialing from the addressbook.
1109 .PP
1110 .PP
1112 .B Mail options
1113 .PP
1114 .B mailMethod
1115 .I Cyrus/SendmailCyrus/Kolab/Kolab22
1116 .PP
1117 The
1118 .I mailMethod
1119 statement tells GOsa which mail method the setup should use to communicate
1120 with a possible mail server. Leave this undefined if your mail method does
1121 not match the predefined ones.
1123 .I Cyrus
1124 maintains accounts and sieve scripts in cyrus servers.
1125 .I Kolab/Kolab22
1126 is like cyrus, but lets the kolab daemon maintain the accounts.
1127 .I SendmailCyrus is based on sendmail LDAP attributes.
1128 .PP
1130 .B cyrusUseSlashes
1131 .I bool
1132 .PP
1133 The
1134 .I cyrusUseSlashes
1135 statement determines if GOsa should use "foo/bar" or "foo.bar" namespaces
1136 in IMAP. Unix style is with slashes.
1138 .B cyrusDeleteMailbox
1139 .I bool
1140 .PP
1141 The
1142 .I cyrusDeleteMailbox
1143 statement determines if GOsa should remove the mailbox from your IMAP
1144 server or keep it after the account is deleted in LDAP.
1146 .B cyrusAutocreateFolders
1147 .I string
1148 .PP
1149 The
1150 .I cyrusAutocreateFolders
1151 statement contains a comma seperated list of personal IMAP folders that
1152 should be created along initial account creation.
1154 .B postfixRestrictionFilters
1155 .I path
1156 .PP
1157 The
1158 .I postfixRestrictionFilters
1159 statement defines a file to include for the postfix module in order
1160 to display user defined restriction filters.
1162 .B postfixProtocols
1163 .I path
1164 .PP
1165 The
1166 .I postfixProtocols
1167 statement defines a file to include for the postfix module in order
1168 to display user defined protocols.
1170 .B mailAttribute
1171 .I mail/uid
1172 .PP
1173 The
1174 .I mailAttribute
1175 statement determines which attribute GOsa will use to create accounts.
1176 Valid values are
1177 .I mail
1178 and
1179 .I uid.
1181 .B imapTimeout
1182 .I Integer (default 10) 
1183 .PP
1184 The
1185 .I imapTimeout
1186 statement sets the connection timeout for imap actions.
1188 .B mailFolderCreation
1189 Every mail method has its own way to create mail accounts like 
1190 .I share/development
1191 or 
1192 .I shared.development@example.com
1193 which is used to identify the accounts, set quotas or add acls. 
1195 To override the methods default account creation syntax, you can set the
1196 .I mailFolderCreation
1197 option.
1199 .I Examples
1201 .nf
1202  mailFolderCreation="%prefix%%cn%"              => "shared.development"
1203  mailFolderCreation="my-prefix.%cn%%domain%"    => "my-prefix.development@example.com">
1204 .fi
1206 .I Placeholders
1208 .nf
1209  %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
1210  %cn%        The groups/users cn.
1211  %uid%       The users uid.
1212  %mail%      The objects mail attribute.
1213  %domain%    The domain part of the objects mail attribute.
1214  %mailpart%  The user address part of the mail address.
1215  %uattrib%   Depends on mailAttribute="uid/mail".
1216 .fi
1219 .B mailUserCreation
1220 This attribute allows to override the user account creation syntax, see
1221 the
1222 .I mailFolderCreation
1223 description for more details. 
1225 .I Examples
1227 .nf
1228  mailUserCreation="%prefix%%uid%"           => "user.foobar"
1229  mailUserCreation=my-prefix.%uid%%domain%"  => "my-prefix.foobar@example.com"
1230 .fi
1233 .B vacationTemplateDirectory
1234 .I path
1235 .PP
1236 The
1237 .I vacationTemplateDirectory
1238 statement sets the path where GOsa will look for vacation message
1239 templates. Default is /etc/gosa/vacation.
1241 Example template /etc/gosa/vacation/business.txt:
1243 .nf
1244    DESC:Away from desk
1245    Hi, I'm currently away from my desk. You can contact me on
1246    my cell phone via %mobile.
1248    Greetings,
1249    %givenName %sn
1250 .fi
1251 .PP
1254 .B Debug options
1255 .PP
1256 .B displayErrors
1257 .I bool
1258 .PP
1259 The
1260 .I displayErrors
1261 statement tells GOsa to show PHP errors in the upper part of the screen. This
1262 should be disabled in productive deployments, because there might be some
1263 important passwords arround.
1264 .PP
1266 .B ldapstats
1267 .I bool
1268 .PP
1269 The
1270 .I ldapstats
1271 statement tells GOsa to track LDAP timing statistics to the syslog. This may
1272 help to find indexing problems or bad search filters.
1273 .PP
1275 .B ignoreAcl
1276 .I dn
1277 .PP
1278 The
1279 .I ignoreAcl
1280 value tells GOsa to ignore complete ACL sets for the given DN. Add your
1281 DN here and you'll be able to restore accidently dropped ACLs.
1282 .PP
1284 .B debugLevel
1285 .I integer
1286 .PP
1287 The
1288 .I debugLevel
1289 value tells GOsa to display certain information on each page load. Value
1290 is an AND combination of the following byte values:
1292 DEBUG_TRACE   = 1
1294 DEBUG_LDAP    = 2
1296 DEBUG_MYSQL   = 4
1298 DEBUG_SHELL   = 8
1300 DEBUG_POST    = 16
1302 DEBUG_SESSION = 32
1304 DEBUG_CONFIG  = 64
1306 DEBUG_ACL     = 128
1308 DEBUG_SI      = 256
1310 DEBUG_MAIL    = 512
1311 .PP
1314 .SH LDAP resource definition
1316 For every location you define inside your gosa.conf, you need at least
1317 one entry of the type
1318 .I referral.
1319 These entries define the way how to connect to some directory service.
1321 .B Example:
1323 .nf
1324   <referral uri="ldap://ldap.example.net/dc=example,dc=net"
1325             admin="cn=gosa-admin,dc=example,dc=net"
1326             password="secret" />
1327 .fi
1329 .I uri
1330 is a valid LDAP uri extendet by the base this referral is responsible for.
1331 .I admin
1332 is the DN which has the permission to write LDAP entries. And
1333 .I password
1334 is the corresponding password for this DN.
1336 You can define a set of referrals if you have several server to
1337 connect to.
1339 .SH Settings for the environment plugin
1341 In order to make full use of the environment plugin, you may want
1342 to define the location where kiosk profiles will be stored on the
1343 servers harddisk.
1345 This is done by the
1346 .I kioskPath
1347 keyword defined within the
1348 .I environment
1349 class definition inside your gosa.conf.
1351 .B Example:
1353 .nf
1354   <plugin acl="users/environment"
1355           class="environment"
1356           kioskPath="/var/spool/kiosk"/>
1357 .fi
1359 Make sure, that this path is writeable by GOsa.
1361 .SH Settings for the FAI plugin
1363 The FAI plugin can be used in a way that it generates branched or
1364 freezed releases inside your repository. Specifying the
1365 .I postcreate
1366 and
1367 .I postmodify
1368 keywords in the
1369 .I servrepository
1370 definition, calls the provided script as a hook when adding or
1371 removing branches. This script should do the rest inside of your
1372 repository.
1374 .B Example:
1376 .nf
1377   <tab class="servrepository" 
1378           repositoryBranchHook="/opt/dak/bin/get_extra_repos"
1379           postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
1380 .fi
1382 .I %lock_dn
1383 keeps the base DN of the source branch,
1384 .I %lock_name
1385 the name of the new branch and
1386 .I %lock_type
1387 is either "freeze" or "branch".
1389 The
1390 .I repositoryBranchHook
1391 outputs additional releases, that are not retrieveable with the standard
1392 GOsa/FAI methods.
1394 If you have only one release, or want to define a default release to be shown
1395 by GOsa, define the
1396 .I defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..."
1397 within the 
1398 .I faiManagement
1399 class definition
1401 .SH Settings for the addressbook plugin
1403 The addressbook plugin can be configured to store the addressbook data on
1404 a special location. Use the
1405 .I addressbookBaseDN
1406 keyword within the
1407 .I addressbook
1408 class definition inside your gosa.conf to configure this location.
1410 Default:
1411 .I ou=addressbook.
1413 .SH Settings for system plugins
1414 For the
1415 .I workstationStartup
1416 and
1417 .I terminalStartup
1418 classes, you can define the
1419 .I systemKernelsHook
1420 keyword. It can load additional kernels that are not retrieveable by
1421 standard GOsa/FAI mechanisms.
1423 In order to make use of SNMP information, you can set the
1424 .I snmpCommunity
1425 in the
1426 .I terminfo
1427 class definition.
1429 To enable the burn CD image function, you can specify the
1430 .I systemIsoHook
1431 in the
1432 .I workgeneric
1433 class. You will get a CD symbol in the systems list - which calls
1434 the hook if pressed.
1436 .SH AUTHOR
1437 .B gosa.conf(5)
1438 was written by Cajus Pollmeier for
1439 the GOsa project (
1440 .B http://www.gosa-project.org
1441 ).