KAFS-CLIENT.CONF(5)
KAFS-CLIENT.CONF(5) π
okay bestie, welcome to the kafs-client manual, section 5. we're talking about /etc/kafs/client.conf β the kAFS filesystem configuration file. yes, the whole thing. grab a strawberry π, we're going in.
β¨ NAME β¨
/etc/kafs/client.conf β kAFS filesystem configuration. that's it, that's the name, she's simple and she's iconic π
π¦ DESCRIPTION π¦
so like, configuration info for the in-kernel kAFS filesystem can be provided in the /etc/kafs/ directory. and it may include the following:
- a list of cells to be preconfigured
- fallback addresses for each cell
- the name of the default cell (the
@cellsubstitution) - a list of strings for (the
@syssubstitution)
when the afs.mount service is started by systemd(1), a configuration service (kafs-config.service) runs first and loads the configuration into the kernel from the client.conf file. this contains directives to include other things, such as the contents of the client.d/ directory and the generic public cell database. it's giving "prep work before the main event" π
once the afs.mount service is started (or if an AFS volume is manually mounted), if a mountpoint is triggered, the kernel will upcall by means of request-key(8) to look up addresses for the Volume Location servers for the named cell. this will also parse the configuration. no cap, the kernel is out here doing side quests πΈ
π CONFIGURATION FILE FORMAT π
the file format is based on the MIT Kerberos configuration file format. cute, borrowing from a classic. there are a couple of general directives:
include /path/to/fileβ this includes the contents of the named file in the parse at this point.includedir /path/to/dir/β this includes the files in the named directory in the parse at this point. files that have names beginning with.or ending with~are ignored. (they're in their private era, we leave them alone π)
leading and trailing whitespace on a line is ignored. any line otherwise beginning with a # character is considered a comment and ignored.
any line that contains a label bounded by square brackets, e.g. [cells], by itself on that line denotes a switch to the section specified by that label.
configuration data is specified within a named section as a series of key = value pairs, where a value may be one of nothing, an unquoted string, a quoted string or a braced lists containing further key=value pairs. whitespace either side of the = symbol is ignored.
for example:
[cells]
rivendell.example.com = {
description = "Last Homely Cell"
use_dns = yes
servers = {
elrond.rivendell.example.com = {
address = 192.0.2.23
}
}
}
if two or more consecutive clauses specify values for the same key sequence (so cells:rivendell.example.com:use_dns, for example), then they are merged together to form a single list. if a single value is expected for a configuration item, the last element in the list is taken. last one standing, periodt π
to prevent overriding by subsequent conflicting configuration, an asterisk can be placed after the closing brace in a braced list to indicate that that list is closed, for example:
[cells]
rivendell.example.com = {
description = "Foo"
use_dns = no
}*
strings that are intepreted as boolean values are classed as false if they match one of: 0, f, false, n, no, or off. boolean values are classed as true if they match one off: 1, t, true, y, yes, or on. boolean matches are case-independent. the vibe check is case-insensitive besties β¨
π GENERAL SETTINGS π
the first section contains general system-level settings shared between all utilities and the kernel. this is denoted by the section label [defaults].
the system settings that may be changed are configured in this section with the following key-value pairs:
thiscell = <cellname>β this sets the name of the local cell. this will be used to configure the@cellpath substitution and will also supply the default cellname foraklog-kafs(1).sysname = [<systype>]*β this specifies a (potentially empty) list of strings which the kernel should attempt to substitute in turn for@sysat the end of a filename until a match is found.
π CELL DEFINITIONS π
the second section contains a list of preconfigured cells, to be used in preloading the cell list in /afs and also to provide fallback or override address data for locating Volume Location servers. this is denoted by the section label [cells].
within the cell list, each cell is declared with a key=value pair, where the key is the name of the cell and the value is a braced list indicating the details, e.g.:
[cells]
rivendell.example.com = {
...
}
a cell definition may contain any number of key=value pairs. the keys that are taken note of are:
description = <string>β this is a text description for the cell.show_cell = <boolean>β whether a cell should be shown in/afs.use_dns = <boolean>β whether address look ups for a cell may use the DNS.kerberos_realm = <string>β the name of the Kerberos realm to use for a cell by default.servers = { ... }β a list of servers for the cell, where each element in the list is akey=valuepair, where the key is the name of a server and the value is a braced section of the details for that server.
the elements in the list of server details attached to each server can comprise the following keys:
type = vlserverβ the server is an AFS Volume Location server. this is the default.type = ptserverβ the server is an AFS Protection server.address = [<protocol>/]<address>[:<port>]β specify a single address for a server. theaddressis required and can be a single IPv4 or a single IPv6 address, and may be brackets with square brackets (to avoid confusion with the port number, if specified). theprotocolis optional; currently onlyudpis supported. theportis also optional and may be specified to change the UDP port from the default for the server type.
π EXAMPLE π
[defaults]
thiscell = rivendell.example.com
sysname = fedora28_x86 amd64_linux
[cells]
corp.example.com = {
description = "Valinor Corporation cell"
use_dns = yes
servers = {
manwe.corp.example.com = {
address = 2001:db8:123::13
address = 203.0.113.19
}
ulmo.corp.example.com = {
address = [2001:db8:123::750c:1234]:6666
address = 203.0.113.3:6666
}
aule.corp.example.com = {
address = udp/[2001:db8:123::abcd:9090]
address = udp/203.0.113.189
}
namo.corp.example.com = {
type = ptserver
address = 2001:db8:123::8888
address = 203.0.113.88
}
}
}
rivendell.example.com = {
description = "Last Homely Cell"
servers = {
elrond.rivendell.example.com = {
address = 192.0.2.23
}
arwen.rivendell.example.com = {
address = 192.0.2.75
}
}
}
πΈ SEE ALSO πΈ
kafs(7), kafs-check-config(8), kafs-preload(8), systemd(1)
π«Ά COPYRIGHT π«Ά
Copyright (C) 2019 Red Hat, Inc. All Rights Reserved.
Written by David Howells (dhowells@redhat.com)
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
and that's the whole page bestie, you ate it up π
β¨ this was kafs-client version 0.9, dated 2026-08-27, and it lives under the KAFS-CLIENT.CONF(5) manual. go configure something iconic π¦π
π¦ where this page comes from
- fedora 43: kafs-client 0.9-1.fc43 Β· GPL-2.0-or-later
- fedora 43: kafs-client 0.9-1.fc43 Β· GPL-2.0-or-later
- fedora 44: kafs-client 0.9-1.fc44 Β· GPL-2.0-or-later
- fedora 44: kafs-client 0.9-1.fc44 Β· 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