gosa.conf(5)
πΈ gosa.conf(5) πΈ
Debian Β· section 5 Β· the manual page for the GOsa configuration file π β aka the file that tells GOsa who it is and how it should behave, and yes bestie we're doing the whole thing π
β¨ NAME β¨
gosa.conf β the GOsa configuration file π¦
π DESCRIPTION π
okay so, gosa.conf is where all of GOsa's configuration lives. And GOsa? GOsa is a powerful GPL'ed framework for managing accounts and systems in LDAP databases. Iconic behaviour, honestly π
gosa.conf is an XML style configuration file. It gets parsed by the GOsa web application during log in β that's when it reads the whole thing top to bottom, no skimming π. The file may contain extra tabs and newlines, purely for formatting purposes (live your truth, whitespace is not the enemy β¨). Tag keywords in the file are case-insensitive. Comments should be placed outside of XML tags and should be encapsulated inside of <!-- --> tags β do not put your commentary inside a tag, that's a vibe violation π
So what does it actually do? gosa.conf can be used to configure the look and feel, the behaviour and the access control of the GOsa webinterface. All three. Main character file, genuinely π
π Configuration layout π
The configuration has to be specified inside of the <conf> tags. It basically consists of three main parts:
- menu definition
- definition of subdialogs (tabbed dialogs)
- the main configuration β including information about several locations
Layout example, so you can literally see it π«Ά:
<?xml version="1.0"?>
<conf configVersion="...." >
<!-- Menu definition -->
<menu>
...
</menu>
<!-- Tabbed dialog definitions -->
...
<!-- Global setup -->
<main>
<!-- Location specific setups -->
<location name="">
...
</location>
</main>
</conf>
π Menu definition π
This tag defines the side and icon menu inside the interface. Defining an entry here is no guarantee to get it shown, though β only entries with matching ACL's get shown. So yes, you can write it down and still get ghosted π
There are two types of entries inside of the menu: section and plugin.
π« Defining a section π«
Open a <section> tag including a name attribute. This will show up in the menu as a new section later on. Own entries are not handled via I18N by default. Close the </section> tag after your plugin definitions, okay? Don't leave it hanging π
π« Defining a plugin π«
Open a <plugin> tag including a class attribute. The class should be present inside your GOsa setup β the entry will be ignored if it is not. (So if your plugin isn't showing up, bestie, check the class first, that's the plot twist π)
Plugins should have an acl entry, that allows GOsa to decide whether a user is allowed to see a plugin or not. The acl string matches with an ACL definition done inside of GOsa.
You can override an icon by specifying the icon attribute. Cute, right? π
For every plugin, you can provide at least seven additional hooks: precreate, preremove, premodify postcreate, postremove, postmodify and check.
These can be used to perform special actions when a plugin gets a create, delete, modify or check request. As a parameter, these keywords get a shell script or program to the task.
NOTE: Any hook call using data input from users (ie: passwords) should take measures to prevent shell injection attacks that could lead to RCE. Specifically with Passwords, Gosa has been updated to base64 encodenew_passwordandcurrent_passwordused for all hook calls to mitigate this risk. All other values getescapeShellArg()escaped only, which can be exploited in certain conditions. Any hook using a password value needs to base64 decode the value before using it. Like, seriously, do not skip the decode step, it will not go well for you π
Example password hook: to run a single command, like gam, to update passwords, in User Password premodify:
/usr/local/bin/gam update user %uid password $(echo %new_password|base64 -d)
π§ The create / delete / modify keywords π§
These keywords take a full executable path of a script. You can provide certain parameters in form of LDAP attributes. '%uid' will pass the current user id, '%dn' the current object dn, etc.
The script gets executed before(pre) and after(post) create, delete or modify tasks.
π§ The check keyword π§
This keyword takes a full executable path of a script. Check is triggered after you press the -I "Apply" or -I "OK" button. The complete LDAP entry as it will be written to the LDAP is passed to your script. If parts of the entry do not match some logic of your script, just print an error message to STDOUT. GOsa will show this message and abort the current process of saving the entry to the LDAP. Very "the vibes were off, so we're stopping" of it, honestly π₯
Example menu definition:
<menu>
<section name="My account">
<plugin acl="users/user:self" class="user" check="/usr/local/bin/test_user.sh" />
<plugin acl="users/samba:self" class="sambaAccount" postcreate="/usr/local/bin/create_share '%uid'" />
</section>
</menu>
π¦ Tabbed dialog definitions π¦
Tab definitions define the sub plugins which get included for certain tabbed dialogs. And listen: if you change something here, never (!) remove the primary (the first) tab tag which is defined. Most tabbed dialogs need a primary plugin. This is the one rule you do not break, periodt π
*tab should be looked for by a defined plugin. This one will take every tab defined class and will show it inside of a tabbed dialog with the header defined in name.
Example tabbed dialog definition:
<grouptabs>
<tab class="group" name="Generic" />
<tab class="environment" name="Environment" />
<tab class="appgroup" name="Applications" />
<tab class="mailgroup" name="Mail" />
</grouptabs>
π Main section π
The main section defines global settings, which might be overridden by each location definition inside of this global definition. So it's giving "the defaults" but every location can still do its own thing β¨
Example layout:
<main default="Example Net"
listSummary="false"
... >
<location name="Example Net"
hash="md5"
accountPrimaryAttribute="cn"
...
<referral uri="ldaps://ldap.example.net:636/dc=example,dc=net"
admin="cn=gosa-admin,dc=example,dc=net"
password="secret" />
</location>
</main>
π Generic options π
forceGlobalsbool β theforceGlobalsstatement enables PHP security checks to forceregister_globalsettings to be switched off.forceSSLbool β theforceSSLstatement enables PHP security checks to force encrypted access to the web interface. GOsa will try to redirect to the same URL β just withhttps://.warnSSLbool β thewarnSSLstatement enables PHP security checks to detect non encrypted access to the web interface. GOsa will display a warning in this case.modificationDetectionAttributestring β themodificationDetectionAttributestatement enables GOsa to check if an entry currently being edited has been modified from someone else outside GOsa in the meantime. It will display an informative dialog then. It can be set toentryCSNfor OpenLDAP based systems orcontextCSNfor Sun DS based systems.loggingstring β theloggingstatement enables event logging on GOsa side. Setting it totrue, GOsa will log every action a user performs viasyslog. If you usersyslogand configure it tomysqllogging, you can browse all events within GOsa. GOsa will not log anything, if the logging value is empty or set tofalse.loginAttributestring β theloginAttributestatement tells GOsa which LDAP attribute is used as the login name during login. It can be set touid,mailorboth.copyPastebool β thecopyPastestatement enables copy and paste for LDAP entries managed with GOsa.enableSnapshotsbool β theenableSnapshotsstatement enables a snapshot mechaism in GOsa. This enables you to save certain states of entries and restore them later on.snapshotBasedn β thesnapshotBasestatement defines the base where snapshots should be stored inside of the LDAP.snapshotURIuri β thesnapshotURIvariable defines the LDAP URI for the server which is used to do object snapshots.snapshotAdminDndn β thesnapshotAdminDnvariable defines the user which is used to authenticate when connecting tosnapshotURI.snapshotAdminPasswordstring β thesnapshotAdminPasswordvariable defines the credentials which are used in combination withsnapshotAdminDnandsnapshotURIin order to authenticate.configdn β theconfigstatement defines the LDAP base, where GOsa stores management information, such as site wide locking and user notifications.templateCompileDirectorypath β thetemplateCompileDirectorystatements defines the path, where the PHP templating engins smarty should store its compiled GOsa templates for improved speed. This path needs to be writeable by the user your webserver is running with. Yes, writeable, do not skip that part πtimezonestring β thetimezonestatements defines the timezone used inside of GOsa to handle date related tasks, such as password expiery, vacation messages, etc. The timezone value should be a unix conform timezone value like in/etc/timezone.honourIvbbAttributesbool β thehonourIvbbAttributesstatement enables the IVBB mode inside of GOsa. You need theivbb.schemafile from used by german authorities.strictNamingRulesbool β thestrictNamingRulesstatement enables strict checking of uids and group names. If you need characters like.or-inside of your accounts, set this tofalse.allowUidProposalModificationbool β theallowUidProposalModificationstatement enables the abilitiy to modify uid proposals when creating a new user from a template.honourUnitTagsbool β thehonourUnitTagsstatement enables checking of unitTag attributes when using administrative units. If this is set totrueGOsa can only see objects inside the administrative unit a user is logged into.rfc2307bisbool β therfc2307bisstatement enables rfc2307bis style groups in GOsa. You can usememberattributes instead ofmemberUidin this case. To make it work on unix systems, you've to adjust your NSS configuration to use rfc2307bis style groups, too.ppdPathpath β theppdPathvariable defines where to store PPD files for the GOto environment plugins.ppdGzipbool β theppdGzipvariable enables PPD file compression.resolutionspath β theresolutionsvariable defines a plain text file which contains additional resolutions to be shown in the environment and system plugins.htaccessAuthenticationbool β thehtaccessAuthenticationvariable tells GOsa to use either htaccess authentication or LDAP authentication. This can be used if you want to use i.e. kerberos to authenticate the users.gosaSupportURIURI β thegosaSupportURIdefines the major gosa-si server host and the password for GOsa to connect to it. can be used if you want to use i.e. kerberos to authenticate the users. The format is:
credentials@host:port
gosaSupportTimeoutinteger β thegosaSupportTimeoutsets a connection timeout for all gosa-si actions. SeegosaSupportURIfor details.
π Browser and display options π
listSummarytrue/false β thelistSummarystatement determines whether a status bar will be shown on the bottom of GOsa generated lists, displaying a short summary of type and number of elements in the list.sendCompressedOutput true/falseβ bestie, this one decides whether PHP sends compressed HTML pages out to browsers or not. It may increase or decrease performance depending on your network, so it's giving "it depends" energy π .storeFilterSettings true/falseβ tells GOsa whether it should store filter and plugin settings inside of a cookie πͺ.language stringβ the default language GOsa uses. Normally GOsa autodetects the language from your browser settings, but if that's not working or you just wanna force it, drop the language code here (i.e.defor german). Periodt πΈ.theme stringβ which theme is used to display GOsa pages. You can install some corporate identity like theme and/or modify certain templates to fit your needs within themes. Take a look at the GOsa FAQ for more information π.sessionLifetime intβ defines when a session will expire, in seconds. > Heads up for Debian systems: this will not work, because the sessions get removed by a cron job instead. Please modify the value inside of yourphp.iniinstead π.
π Password options π
passwordMinLength integerβ determines whether a newly entered password has to be of a minimum length. No more1234bestie π.passwordMinDiffer integerβ determines whether a newly entered password has to be checked to have at least n different characters.passwordProposalHook commandβ lets GOsa generate password proposals for you. Whenever you change a password, you can then decide whether to use the proposal or to manually specify a password. Iconic little helper β¨. Example:
/usr/bin/apg -n1
strictPasswordRules boolβ tells GOsa to check for UTF-8 characters in the supplied password. These characters can lead to non working authentications if UTF-8 and none UTF-8 systems locales get mixed π. The default is"true".handleExpiredAccounts boolβ enables shadow attribute tests during the login to the GOsa web interface and forces password renewal or account lockout π.useSaslForKerberos boolβ defines the way the kerberos realm is stored in theuserPasswordattribute. Set it totruein order to get{sasl}user@REALM.NET, or tofalseto get{kerberos}user@REALM.NET. The latter is outdated, but may be needed from time to time π.
π¦ LDAP options π¦
ldapMaxQueryTime integerβ tells GOsa to stop LDAP actions if there is no answer within the specified number of seconds β±οΈ.schemaCheck boolβ enables or disables schema checking during login. It is recommended to switch this on in order to let GOsa handle object creation more efficient β.ldapTLS boolβ enables or disables TLS operating on LDAP connections π.accountPrimaryAttribute cn/uidβ tells GOsa how to create new accounts. Possible values areuidandcn. In the first case GOsa creates uid style DN entries:
uid=superuser,ou=staff,dc=example,dc=net
In the second case, GOsa creates cn style DN entries:
cn=Foo Bar,ou=staff,dc=example,dc=net
If you choose "cn" to be your accountPrimaryAttribute you can decide whether to include the personal title in your dn by selecting personalTitleInDN π.
accountRDN patternβ tells GOsa to use a placeholder pattern for generating account RDNs. A pattern can include attribute names prefaced by a%and normal text:
accountRDN="cn=%sn %givenName"
This will generate a RDN consisting of cn=.... filled with surname and given name of the edited account. > This option disables the use of accountPrimaryAttribute and personalTitleInDn in your config. The latter attributes are maintained for compatibility π«Ά.
personalTitleInDN boolβ tells GOsa to include the personal title in user DNs whenaccountPrimaryAttributeis set to"cn".userRDN stringβ defines the location where new accounts will be created inside of defined departments. The default isou=people.groupsRDN stringβ defines the location where new groups will be created inside of defined departments. The default isou=groups.sudoRDN stringβ defines the location where new groups will be created inside of defined departments. The default isou=groups.sambaMachineAccountRDN stringβ defines the location where GOsa looks for new samba workstations π».ogroupRDN stringβ defines the location where GOsa creates new object groups inside of defined departments. Default isou=groups.serverRDN stringβ defines the location where GOsa creates new servers inside of defined departments. Default isou=servers.terminalRDN stringβ defines the location where GOsa creates new terminals inside of defined departments. Default isou=terminals.workstationRDN stringβ defines the location where GOsa creates new workstations inside of defined departments. Default isou=workstations.printerRDN stringβ defines the location where GOsa creates new printers inside of defined departments. Default isou=printers.componentRDN stringβ defines the location where GOsa creates new network components inside of defined departments. Default isou=components.phoneRDN stringβ defines the location where GOsa creates new phones inside of defined departments. Default isou=phones.phoneConferenceRDN stringβ defines the location where GOsa creates new phone conferences inside of defined departments. Default isou=conferences.faxBlocklistRDN stringβ defines the location where GOsa creates new fax blocklists inside of defined departments. Default isou=blocklists.systemIncomingRDN stringβ defines the location where GOsa looks for new systems to be joined to the LDAP. Default isou=incoming.systemRDN stringβ defines the base location for servers, workstations, terminals, phones and components. Default isou=systems.ogroupRDN stringβ (yep, it's listed a second time in the original, and I'm not erasing history bestie π ) defines the location where GOsa looks for object groups. Default isou=groups.aclRoleRDN stringβ defines the location where GOsa stores ACL role definitions. Default isou=aclroles.phoneMacroRDN stringβ defines the location where GOsa stores phone macros for use with the Asterisk phone server. Default isou=macros,ou=asterisk,ou=configs,ou=systems.faiBaseRDN stringβ defines the location where GOsa looks for FAI settings. Default isou=fai,ou=configs,ou=systems.faiScriptRDN,faiHookRDN,faiTemplateRDN,faiVariableRDN,faiProfileRDN,faiPackageRDN,faiPartitionRDN stringβ these statements define the location where GOsa stores FAI classes. The complete base for the corresponding class is an additive offaiBaseRDNand this value π.deviceRDN stringβ defines the location where GOsa looks for devices. Default isou=devices.mimetypeRDN stringβ defines the location where GOsa stores mime type definitions. Default isou=mimetypes.applicationRDN stringβ defines the location where GOsa stores application definitions. Default isou=apps.ldapFilterNestingLimit integerβ can be used to speed up group handling for groups with several hundreds of members π₯. The default behaviour is that GOsa will resolv thememberUidvalues in a group to real names. To achieve this, it writes a single filter to minimize searches. > Some LDAP servers (namely Sun DS) simply crash when the filter gets too big π. You can set a member limit, where GOsa will stop to do these lookups.ldapSizelimit integerβ tells GOsa to retrieve the specified maximum number of results. The user will get a warning that not all entries were shown β οΈ.ldapFollowReferrals boolβ tells GOsa to follow LDAP referrals.
π§ Account creation options π§
uidNumberBase integerβ defines where to start looking for a new free user id. This should be synced with youradduser.confto avoid overlappinguidNumbervalues between local and LDAP based lookups. TheuidNumberBasecan even be dynamic. Take a look at thebaseIdHookdefinition below π.gidNumberBase integerβ defines where to start looking for a new free group id. This should be synced with youradduser.confto avoid overlappinggidNumbervalues between local and LDAP based lookups. ThegidNumberBasecan even be dynamic. Take a look at thenextIdHookdefinition below.idAllocationMethod traditional/poolβ defines how GOsa generates numeric user and group id values. If it is set totraditional, GOsa will create a lock and perform a search for the next free ID. The lock will be removed after the procedure completes.poolwill use thesambaUnixIdPoolobjectclass settings inside your LDAP. > This one is unsafe, because it does not check for concurrent LDAP access and already used IDs in this range π. On the other hand it is much faster ποΈ.minId integerβ defines the minimum assignable user or group id to avoid security leaks with uid 0 accounts. This is used for the traditional method.uidNumberPoolMin/gidNumberPoolMin integerβ defines the minimum assignable user/group id for use with the pool method.uidNumberPoolMax/gidNumberPoolMax integerβ defines the highest assignable user/group id for use with the pool method.nextIdHook pathβ defines a script to be called for finding the next free id for users or groups externaly. It gets called with the current entry"dn"and the attribute to be ID'd. It should return an integer value π’.useAutoComplete boolβ allows you to enable/disable the auto-completion mode when searching for LDAP objects in a given container. Enable it if you encounter long typing delays in GOsaΒ²'s search field β¨οΈ.passwordDefaultHash stringβ π
passwordDefaultHash string
okay so this one picks the default password hash for brand-new accounts. the valid values are:
crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, crypt/sha256, crypt/sha512, md5, sha, ssha, smd5, clear and sasl.
the full list shows up in the "Password storage" pull-down menu inside every user's "Generic/Personal Information" view. π and heads up bestie β these values get overridden when you're using templates, so don't come crying to me when your template wins.
idGenerator string
the idGenerator statement is the β¨automatic user idβ¨ machine. there are two basic functions it supports, and yes you can combine them:
a) using attributes π
you can drop LDAP attributes (rn it's only sn and givenName) inside curly braces {} and put a percent sign in front. optionally you can strip it down to a number of characters, specified inside []. like:
idGenerator="{%sn}-{%givenName[2-4]}"
that generates an ID from the full surname, adds a dash, then adds at least the first two characters of givenName. if that ID actually gets used, it'll use up to four characters. and if no automatic generation is possible? a lil input box pops up, no biggie.
b) using automatic id's π¦
like, say you write:
idGenerator="acct{id:3}"
that generates a three digit id with the next free entry appended to "acct".
idGenerator="acct{id!1}"
that one generates a one digit id with the next free entry appended to "acct" β if needed.
idGenerator="ext{id#3}"
and this generates a three digit random number appended to "ext". π²
β¨ Samba options β¨
sambaSID string
the sambaSID statement defines a samba SID if one isn't available inside the LDAP. you can grab the current sid with net getlocalsid.
sambaRidBase integer
the sambaRidBase statement defines the base id to add to ordinary sid calculations β again, only if it's not available inside the LDAP.
sambaHashHook string
the sambaHashHook field, if blank, means samba passwords are not generated or manipulated. if it's not blank, Gosa will generate an NTLM hash whenever a user's password is set, and will lock/unlock it when the account gets locked/unlocked using internal functions. π LM hashing is intentionally broken here (it sets the LM hash to a non-valid string) because that method is ancient, broken, and rainbow tables exist for literally every password that uses it. IFF you truly need it, set this field to "NTLM+LM" and a valid LM hash will be set alongside the NTLM one. note that Gosa does not use this to specify an actual Hook command β it only cares whether the field is empty, not empty, or contains "NTLM+LM".
safe default: "NTLM" or just leave it blank, bestie. π«Ά
sambaIdmapping bool
the sambaIdMapping statement tells GOsa to maintain sambaIdmapEntry objects. depending on your setup this can drastically improve your windows login performance. π₯
π Asterisk options π
ctiHook path
the ctiHook statement defines a script to run when someone clicks a phone number inside the addressbook plugin. it gets called with two parameters:
ctiHook $source_number $destination_number
this script can be used to do automated dialing straight from the addressbook. iconic.
π Mail options π
mailMethod Cyrus/SendmailCyrus/Kolab/Kolab22
the mailMethod statement tells GOsa which mail method the setup should use to talk to a possible mail server. leave this undefined if your mail method doesn't match the predefined ones.
- Cyrus maintains accounts and sieve scripts in cyrus servers.
- Kolab/Kolab22 is like cyrus, but lets the kolab daemon maintain the accounts.
- SendmailCyrus is based on sendmail LDAP attributes.
cyrusUseSlashes bool
the cyrusUseSlashes statement decides whether GOsa uses "foo/bar" or "foo.bar" namespaces in IMAP. Unix style is with slashes. π
cyrusDeleteMailbox bool
the cyrusDeleteMailbox statement decides whether GOsa should remove the mailbox from your IMAP server, or keep it around after the account is deleted in LDAP.
cyrusAutocreateFolders string
the cyrusAutocreateFolders statement holds a comma separated list of personal IMAP folders that should get created along with initial account creation.
postfixRestrictionFilters path
the postfixRestrictionFilters statement defines a file to include for the postfix module, so user defined restriction filters can be displayed.
postfixProtocols path
the postfixProtocols statement defines a file to include for the postfix module, so user defined protocols can be displayed.
mailAttribute mail/uid
the mailAttribute statement decides which attribute GOsa will use to create accounts. valid values are mail and uid.
imapTimeout Integer (default 10)
the imapTimeout statement sets the connection timeout for imap actions. β°
mailFolderCreation
every mail method has its own way to create mail accounts like share/development or shared.development@example.com, which is used to identify the accounts, set quotas or add acls.
to override the method's default account creation syntax, you can set the mailFolderCreation option.
Examples
mailFolderCreation="%prefix%%cn%" => "shared.development"
mailFolderCreation="my-prefix.%cn%%domain%" => "my-prefix.development@example.com">
Placeholders
%prefix%β the method's default prefix. (depends oncyrusUseSlashes=FALSE/TRUE)%cn%β the groups/users cn.%uid%β the users uid.%mail%β the objects mail attribute.%domain%β the domain part of the objects mail attribute.%mailpart%β the user address part of the mail address.%uattrib%β depends onmailAttribute="uid/mail".
mailUserCreation
this attribute lets you override the user account creation syntax, see the mailFolderCreation description for more details. π§
Examples
mailUserCreation="%prefix%%uid%" => "user.foobar"
mailUserCreation=my-prefix.%uid%%domain%" => "my-prefix.foobar@example.com"
vacationTemplateDirectory path
the vacationTemplateDirectory statement sets the path where GOsa will look for vacation message templates. default is /etc/gosa/vacation.
example template /etc/gosa/vacation/business.txt:
DESC:Away from desk
Hi, I'm currently away from my desk. You can contact me on
my cell phone via %mobile.
Greetings,
%givenName %sn
π οΈ Debug options π οΈ
displayErrors bool
the displayErrors statement tells GOsa to show PHP errors in the upper part of the screen. this should be disabled in productive deployments, because there might be some important passwords hanging around. π
ldapstats bool
the ldapstats statement tells GOsa to track LDAP timing statistics to the syslog. this can help you find indexing problems or bad search filters. π
ignoreAcl dn
the ignoreAcl value tells GOsa to ignore complete ACL sets for the given DN. add your DN here and you'll be able to restore accidentally dropped ACLs. lifesaver fr.
debugLevel integer
the debugLevel value tells GOsa to display certain information on each page load. the value is an AND combination of the following byte values:
DEBUG_TRACE= 1DEBUG_LDAP= 2DEBUG_MYSQL= 4DEBUG_SHELL= 8DEBUG_POST= 16DEBUG_SESSION= 32DEBUG_CONFIG= 64DEBUG_ACL= 128DEBUG_SI= 256DEBUG_MAIL= 512
π LDAP resource definition π
for every location you define inside your gosa.conf, you need at least one entry of the type referral. these entries define the way how to connect to some directory service.
Example:
<referral uri="ldap://ldap.example.net/dc=example,dc=net"
admin="cn=gosa-admin,dc=example,dc=net"
password="secret" />
uri is a valid LDAP uri extended by the base this referral is responsible for. admin is the DN which has permission to write LDAP entries. and password is the corresponding password for this DN. π
you can define a set of referrals if you have several servers to connect to.
π₯οΈ Settings for the environment plugin π₯οΈ
in order to make full use of the environment plugin, you may want to define the location where kiosk profiles will be stored on the server's harddisk.
this is done by the kioskPath keyword defined within the environment class definition inside your gosa.conf.
Example:
<plugin acl="users/environment"
class="environment"
kioskPath="/var/spool/kiosk"/>
make sure that this path is writeable by GOsa. π
π§ Settings for the FAI plugin π§
the FAI plugin can be used in a way that it generates branched or freezed releases inside your repository. specifying the postcreate and postmodify keywords in the servrepository definition calls the provided script as a hook when adding or removing branches. this script should do the rest inside of your repository.
Example:
<tab class="servrepository"
repositoryBranchHook="/opt/dak/bin/get_extra_repos"
postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
%lock_dn keeps the base DN of the source branch, %lock_name the name of the new branch and %lock_type is either "freeze" or "branch".
the repositoryBranchHook outputs additional releases that are not retrieveable with the standard GOsa/FAI methods.
if you have only one release, or want to define a default release to be shown by GOsa, define the defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..." within the faiManagement class definition. β
π Settings for the addressbook plugin π
the addressbook plugin can be configured to store the addressbook data on a special location. use the addressbookBaseDN keyword within the addressbook class definition inside your gosa.conf to configure this location.
Default: ou=addressbook.
βοΈ Settings for system plugins βοΈ
for the workstationStartup and terminalStartup classes, you can define the systemKernelsHook keyword. it can load additional kernels that are not retrieveable by standard GOsa/FAI mechanisms.
in order to make use of SNMP information, you can set the snmpCommunity in the terminfo class definition.
to enable the burn CD image function, you can specify the systemIsoHook in the workgeneric class. you will get a CD symbol in the systems list β which calls the hook if pressed. π₯
π AUTHOR π
gosa.conf(5) was written by Cajus Pollmeier for the GOsa project ( http://www.gosa-project.org ). absolute legend behavior, no cap. π
okay bestie that's the whole entire page, we did it!! π this was GOsa v2.6, dated 2008-04-07, and it's the gosa.conf(5) page. go forth and configure, you main character. periodt. π
β¨π¦
π¦ where this page comes from
- debian bookworm: gosa 2.8~git20230203.10abe45+dfsg-1+deb12u2 Β· GPL-2.0-or-later
- debian trixie: gosa 2.8~git20230203.10abe45+dfsg-19 Β· GPL-2.0-or-later
- ubuntu noble: gosa 2.8~git20230203.10abe45+dfsg-11 Β· GPL-2.0-or-later
- ubuntu resolute: gosa 2.8~git20230203.10abe45+dfsg-19 Β· GPL-2.0-or-later
- ubuntu stonking: gosa 2.8~git20230203.10abe45+dfsg-19 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms