Code

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