Code

Backports from trunk
[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 seven additional hooks: 
93 .I precreate,
94 .I preremove,
95 .I premodify
96 .I postcreate,
97 .I postremove,
98 .I postmodify
99 and
100 .I check.
101 These can be used to perform special actions when a plugins gets
102 a create, delete, modify or check request. As a parameter, these
103 keywords get a shell script or program to the task.
105 .I The
106 .B create / delete / modify
107 .I keywords
109 These keywords take a full executable path of a script. You can
110 provide certain parameters in form of LDAP attributes. '%uid'
111 will pass the current user id, '%dn' the current object dn, etc.
113 The script gets executed before(pre) and after(post) create, delete or modify tasks.
115 .I The
116 .B check
117 .I keyword
119 This keyword takes a full executable path of a script. Check is
120 triggered after you press the
121 -I "Apply"
122 or
123 -I "OK"
124 button. The complete LDAP entry as it will be written to the
125 LDAP is passed to your script. If parts of the entry do not
126 match some logic of your script, just print an error message
127 to STDOUT. GOsa will show this message and abort the current
128 process of saving the entry to the LDAP.
130 .B Example menu definition:
132 .nf
133   <menu>
134     <section name="My account">
135       <plugin acl="users/user:self" class="user" check="/usr/local/bin/test_user.sh" />
136       <plugin acl="users/samba:self" class="sambaAccount" postcreate="/usr/local/bin/create_share '%uid'" />
137     </section>
138   </menu>
139 .fi
141 .SH Tabbed dialog definitions
143 Tab definitions define the sub plugins which get included for certain
144 tabbed dialogs. If you change something here, never (!) remove the
145 primary (the first) "tab" tag which is defined. Most tabbed dialogs
146 need a primary plugin.
148 .I "*tab"
149 should be looked for by a defined plugin. This one will take
150 every 
151 .I "tab"
152 defined
153 .I "class"
154 and will show it inside of a tabbed dialog
155 with the header defined in
156 .I "name".
158 .B Example tabbed dialog definition:
160 .nf
161   <grouptabs>
162     <tab class="group" name="Generic" />
163     <tab class="environment" name="Environment" />
164     <tab class="appgroup" name="Applications" />
165     <tab class="mailgroup" name="Mail" />
166   </grouptabs>
167 .fi
169 .SH Main section
171 The main section defines global settings, which might be overridden by
172 each location definition inside of this global definition.
174 .B Example layout:
176 .nf
177   <main default="Example Net"
178         listSummary="false"
179         ... >
181         <location name="Example Net"
182                   hash="md5"
183                   accountPrimaryAttribute="cn"
184                   ...
186                   <referral uri="ldaps://ldap.example.net:636/dc=example,dc=net"
187                             admin="cn=gosa-admin,dc=example,dc=net"
188                             password="secret" />
190         </location>
192   </main>
194 .fi
196 .PP
197 .B Generic options
199 .PP
200 .B forceGlobals
201 .I bool
202 .PP
203 The
204 .I forceGlobals
205 statement enables PHP security checks to force register_global settings to
206 be switched off.
207 .PP
209 .B forceSSL
210 .I bool
211 .PP
212 The
213 .I forceSSL
214 statement enables PHP security checks to force encrypted access to the web
215 interface. GOsa will try to redirect to the same URL - just with https://.
216 .PP
218 .B warnSSL
219 .I bool
220 .PP
221 The
222 .I warnSSL
223 statement enables PHP security checks to detect non encrypted access to
224 the web interface. GOsa will display a warning in this case.
225 .PP
227 .B modificationDetectionAttribute
228 .I string
229 .PP
230 The
231 .I modificationDetectionAttribute
232 statement enables GOsa to check if a entry currently being edited has
233 been modified from someone else outside GOsa in the meantime. It will
234 display an informative dialog then. It can be set to
235 .I entryCSN
236 for OpenLDAP based systems or
237 .I contextCSN
238 for Sun DS based systems.
239 .PP
241 .B logging
242 .I string
243 .PP
244 The
245 .I logging
246 statement enables event logging on GOsa side. Setting it to 
247 .I true,
248 GOsa will log every action a user performs via syslog. If you use
249 rsyslog and configure it to mysql logging, you can browse all events
250 within GOsa.
252 GOsa will not log anything, if the logging value is empty or set to
253 false.
254 .PP
256 .B loginAttribute
257 .I string
258 .PP
259 The
260 .I loginAttribute
261 statement tells GOsa which LDAP attribute is used as the login name
262 during login. It can be set to
263 .I uid, mail
264 or
265 .I both.
266 .PP
268 .B copyPaste
269 .I bool
270 .PP
271 The
272 .I copyPaste
273 statement enables copy and paste for LDAP entries managed with GOsa.
274 .PP
276 .B enableSnapshots
277 .I bool
278 .PP
279 The
280 .I enableSnapshots
281 statement enables a snapshot mechaism in GOsa. This enables you to save
282 certain states of entries and restore them later on.
283 .PP
285 .B snapshotBase
286 .I dn
287 .PP
288 The
289 .I snapshotBase
290 statement defines the base where snapshots should be stored inside of
291 the LDAP.
292 .PP
294 .B snapshotURI
295 .I uri 
296 .PP
297 The
298 .I snapshotURI
299 variable defines the LDAP URI for the server which is used to do object
300 snapshots.
301 .PP
303 .B snapshotAdminDn
304 .I dn
305 .PP
306 The
307 .I snapshotAdminDn
308 variable defines the user which is used to authenticate when connecting
309 to
310 .I snapshotURI.
311 .PP
313 .B snapshotAdminPassword
314 .I string
315 .PP
316 The
317 .I snapshotAdminPassword
318 variable defines the credentials which are used in combination with
319 .I snapshotAdminDn
320 and
321 .I snapshotURI
322 in order to authenticate.
323 .PP
325 .B config
326 .I dn
327 .PP
328 The
329 .I config
330 statement defines the LDAP base, where GOsa stores management information,
331 such as site wide locking and user notifications.
332 .PP
334 .B templateCompileDirectory
335 .I path
336 .PP
337 The
338 .I templateCompileDirectory
339 statements defines the path, where the PHP templating engins
340 .I smarty
341 should store its compiled GOsa templates for improved speed. This path
342 needs to be writeable by the user your webserver is running with.
343 .PP
345 .B timezone
346 .I string
347 .PP
348 The
349 .I timezone
350 statements defines the timezone used inside of GOsa to handle date
351 related tasks, such as password expiery, vacation messages, etc.
352 The
353 .I timezone
354 value should be a unix conform timezone value like in /etc/timezone.
355 .PP
357 .B honourIvbbAttributes
358 .I bool
359 .PP
360 The
361 .I honourIvbbAttributes
362 statement enables the IVBB mode inside of GOsa. You need the ivbb.schema
363 file from used by german authorities.
364 .PP
366 .B strictNamingRules
367 .I bool
368 .PP
369 The
370 .I strictNamingRules
371 statement enables strict checking of uids and group names. If you need
372 characters like . or - inside of your accounts, set this to
373 .I false.
374 .PP
376 .B allowUidProposalModification
377 .I bool
378 .PP
379 The
380 .I allowUidProposalModification
381 statement enables the abilitiy to modify uid proposals when creating a new user from a template.
382 .PP
384 .B honourUnitTags
385 .I bool
386 .PP
387 The
388 .I honourUnitTags
389 statement enables checking of
390 .I unitTag
391 attributes when using administrative units. If this is set to
392 .I true
393 GOsa can only see objects inside the administrative unit a
394 user is logged into.
395 .PP
397 .B rfc2307bis
398 .I bool
399 .PP
400 The
401 .I rfc2307bis
402 statement enables rfc2307bis style groups in GOsa. You can use
403 .I member
404 attributes instead of memberUid in this case. To make it work
405 on unix systems, you've to adjust your NSS configuration to
406 use rfc2307bis style groups, too.
407 .PP
409 .B ppdPath
410 .I path
411 .PP
412 The
413 .I ppdPath
414 variable defines where to store PPD files for the GOto environment plugins.
415 .PP
417 .B ppdGzip
418 .I bool
419 .PP
420 The
421 .I ppdGzip
422 variable enables PPD file compression.
423 .PP
425 .B resolutions
426 .I path
427 .PP
428 The
429 .I resolutions
430 variable defines a plain text file which contains additional resolutions
431 to be shown in the environment and system plugins.
432 .PP
434 .B htaccessAuthentication
435 .I bool
436 .PP
437 The
438 .I htaccessAuthentication
439 variable tells GOsa to use either htaccess authentication or LDAP authentication. This
440 can be used if you want to use i.e. kerberos to authenticate the users.
441 .PP
443 .B gosaSupportURI
444 .I URI
445 .PP
446 The
447 .I gosaSupportURI
448 defines the major gosa-si server host and the password for GOsa to connect to it.
449 can be used if you want to use i.e. kerberos to authenticate the users.
451 The format is:
453 .nf
454 credentials@host:port
455 .fi
456 .PP
458 .B gosaSupportTimeout
459 .I integer
460 .PP
461 The
462 .I gosaSupportTimeout
463 sets a connection timeout for all gosa-si actions. See 
464 .I gosaSupportURI
465 for details.
466 .PP
468 .B Browser and display options
470 .B listSummary
471 .I true/false
472 .PP
473 The
474 .I listSummary
475 statement determines whether a status bar will be shown on the bottom of
476 GOsa generated lists, displaying a short summary of type and number of
477 elements in the list.
478 .PP
480 .B sendCompressedOutput
481 .I true/false
482 .PP
483 The
484 .I sendCompressedOutput
485 statement determines whether PHP should send compressed HTML pages to
486 browsers or not. This may increase or decrease the performance, depending
487 on your network.
488 .PP
490 .B storeFilterSettings
491 .I true/false
492 .PP
493 The
494 .I storeFilterSettings
495 statement determines whether GOsa should store filter and plugin settings
496 inside of a cookie.
497 .PP
499 .B language
500 .I string
501 .PP
502 The
503 .I language
504 statement defines the default language used by GOsa. Normally GOsa autodetects
505 the language from the browser settings. If this is not working or you want to
506 force the language, just add the language code (i.e. de for german) here.
507 .PP
509 .B theme
510 .I string
511 .PP
512 The
513 .I theme
514 statement defines what theme is used to display GOsa pages. You can install some
515 corporate identity like theme and/or modify certain templates to fit your needs
516 within themes. Take a look at the GOsa
517 .I FAQ
518 for more information.
519 .PP
521 .B sessionLifetime
522 .I int
523 .PP
524 The
525 .I sessionLifetime
526 value defines when a session will expire in seconds. For Debian systems, this will
527 not work because the sessions will be removed by a cron job instead. Please modify
528 the value inside of your php.ini instead.
529 .PP
531 .B Password options
532 .PP
533 .B passwordMinLength
534 .I integer
535 .PP
536 The
537 .I passwordMinLength
538 statement determines whether a newly entered password has to be of
539 a minimum length.
540 .PP
542 .B passwordMinDiffer
543 .I integer
544 .PP
545 The
546 .I passwordMinDiffer
547 statement determines whether a newly entered password has to be checked
548 to have at least n different characters.
549 .PP
551 .B passwordProposalHook
552 .I command
553 .PP
554 The
555 .I passwordProposalHook
556 can be used to let GOsa generate password proposals for you. 
557 Whenever you change a password, you can then decide whether to use the proposal or to manually specify a password.
559 .nf
560 /usr/bin/apg -n1
561 .fi
563 .B strictPasswordRules
564 .I bool
565 .PP
566 The
567 .I strictPasswordRules
568 tells GOsa to check for UTF-8 characters in the supplied password. These
569 Characters can lead to non working authentications if UTF-8 and none
570 UTF-8 systems locales get mixed. The default is "true".
572 .B handleExpiredAccounts
573 .I bool
574 .PP
575 The
576 .I handleExpiredAccounts
577 statement enables shadow attribute tests during the login to the GOsa web
578 interface and forces password renewal or account lockout.
579 .PP
581 .B useSaslForKerberos
582 .I bool
583 .PP
584 The
585 .I useSaslForKerberos
586 statement defines the way the kerberos realm is stored in the
587 .I userPassword
588 attribute. Set it to
589 .I true
590 in order to get {sasl}user@REALM.NET, or to
591 .I false
592 to get {kerberos}user@REALM.NET. The latter is outdated, but may be
593 needed from time to time.
594 .PP
595 .PP
598 .B LDAP options
599 .PP
600 .B ldapMaxQueryTime
601 .I integer
602 .PP
603 The
604 .I ldapMaxQueryTime
605 statement tells GOsa to stop LDAP actions if there is no answer within the
606 specified number of seconds.
607 .PP
609 .B schemaCheck
610 .I bool
611 .PP
612 The
613 .I schemaCheck
614 statement enables or disables schema checking during login. It is recommended
615 to switch this on in order to let GOsa handle object creation more efficient.
616 .PP
618 .B ldapTLS
619 .I bool
620 .PP
621 The
622 .I ldapTLS
623 statement enables or disables TLS operating on LDAP connections.
624 .PP
626 .B accountPrimaryAttribute
627 .I cn/uid
628 .PP
629 The
630 .I accountPrimaryAttribute
631 option tells GOsa how to create new accounts. Possible values are
632 .I uid
633 and
634 .I cn.
635 In the first case GOsa creates uid style DN entries:
636 .nf
637 uid=superuser,ou=staff,dc=example,dc=net
638 .fi
639 In the second case, GOsa creates cn style DN entries:
640 .nf
641 cn=Foo Bar,ou=staff,dc=example,dc=net
642 .fi
643 If you choose "cn" to be your
644 .I accountPrimaryAttribute
645 you can decide whether to include the personal title in your dn by
646 selecting
647 .I personalTitleInDN.
648 .PP
650 .B accountRDN
651 .I pattern
652 .PP
653 The
654 .I accountRDN
655 option tells GOsa to use a placeholder pattern for generating account
656 RDNs. A pattern can include attribute names prefaced by a % and normal
657 text:
658 .nf
659 accountRDN="cn=%sn %givenName"
660 .fi
661 This will generate a RDN consisting of cn=.... filled with surname and
662 given name of the edited account. This option disables the use of
663 .I accountPrimaryAttribute
664 and
665 .I personalTitleInDn
666 in your config. The latter attributes are maintained for compatibility.
669 .B personalTitleInDN
670 .I bool
671 .PP
672 The
673 .I personalTitleInDN
674 option tells GOsa to include the personal title in user DNs when
675 .I accountPrimaryAttribute
676 is set to "cn".
678 .B userRDN
679 .I string
680 .PP
681 The
682 .I userRDN
683 statement defines the location where new accounts will be created inside of
684 defined departments. The default is
685 .I ou=people.
686 .PP
688 .B groupsRDN
689 .I string
690 .PP
691 The
692 .I groupsRDN
693 statement defines the location where new groups will be created inside of
694 defined departments. The default is
695 .I ou=groups.
696 .PP
698 .B sudoRDN
699 .I string
700 .PP
701 The
702 .I sudoRDN
703 statement defines the location where new groups will be created inside of
704 defined departments. The default is
705 .I ou=groups.
706 .PP
708 .B sambaMachineAccountRDN
709 .I string
710 .PP
711 This statement defines the location where GOsa looks for new samba workstations.
712 .PP
714 .B ogroupRDN
715 .I string
716 .PP
717 This statement defines the location where GOsa creates new object groups inside of defined
718 departments. Default is
719 .I ou=groups.
720 .PP
722 .B serverRDN
723 .I string
724 .PP
725 This statement defines the location where GOsa creates new servers inside of defined
726 departments. Default is
727 .I ou=servers.
728 .PP
730 .B terminalRDN
731 .I string
732 .PP
733 This statement defines the location where GOsa creates new terminals inside of defined
734 departments. Default is
735 .I ou=terminals.
736 .PP
738 .B workstationRDN
739 .I string
740 .PP
741 This statement defines the location where GOsa creates new workstations inside of defined
742 departments. Default is
743 .I ou=workstations.
744 .PP
746 .B printerRDN
747 .I string
748 .PP
749 This statement defines the location where GOsa creates new printers inside of defined
750 departments. Default is
751 .I ou=printers.
752 .PP
754 .B componentRDN
755 .I string
756 .PP
757 This statement defines the location where GOsa creates new network components inside of defined
758 departments. Default is
759 .I ou=components.
760 .PP
762 .B phoneRDN
763 .I string
764 .PP
765 This statement defines the location where GOsa creates new phones inside of defined
766 departments. Default is
767 .I ou=phones.
768 .PP
770 .B phoneConferenceRDN
771 .I string
772 .PP
773 This statement defines the location where GOsa creates new phone conferences inside of defined
774 departments. Default is
775 .I ou=conferences.
776 .PP
778 .B faxBlocklistRDN
779 .I string
780 .PP
781 This statement defines the location where GOsa creates new fax blocklists inside of defined
782 departments. Default is
783 .I ou=blocklists.
784 .PP
786 .B systemIncomingRDN
787 .I string
788 .PP
789 This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
790 Default is
791 .I ou=incoming.
792 .PP
794 .B systemRDN
795 .I string
796 .PP
797 This statement defines the base location for servers, workstations, terminals, phones and
798 components. Default is
799 .I ou=systems.
800 .PP
802 .B ogroupRDN
803 .I string
804 .PP
805 This statement defines the location where GOsa looks for object groups.
806 Default is
807 .I ou=groups.
808 .PP
810 .B aclRoleRDN
811 .I string
812 .PP
813 This statement defines the location where GOsa stores ACL role definitions.
814 Default is
815 .I ou=aclroles.
816 .PP
818 .B phoneMacroRDN
819 .I string
820 .PP
821 This statement defines the location where GOsa stores phone macros for use with the Asterisk
822 phone server.
823 Default is
824 .I ou=macros,ou=asterisk,ou=configs,ou=systems.
825 .PP
827 .B faiBaseRDN
828 .I string
829 .PP
830 This statement defines the location where GOsa looks for FAI settings.
831 Default is
832 .I ou=fai,ou=configs,ou=systems.
833 .PP
835 .B faiScriptRDN, faiHookRDN, faiTemplateRDN, faiVariableRDN, faiProfileRDN, faiPackageRDN, faiPartitionRDN 
836 .I string
837 .PP
838 These statement define the location where GOsa stores FAI classes. The complete base for the
839 corresponding class is an additive of
840 .B faiBaseRDN
841 an and this value.
842 .PP
844 .B deviceRDN
845 .I string
846 .PP
847 This statement defines the location where GOsa looks for devices.
848 Default is
849 .I ou=devices.
850 .PP
852 .B mimetypeRDN
853 .I string
854 .PP
855 This statement defines the location where GOsa stores mime type definitions.
856 Default is
857 .I ou=mimetypes.
858 .PP
860 .B applicationRDN
861 .I string
862 .PP
863 This statement defines the location where GOsa stores application definitions.
864 Default is
865 .I ou=apps.
866 .PP
868 .B ldapFilterNestingLimit
869 .I integer
870 .PP
871 The
872 .I ldapFilterNestingLimit
873 statement can be used to speed up group handling for groups with several hundreds of members.
874 The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
875 To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
876 Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
877 stop to do these lookups.
878 .PP
880 .B ldapSizelimit
881 .I integer
882 .PP
883 The
884 .I ldapSizelimit
885 statement tells GOsa to retrieve the specified maximum number of results. The user will get
886 a warning, that not all entries were shown.
887 .PP
889 .B ldapFollowReferrals
890 .I bool
891 .PP
892 The
893 .I ldapFollowReferrals
894 statement tells GOsa to follow LDAP referrals.
895 .PP
896 .PP
899 .B Account creation options
900 .PP
901 .B uidNumberBase
902 .I integer
903 .PP
904 The
905 .I uidNumberBase
906 statement defines where to start looking for a new free user id. This should be synced
907 with your
908 .I adduser.conf
909 to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase
910 can even be dynamic. Take a look at the
911 .I baseIdHook
912 definition below.
913 .PP
915 .B gidNumberBase
916 .I integer
917 .PP
918 The
919 .I gidNumberBase
920 statement defines where to start looking for a new free group id. This should be synced
921 with your
922 .I adduser.conf
923 to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase
924 can even be dynamic. Take a look at the
925 .I nextIdHook
926 definition below.
927 .PP
929 .B idAllocationMethod
930 .I traditional/pool
931 .PP
932 The
933 .I idAllocationMethod
934 statement defines how GOsa generates numeric user and group id values. If it is set to
935 .I traditional
936 GOsa will do create a lock and perform a search for the next free ID. The lock will be
937 removed after the procedure completes.
938 .I pool
939 will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe,
940 because it does not check for concurrent LDAP access and already used IDs in this range. 
941 On the other hand it is much faster.
942 .PP
944 .B minId
945 .I integer
946 .PP
947 The
948 .I minId
949 statement defines the minimum assignable user or group id to avoid security leaks with
950 uid 0 accounts. This is used for the
951 .I traditional
952 method
953 .PP
955 .B uidNumberPoolMin/gidNumberPoolMin
956 .I integer
957 .PP
958 The
959 .I uidNumberPoolMin/gidNumberPoolMin
960 statement defines the minimum assignable user/group id for use with the
961 .I pool
962 method.
963 .PP
965 .B uidNumberPoolMax/gidNumberPoolMax
966 .I integer
967 .PP
968 The
969 .I uidNumberPoolMax/gidNumberPoolMax
970 statement defines the highest assignable user/group id for use with the
971 .I pool
972 method.
973 .PP
975 .B nextIdHook
976 .I path
977 .PP
978 The
979 .I nextIdHook
980 statement defines a script to be called for finding the next free id for users or groups
981 externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
982 should return an integer value.
983 .PP
985 .B passwordDefaultHash
986 .I string
987 .PP
988 The
989 .I passwordDefaultHash
990 statement defines the default password hash to choose for new accounts. Valid values are
991 .I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
992 and
993 .I sasl.
994 These values will be overridden when using templates.
995 .PP
997 .B idGenerator
998 .I string
999 .PP
1000 The
1001 .I idGenerator
1002 statement describes an automatic way to generate new user ids. There are two basic
1003 functions supported - which can be combined:
1005  a) using attributes
1007     You can specify LDAP attributes (currently only sn and givenName) in
1008     braces {} and add a percent sign befor it. Optionally you can strip it
1009     down to a number of characters, specified in []. I.e.
1011 .nf
1012       idGenerator="{%sn}-{%givenName[2-4]}"
1013 .fi
1015     will generate an ID using the full surname, adding a dash, and adding at
1016     least the first two characters of givenName. If this ID is used, it'll
1017     use up to four characters. If no automatic generation is possible, a
1018     input box is shown.
1020  b) using automatic id's
1022     I.e. specifying
1024 .nf
1025       idGenerator="acct{id:3}"
1026 .fi
1028     will generate a three digits id with the next free entry appended to
1029     "acct".
1031 .nf
1032       idGenerator="acct{id!1}"
1033 .fi
1035     will generate a one digit id with the next free entry appended to
1036     "acct" - if needed.
1038 .nf
1039       idGenerator="ext{id#3}"
1040 .fi
1042     will generate a three digits random number appended to "ext".
1043 .PP
1044 .PP
1047 .B Samba options
1048 .PP
1049 .B sambaSID
1050 .I string
1051 .PP
1052 The
1053 .I sambaSID
1054 statement defines a samba SID if not available inside of the LDAP. You can retrieve
1055 the current sid by
1056 .I net getlocalsid.
1057 .PP
1059 .B sambaRidBase
1060 .I integer
1061 .PP
1062 The
1063 .I sambaRidBase
1064 statement defines the base id to add to ordinary sid calculations - if not available
1065 inside of the LDAP.
1066 .PP
1068 .B sambaHashHook
1069 .I path
1070 .PP
1071 The
1072 .I sambaHashHook
1073 statement contains an executable to generate samba hash values. This is required
1074 for password synchronization, but not required if you apply gosa-si services.
1075 If you don't have mkntpasswd from the samba distribution installed, you can use
1076 perl to generate the hash:
1078 .nf
1079 perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \\$ARGV[0]), $/;"
1080 .if
1081 .PP
1083 .B sambaIdmapping
1084 .I bool
1085 .PP
1086 The
1087 .I sambaIdMapping
1088 statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your
1089 setup this can drastically improve the windows login performance.
1090 .PP
1091 .PP
1093 .B Asterisk options
1094 .PP
1095 .B ctiHook
1096 .I path
1097 .PP
1098 The
1099 .I ctiHook
1100 statement defines a script to be executed if someone clicks on a phone number
1101 inside of the addressbook plugin. It gets called with two parameters:
1103 .nf
1104 ctiHook $source_number $destination_number
1105 .fi
1107 This script can be used to do automatted dialing from the addressbook.
1108 .PP
1109 .PP
1111 .B Mail options
1112 .PP
1113 .B mailMethod
1114 .I Cyrus/SendmailCyrus/Kolab/Kolab22
1115 .PP
1116 The
1117 .I mailMethod
1118 statement tells GOsa which mail method the setup should use to communicate
1119 with a possible mail server. Leave this undefined if your mail method does
1120 not match the predefined ones.
1122 .I Cyrus
1123 maintains accounts and sieve scripts in cyrus servers.
1124 .I Kolab/Kolab22
1125 is like cyrus, but lets the kolab daemon maintain the accounts.
1126 .I SendmailCyrus is based on sendmail LDAP attributes.
1127 .PP
1129 .B cyrusUseSlashes
1130 .I bool
1131 .PP
1132 The
1133 .I cyrusUseSlashes
1134 statement determines if GOsa should use "foo/bar" or "foo.bar" namespaces
1135 in IMAP. Unix style is with slashes.
1137 .B cyrusDeleteMailbox
1138 .I bool
1139 .PP
1140 The
1141 .I cyrusDeleteMailbox
1142 statement determines if GOsa should remove the mailbox from your IMAP
1143 server or keep it after the account is deleted in LDAP.
1145 .B cyrusAutocreateFolders
1146 .I string
1147 .PP
1148 The
1149 .I cyrusAutocreateFolders
1150 statement contains a comma seperated list of personal IMAP folders that
1151 should be created along initial account creation.
1153 .B postfixRestrictionFilters
1154 .I path
1155 .PP
1156 The
1157 .I postfixRestrictionFilters
1158 statement defines a file to include for the postfix module in order
1159 to display user defined restriction filters.
1161 .B postfixProtocols
1162 .I path
1163 .PP
1164 The
1165 .I postfixProtocols
1166 statement defines a file to include for the postfix module in order
1167 to display user defined protocols.
1169 .B mailAttribute
1170 .I mail/uid
1171 .PP
1172 The
1173 .I mailAttribute
1174 statement determines which attribute GOsa will use to create accounts.
1175 Valid values are
1176 .I mail
1177 and
1178 .I uid.
1180 .B imapTimeout
1181 .I Integer (default 10) 
1182 .PP
1183 The
1184 .I imapTimeout
1185 statement sets the connection timeout for imap actions.
1187 .B mailFolderCreation
1188 Every mail method has its own way to create mail accounts like 
1189 .I share/development
1190 or 
1191 .I shared.development@example.com
1192 which is used to identify the accounts, set quotas or add acls. 
1194 To override the methods default account creation syntax, you can set the
1195 .I mailFolderCreation
1196 option.
1198 .I Examples
1200 .nf
1201  mailFolderCreation="%prefix%%cn%"              => "shared.development"
1202  mailFolderCreation="my-prefix.%cn%%domain%"    => "my-prefix.development@example.com">
1203 .fi
1205 .I Placeholders
1207 .nf
1208  %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
1209  %cn%        The groups/users cn.
1210  %uid%       The users uid.
1211  %mail%      The objects mail attribute.
1212  %domain%    The domain part of the objects mail attribute.
1213  %mailpart%  The user address part of the mail address.
1214  %uattrib%   Depends on mailAttribute="uid/mail".
1215 .fi
1218 .B mailUserCreation
1219 This attribute allows to override the user account creation syntax, see
1220 the
1221 .I mailFolderCreation
1222 description for more details. 
1224 .I Examples
1226 .nf
1227  mailUserCreation="%prefix%%uid%"           => "user.foobar"
1228  mailUserCreation=my-prefix.%uid%%domain%"  => "my-prefix.foobar@example.com"
1229 .fi
1232 .B vacationTemplateDirectory
1233 .I path
1234 .PP
1235 The
1236 .I vacationTemplateDirectory
1237 statement sets the path where GOsa will look for vacation message
1238 templates. Default is /etc/gosa/vacation.
1240 Example template /etc/gosa/vacation/business.txt:
1242 .nf
1243    DESC:Away from desk
1244    Hi, I'm currently away from my desk. You can contact me on
1245    my cell phone via %mobile.
1247    Greetings,
1248    %givenName %sn
1249 .fi
1250 .PP
1253 .B Debug options
1254 .PP
1255 .B displayErrors
1256 .I bool
1257 .PP
1258 The
1259 .I displayErrors
1260 statement tells GOsa to show PHP errors in the upper part of the screen. This
1261 should be disabled in productive deployments, because there might be some
1262 important passwords arround.
1263 .PP
1265 .B ldapstats
1266 .I bool
1267 .PP
1268 The
1269 .I ldapstats
1270 statement tells GOsa to track LDAP timing statistics to the syslog. This may
1271 help to find indexing problems or bad search filters.
1272 .PP
1274 .B ignoreAcl
1275 .I dn
1276 .PP
1277 The
1278 .I ignoreAcl
1279 value tells GOsa to ignore complete ACL sets for the given DN. Add your
1280 DN here and you'll be able to restore accidently dropped ACLs.
1281 .PP
1283 .B debugLevel
1284 .I integer
1285 .PP
1286 The
1287 .I debugLevel
1288 value tells GOsa to display certain information on each page load. Value
1289 is an AND combination of the following byte values:
1291 DEBUG_TRACE   = 1
1293 DEBUG_LDAP    = 2
1295 DEBUG_MYSQL   = 4
1297 DEBUG_SHELL   = 8
1299 DEBUG_POST    = 16
1301 DEBUG_SESSION = 32
1303 DEBUG_CONFIG  = 64
1305 DEBUG_ACL     = 128
1307 DEBUG_SI      = 256
1309 DEBUG_MAIL    = 512
1310 .PP
1313 .SH LDAP resource definition
1315 For every location you define inside your gosa.conf, you need at least
1316 one entry of the type
1317 .I referral.
1318 These entries define the way how to connect to some directory service.
1320 .B Example:
1322 .nf
1323   <referral uri="ldap://ldap.example.net/dc=example,dc=net"
1324             admin="cn=gosa-admin,dc=example,dc=net"
1325             password="secret" />
1326 .fi
1328 .I uri
1329 is a valid LDAP uri extendet by the base this referral is responsible for.
1330 .I admin
1331 is the DN which has the permission to write LDAP entries. And
1332 .I password
1333 is the corresponding password for this DN.
1335 You can define a set of referrals if you have several server to
1336 connect to.
1338 .SH Settings for the environment plugin
1340 In order to make full use of the environment plugin, you may want
1341 to define the location where kiosk profiles will be stored on the
1342 servers harddisk.
1344 This is done by the
1345 .I kioskPath
1346 keyword defined within the
1347 .I environment
1348 class definition inside your gosa.conf.
1350 .B Example:
1352 .nf
1353   <plugin acl="users/environment"
1354           class="environment"
1355           kioskPath="/var/spool/kiosk"/>
1356 .fi
1358 Make sure, that this path is writeable by GOsa.
1360 .SH Settings for the FAI plugin
1362 The FAI plugin can be used in a way that it generates branched or
1363 freezed releases inside your repository. Specifying the
1364 .I postcreate
1365 and
1366 .I postmodify
1367 keywords in the
1368 .I servrepository
1369 definition, calls the provided script as a hook when adding or
1370 removing branches. This script should do the rest inside of your
1371 repository.
1373 .B Example:
1375 .nf
1376   <tab class="servrepository" 
1377           repositoryBranchHook="/opt/dak/bin/get_extra_repos"
1378           postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
1379 .fi
1381 .I %lock_dn
1382 keeps the base DN of the source branch,
1383 .I %lock_name
1384 the name of the new branch and
1385 .I %lock_type
1386 is either "freeze" or "branch".
1388 The
1389 .I repositoryBranchHook
1390 outputs additional releases, that are not retrieveable with the standard
1391 GOsa/FAI methods.
1393 If you have only one release, or want to define a default release to be shown
1394 by GOsa, define the
1395 .I defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..."
1396 within the 
1397 .I faiManagement
1398 class definition
1400 .SH Settings for the addressbook plugin
1402 The addressbook plugin can be configured to store the addressbook data on
1403 a special location. Use the
1404 .I addressbookBaseDN
1405 keyword within the
1406 .I addressbook
1407 class definition inside your gosa.conf to configure this location.
1409 Default:
1410 .I ou=addressbook.
1412 .SH Settings for system plugins
1413 For the
1414 .I workstationStartup
1415 and
1416 .I terminalStartup
1417 classes, you can define the
1418 .I systemKernelsHook
1419 keyword. It can load additional kernels that are not retrieveable by
1420 standard GOsa/FAI mechanisms.
1422 In order to make use of SNMP information, you can set the
1423 .I snmpCommunity
1424 in the
1425 .I terminfo
1426 class definition.
1428 To enable the burn CD image function, you can specify the
1429 .I systemIsoHook
1430 in the
1431 .I workgeneric
1432 class. You will get a CD symbol in the systems list - which calls
1433 the hook if pressed.
1435 .SH AUTHOR
1436 .B gosa.conf(5)
1437 was written by Cajus Pollmeier for
1438 the GOsa project (
1439 .B http://www.gosa-project.org
1440 ).