Code

Updated several config Flags ..
[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 strictPasswordRules
553 .I bool
554 .PP
555 The
556 .I strictPasswordRules
557 tells GOsa to check for UTF-8 characters in the supplied password. These
558 Characters can lead to non working authentications if UTF-8 and none
559 UTF-8 systems locales get mixed. The default is "true".
561 .B handleExpiredAccounts
562 .I bool
563 .PP
564 The
565 .I handleExpiredAccounts
566 statement enables shadow attribute tests during the login to the GOsa web
567 interface and forces password renewal or account lockout.
568 .PP
570 .B useSaslForKerberos
571 .I bool
572 .PP
573 The
574 .I useSaslForKerberos
575 statement defines the way the kerberos realm is stored in the
576 .I userPassword
577 attribute. Set it to
578 .I true
579 in order to get {sasl}user@REALM.NET, or to
580 .I false
581 to get {kerberos}user@REALM.NET. The latter is outdated, but may be
582 needed from time to time.
583 .PP
584 .PP
587 .B LDAP options
588 .PP
589 .B ldapMaxQueryTime
590 .I integer
591 .PP
592 The
593 .I ldapMaxQueryTime
594 statement tells GOsa to stop LDAP actions if there is no answer within the
595 specified number of seconds.
596 .PP
598 .B schemaCheck
599 .I bool
600 .PP
601 The
602 .I schemaCheck
603 statement enables or disables schema checking during login. It is recommended
604 to switch this on in order to let GOsa handle object creation more efficient.
605 .PP
607 .B ldapTLS
608 .I bool
609 .PP
610 The
611 .I ldapTLS
612 statement enables or disables TLS operating on LDAP connections.
613 .PP
615 .B accountPrimaryAttribute
616 .I cn/uid
617 .PP
618 The
619 .I accountPrimaryAttribute
620 option tells GOsa how to create new accounts. Possible values are
621 .I uid
622 and
623 .I cn.
624 In the first case GOsa creates uid style DN entries:
625 .nf
626 uid=superuser,ou=staff,dc=example,dc=net
627 .fi
628 In the second case, GOsa creates cn style DN entries:
629 .nf
630 cn=Foo Bar,ou=staff,dc=example,dc=net
631 .fi
632 If you choose "cn" to be your
633 .I accountPrimaryAttribute
634 you can decide whether to include the personal title in your dn by
635 selecting
636 .I personalTitleInDN.
637 .PP
639 .B accountRDN
640 .I pattern
641 .PP
642 The
643 .I accountRDN
644 option tells GOsa to use a placeholder pattern for generating account
645 RDNs. A pattern can include attribute names prefaced by a % and normal
646 text:
647 .nf
648 accountRDN="cn=%sn %givenName"
649 .fi
650 This will generate a RDN consisting of cn=.... filled with surname and
651 given name of the edited account. This option disables the use of
652 .I accountPrimaryAttribute
653 and
654 .I personalTitleInDn
655 in your config. The latter attributes are maintained for compatibility.
658 .B personalTitleInDN
659 .I bool
660 .PP
661 The
662 .I personalTitleInDN
663 option tells GOsa to include the personal title in user DNs when
664 .I accountPrimaryAttribute
665 is set to "cn".
667 .B userRDN
668 .I string
669 .PP
670 The
671 .I userRDN
672 statement defines the location where new accounts will be created inside of
673 defined departments. The default is
674 .I ou=people.
675 .PP
677 .B groupsRDN
678 .I string
679 .PP
680 The
681 .I groupsRDN
682 statement defines the location where new groups will be created inside of
683 defined departments. The default is
684 .I ou=groups.
685 .PP
687 .B sudoRDN
688 .I string
689 .PP
690 The
691 .I sudoRDN
692 statement defines the location where new groups will be created inside of
693 defined departments. The default is
694 .I ou=groups.
695 .PP
697 .B sambaMachineAccountRDN
698 .I string
699 .PP
700 This statement defines the location where GOsa looks for new samba workstations.
701 .PP
703 .B ogroupRDN
704 .I string
705 .PP
706 This statement defines the location where GOsa creates new object groups inside of defined
707 departments. Default is
708 .I ou=groups.
709 .PP
711 .B serverRDN
712 .I string
713 .PP
714 This statement defines the location where GOsa creates new servers inside of defined
715 departments. Default is
716 .I ou=servers.
717 .PP
719 .B terminalRDN
720 .I string
721 .PP
722 This statement defines the location where GOsa creates new terminals inside of defined
723 departments. Default is
724 .I ou=terminals.
725 .PP
727 .B workstationRDN
728 .I string
729 .PP
730 This statement defines the location where GOsa creates new workstations inside of defined
731 departments. Default is
732 .I ou=workstations.
733 .PP
735 .B printerRDN
736 .I string
737 .PP
738 This statement defines the location where GOsa creates new printers inside of defined
739 departments. Default is
740 .I ou=printers.
741 .PP
743 .B componentRDN
744 .I string
745 .PP
746 This statement defines the location where GOsa creates new network components inside of defined
747 departments. Default is
748 .I ou=components.
749 .PP
751 .B phoneRDN
752 .I string
753 .PP
754 This statement defines the location where GOsa creates new phones inside of defined
755 departments. Default is
756 .I ou=phones.
757 .PP
759 .B phoneConferenceRDN
760 .I string
761 .PP
762 This statement defines the location where GOsa creates new phone conferences inside of defined
763 departments. Default is
764 .I ou=conferences.
765 .PP
767 .B faxBlocklistRDN
768 .I string
769 .PP
770 This statement defines the location where GOsa creates new fax blocklists inside of defined
771 departments. Default is
772 .I ou=blocklists.
773 .PP
775 .B systemIncomingRDN
776 .I string
777 .PP
778 This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
779 Default is
780 .I ou=incoming.
781 .PP
783 .B systemRDN
784 .I string
785 .PP
786 This statement defines the base location for servers, workstations, terminals, phones and
787 components. Default is
788 .I ou=systems.
789 .PP
791 .B ogroupRDN
792 .I string
793 .PP
794 This statement defines the location where GOsa looks for object groups.
795 Default is
796 .I ou=groups.
797 .PP
799 .B aclRoleRDN
800 .I string
801 .PP
802 This statement defines the location where GOsa stores ACL role definitions.
803 Default is
804 .I ou=aclroles.
805 .PP
807 .B phoneMacroRDN
808 .I string
809 .PP
810 This statement defines the location where GOsa stores phone macros for use with the Asterisk
811 phone server.
812 Default is
813 .I ou=macros,ou=asterisk,ou=configs,ou=systems.
814 .PP
816 .B faiBaseRDN
817 .I string
818 .PP
819 This statement defines the location where GOsa looks for FAI settings.
820 Default is
821 .I ou=fai,ou=configs,ou=systems.
822 .PP
824 .B faiScriptRDN, faiHookRDN, faiTemplateRDN, faiVariableRDN, faiProfileRDN, faiPackageRDN, faiPartitionRDN 
825 .I string
826 .PP
827 These statement define the location where GOsa stores FAI classes. The complete base for the
828 corresponding class is an additive of
829 .B faiBaseRDN
830 an and this value.
831 .PP
833 .B deviceRDN
834 .I string
835 .PP
836 This statement defines the location where GOsa looks for devices.
837 Default is
838 .I ou=devices.
839 .PP
841 .B mimetypeRDN
842 .I string
843 .PP
844 This statement defines the location where GOsa stores mime type definitions.
845 Default is
846 .I ou=mimetypes.
847 .PP
849 .B applicationRDN
850 .I string
851 .PP
852 This statement defines the location where GOsa stores application definitions.
853 Default is
854 .I ou=apps.
855 .PP
857 .B ldapFilterNestingLimit
858 .I integer
859 .PP
860 The
861 .I ldapFilterNestingLimit
862 statement can be used to speed up group handling for groups with several hundreds of members.
863 The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
864 To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
865 Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
866 stop to do these lookups.
867 .PP
869 .B ldapSizelimit
870 .I integer
871 .PP
872 The
873 .I ldapSizelimit
874 statement tells GOsa to retrieve the specified maximum number of results. The user will get
875 a warning, that not all entries were shown.
876 .PP
878 .B ldapFollowReferrals
879 .I bool
880 .PP
881 The
882 .I ldapFollowReferrals
883 statement tells GOsa to follow LDAP referrals.
884 .PP
885 .PP
888 .B Account creation options
889 .PP
890 .B uidNumberBase
891 .I integer
892 .PP
893 The
894 .I uidNumberBase
895 statement defines where to start looking for a new free user id. This should be synced
896 with your
897 .I adduser.conf
898 to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase
899 can even be dynamic. Take a look at the
900 .I baseIdHook
901 definition below.
902 .PP
904 .B gidNumberBase
905 .I integer
906 .PP
907 The
908 .I gidNumberBase
909 statement defines where to start looking for a new free group id. This should be synced
910 with your
911 .I adduser.conf
912 to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase
913 can even be dynamic. Take a look at the
914 .I nextIdHook
915 definition below.
916 .PP
918 .B idAllocationMethod
919 .I traditional/pool
920 .PP
921 The
922 .I idAllocationMethod
923 statement defines how GOsa generates numeric user and group id values. If it is set to
924 .I traditional
925 GOsa will do create a lock and perform a search for the next free ID. The lock will be
926 removed after the procedure completes.
927 .I pool
928 will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe,
929 because it does not check for concurrent LDAP access and already used IDs in this range. 
930 On the other hand it is much faster.
931 .PP
933 .B minId
934 .I integer
935 .PP
936 The
937 .I minId
938 statement defines the minimum assignable user or group id to avoid security leaks with
939 uid 0 accounts. This is used for the
940 .I traditional
941 method
942 .PP
944 .B uidNumberPoolMin/gidNumberPoolMin
945 .I integer
946 .PP
947 The
948 .I uidNumberPoolMin/gidNumberPoolMin
949 statement defines the minimum assignable user/group id for use with the
950 .I pool
951 method.
952 .PP
954 .B uidNumberPoolMax/gidNumberPoolMax
955 .I integer
956 .PP
957 The
958 .I uidNumberPoolMin/gidNumberPoolMin
959 statement defines the highest assignable user/group id for use with the
960 .I pool
961 method.
962 .PP
964 .B nextIdHook
965 .I path
966 .PP
967 The
968 .I nextIdHook
969 statement defines a script to be called for finding the next free id for users or groups
970 externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
971 should return an integer value.
972 .PP
974 .B passwordDefaultHash
975 .I string
976 .PP
977 The
978 .I passwordDefaultHash
979 statement defines the default password hash to choose for new accounts. Valid values are
980 .I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
981 and
982 .I sasl.
983 These values will be overridden when using templates.
984 .PP
986 .B idGenerator
987 .I string
988 .PP
989 The
990 .I idGenerator
991 statement describes an automatic way to generate new user ids. There are two basic
992 functions supported - which can be combined:
994  a) using attributes
996     You can specify LDAP attributes (currently only sn and givenName) in
997     braces {} and add a percent sign befor it. Optionally you can strip it
998     down to a number of characters, specified in []. I.e.
1000 .nf
1001       idGenerator="{%sn}-{%givenName[2-4]}"
1002 .fi
1004     will generate an ID using the full surename, adding a dash, and adding at
1005     least the first two characters of givenName. If this ID is used, it'll
1006     use up to four characters. If no automatic generation is possible, a
1007     input box is shown.
1009  b) using automatic id's
1011     I.e. specifying
1013 .nf
1014       idGenerator="acct{id:3}"
1015 .fi
1017     will generate a three digits id with the next free entry appended to
1018     "acct".
1020 .nf
1021       idGenerator="acct{id!1}"
1022 .fi
1024     will generate a one digit id with the next free entry appended to
1025     "acct" - if needed.
1027 .nf
1028       idGenerator="ext{id#3}"
1029 .fi
1031     will generate a three digits random number appended to "ext".
1032 .PP
1033 .PP
1036 .B Samba options
1037 .PP
1038 .B sambaSID
1039 .I string
1040 .PP
1041 The
1042 .I sambaSID
1043 statement defines a samba SID if not available inside of the LDAP. You can retrieve
1044 the current sid by
1045 .I net getlocalsid.
1046 .PP
1048 .B sambaRidBase
1049 .I integer
1050 .PP
1051 The
1052 .I sambaRidBase
1053 statement defines the base id to add to ordinary sid calculations - if not available
1054 inside of the LDAP.
1055 .PP
1057 .B sambaHashHook
1058 .I path
1059 .PP
1060 The
1061 .I sambaHashHook
1062 statement contains an executable to generate samba hash values. This is required
1063 for password synchronization, but not required if you apply gosa-si services.
1064 If you don't have mkntpasswd from the samba distribution installed, you can use
1065 perl to generate the hash:
1067 .nf
1068 perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \\$ARGV[0]), $/;"
1069 .if
1070 .PP
1072 .B sambaIdmapping
1073 .I bool
1074 .PP
1075 The
1076 .I sambaIdMapping
1077 statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your
1078 setup this can drastically improve the windows login performance.
1079 .PP
1080 .PP
1082 .B Asterisk options
1083 .PP
1084 .B ctiHook
1085 .I path
1086 .PP
1087 The
1088 .I ctiHook
1089 statement defines a script to be executed if someone clicks on a phone number
1090 inside of the addressbook plugin. It gets called with two parameters:
1092 .nf
1093 ctiHook $source_number $destination_number
1094 .fi
1096 This script can be used to do automatted dialing from the addressbook.
1097 .PP
1098 .PP
1100 .B Mail options
1101 .PP
1102 .B mailMethod
1103 .I Cyrus/SendmailCyrus/Kolab/Kolab22
1104 .PP
1105 The
1106 .I mailMethod
1107 statement tells GOsa which mail method the setup should use to communicate
1108 with a possible mail server. Leave this undefined if your mail method does
1109 not match the predefined ones.
1111 .I Cyrus
1112 maintains accounts and sieve scripts in cyrus servers.
1113 .I Kolab/Kolab22
1114 is like cyrus, but lets the kolab daemon maintain the accounts.
1115 .I SendmailCyrus is based on sendmail LDAP attributes.
1116 .PP
1118 .B cyrusUseSlashes
1119 .I bool
1120 .PP
1121 The
1122 .I cyrusUseSlashes
1123 statement determines if GOsa should use "foo/bar" or "foo.bar" namespaces
1124 in IMAP. Unix style is with slashes.
1126 .B cyrusDeleteMailbox
1127 .I bool
1128 .PP
1129 The
1130 .I cyrusDeleteMailbox
1131 statement determines if GOsa should remove the mailbox from your IMAP
1132 server or keep it after the account is deleted in LDAP.
1134 .B cyrusAutocreateFolders
1135 .I string
1136 .PP
1137 The
1138 .I cyrusAutocreateFolders
1139 statement contains a comma seperated list of personal IMAP folders that
1140 should be created along initial account creation.
1142 .B postfixRestrictionFilters
1143 .I path
1144 .PP
1145 The
1146 .I postfixRestrictionFilters
1147 statement defines a file to include for the postfix module in order
1148 to display user defined restriction filters.
1150 .B postfixProtocols
1151 .I path
1152 .PP
1153 The
1154 .I postfixProtocols
1155 statement defines a file to include for the postfix module in order
1156 to display user defined protocols.
1158 .B mailAttribute
1159 .I mail/uid
1160 .PP
1161 The
1162 .I mailAttribute
1163 statement determines which attribute GOsa will use to create accounts.
1164 Valid values are
1165 .I mail
1166 and
1167 .I uid.
1169 .B imapTimeout
1170 .I Integer (default 10) 
1171 .PP
1172 The
1173 .I imapTimeout
1174 statement sets the connection timeout for imap actions.
1176 .B mailFolderCreation
1177 Every mail method has its own way to create mail accounts like 
1178 .I share/development
1179 or 
1180 .I shared.development@example.com
1181 which is used to identify the accounts, set quotas or add acls. 
1183 To override the methods default account creation syntax, you can set the
1184 .I mailFolderCreation
1185 option.
1187 .I Examples
1189 .nf
1190  mailFolderCreation="%prefix%%cn%"              => "shared.development"
1191  mailFolderCreation="my-prefix.%cn%%domain%"    => "my-prefix.development@example.com">
1192 .fi
1194 .I Placeholders
1196 .nf
1197  %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
1198  %cn%        The groups/users cn.
1199  %uid%       The users uid.
1200  %mail%      The objects mail attribute.
1201  %domain%    The domain part of the objects mail attribute.
1202  %mailpart%  The user address part of the mail address.
1203  %uattrib%   Depends on mailAttribute="uid/mail".
1204 .fi
1207 .B mailUserCreation
1208 This attribute allows to override the user account creation syntax, see
1209 the
1210 .I mailFolderCreation
1211 description for more details. 
1213 .I Examples
1215 .nf
1216  mailUserCreation="%prefix%%uid%"           => "user.foobar"
1217  mailUserCreation=my-prefix.%uid%%domain%"  => "my-prefix.foobar@example.com"
1218 .fi
1221 .B vacationTemplateDirectory
1222 .I path
1223 .PP
1224 The
1225 .I vacationTemplateDirectory
1226 statement sets the path where GOsa will look for vacation message
1227 templates. Default is /etc/gosa/vacation.
1229 Example template /etc/gosa/vacation/business.txt:
1231 .nf
1232    DESC:Away from desk
1233    Hi, I'm currently away from my desk. You can contact me on
1234    my cell phone via %mobile.
1236    Greetings,
1237    %givenName %sn
1238 .fi
1239 .PP
1242 .B Debug options
1243 .PP
1244 .B displayErrors
1245 .I bool
1246 .PP
1247 The
1248 .I displayErrors
1249 statement tells GOsa to show PHP errors in the upper part of the screen. This
1250 should be disabled in productive deployments, because there might be some
1251 important passwords arround.
1252 .PP
1254 .B ldapstats
1255 .I bool
1256 .PP
1257 The
1258 .I ldapstats
1259 statement tells GOsa to track LDAP timing statistics to the syslog. This may
1260 help to find indexing problems or bad search filters.
1261 .PP
1263 .B ignoreAcl
1264 .I dn
1265 .PP
1266 The
1267 .I ignoreAcl
1268 value tells GOsa to ignore complete ACL sets for the given DN. Add your
1269 DN here and you'll be able to restore accidently dropped ACLs.
1270 .PP
1272 .B debugLevel
1273 .I integer
1274 .PP
1275 The
1276 .I debugLevel
1277 value tells GOsa to display certain information on each page load. Value
1278 is an AND combination of the following byte values:
1280 DEBUG_TRACE   = 1
1282 DEBUG_LDAP    = 2
1284 DEBUG_MYSQL   = 4
1286 DEBUG_SHELL   = 8
1288 DEBUG_POST    = 16
1290 DEBUG_SESSION = 32
1292 DEBUG_CONFIG  = 64
1294 DEBUG_ACL     = 128
1296 DEBUG_SI      = 256
1298 DEBUG_MAIL    = 512
1299 .PP
1302 .SH LDAP resource definition
1304 For every location you define inside your gosa.conf, you need at least
1305 one entry of the type
1306 .I referral.
1307 These entries define the way how to connect to some directory service.
1309 .B Example:
1311 .nf
1312   <referral uri="ldap://ldap.example.net/dc=example,dc=net"
1313             admin="cn=gosa-admin,dc=example,dc=net"
1314             password="secret" />
1315 .fi
1317 .I uri
1318 is a valid LDAP uri extendet by the base this referral is responsible for.
1319 .I admin
1320 is the DN which has the permission to write LDAP entries. And
1321 .I password
1322 is the corresponding password for this DN.
1324 You can define a set of referrals if you have several server to
1325 connect to.
1327 .SH Settings for the environment plugin
1329 In order to make full use of the environment plugin, you may want
1330 to define the location where kiosk profiles will be stored on the
1331 servers harddisk.
1333 This is done by the
1334 .I kioskPath
1335 keyword defined within the
1336 .I environment
1337 class definition inside your gosa.conf.
1339 .B Example:
1341 .nf
1342   <plugin acl="users/environment"
1343           class="environment"
1344           kioskPath="/var/spool/kiosk"/>
1345 .fi
1347 Make sure, that this path is writeable by GOsa.
1349 .SH Settings for the FAI plugin
1351 The FAI plugin can be used in a way that it generates branched or
1352 freezed releases inside your repository. Specifying the
1353 .I postcreate
1354 and
1355 .I postmodify
1356 keywords in the
1357 .I servrepository
1358 definition, calls the provided script as a hook when adding or
1359 removing branches. This script should do the rest inside of your
1360 repository.
1362 .B Example:
1364 .nf
1365   <tab class="servrepository" 
1366           repositoryBranchHook="/opt/dak/bin/get_extra_repos"
1367           postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
1368 .fi
1370 .I %lock_dn
1371 keeps the base DN of the source branch,
1372 .I %lock_name
1373 the name of the new branch and
1374 .I %lock_type
1375 is either "freeze" or "branch".
1377 The
1378 .I repositoryBranchHook
1379 outputs additional releases, that are not retrieveable with the standard
1380 GOsa/FAI methods.
1382 If you have only one release, or want to define a default release to be shown
1383 by GOsa, define the
1384 .I defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..."
1385 within the 
1386 .I faiManagement
1387 class definition
1389 .SH Settings for the addressbook plugin
1391 The addressbook plugin can be configured to store the addressbook data on
1392 a special location. Use the
1393 .I addressbookBaseDN
1394 keyword within the
1395 .I addressbook
1396 class definition inside your gosa.conf to configure this location.
1398 Default:
1399 .I ou=addressbook.
1401 .SH Settings for system plugins
1402 For the
1403 .I workstationStartup
1404 and
1405 .I terminalStartup
1406 classes, you can define the
1407 .I systemKernelsHook
1408 keyword. It can load additional kernels that are not retrieveable by
1409 standard GOsa/FAI mechanisms.
1411 In order to make use of SNMP information, you can set the
1412 .I snmpCommunity
1413 in the
1414 .I terminfo
1415 class definition.
1417 To enable the burn CD image function, you can specify the
1418 .I systemIsoHook
1419 in the
1420 .I workgeneric
1421 class. You will get a CD symbol in the systems list - which calls
1422 the hook if pressed.
1424 .SH AUTHOR
1425 .B gosa.conf(5)
1426 was written by Cajus Pollmeier for
1427 the GOsa project (
1428 .B http://www.gosa-project.org
1429 ).