SBCTL.CONF(5)
π sbctl.conf β the sbctl configuration file, bestie
Okay so real talk: sbctl.conf is the config file for sbctl (that's the sbctl.conf manual, page 5, mwah π). It's a YAML file β yes, indentation matters, don't come for me β and it gets read on startup if it's actually there. No file? No problem. But if you do have one, it can be your whole initial-setup moment for a fresh sbctl install. β¨
πΈ SYNOPSIS πΈ
/etc/sbctl/sbctl.conf
that's the whole vibe. one path. iconic.
π¦ DESCRIPTION π¦
The sbctl configuration file is a YAML file. It is read on startup if present.
The file can be used for initial setup of a sbctl installation.
π CONFIGURATION DIRECTORIES AND PRECEDENCE π
So rn the config file is only read from /etc/sbctl. That's it, that's the whole search path β no scavenger hunt across your filesystem. This might change in the future, so likeβ¦ stay tuned bestie π
β¨ OPTIONS β¨
keydir: /path/to/key/dirβ tells sbctl where to go looking for your keys. Default:/var/lib/sbctl/keysguid: /path/to/guid/fileβ the location of the file that defines the user created GUID. That GUID is what uniquely identifies the list of certificates stored in the EFI variables, so yeah, she's important π Default:/var/lib/sbctl/GUIDfiles_db: /path/to/files/jsonβ the location of the json file storing the files sbctl will sign. Default:/var/lib/sbctl/files.jsonbundles_db: /path/to/bundles/jsonβ the location of the json file storing the bundles sbctl will sign. Default:/var/lib/sbctl/bundles.jsonlandlock: boolβ turns the landlock sandboxing of sbctl on or off. Default:truedb_additions: [ options... ]β include additional keys or checksums into the authorization database for Secure Boot. These values are synonymous with the flags passed tosbctl enroll-keys. Valid values:microsoft,tpm-eventlog,firmware-builtin,customfiles: [ [path: /path/to/file output: /path/to/output ], ... ]β a list of files sbctl will sign upon setup. It gets used to seed thefiles_dbduring initial setup. π±pathβ absolute path to a file that sbctl should sign.outputβ an optional absolute output path for the signed file.
keys: {pk: {...}, kek: {...}, db: {...}}β a key-value pair for all the keys in the key hierarchy used for Secure Boot. It's used for the initial bootstrap during setup. πpkkekdb
Each of the hierarchies can specify key type and location for the private key and certificate file independent of each other β so yeah, you can mix and match, no cap. This lets users keep some keys on different storage mediums depending on needs. The classic example: keep the db key as an unencrypted file that's easily accessible for signing, and put the PK on a hardware backed enclave to better secure the key material. Big brain energy fr fr π§ β¨
privkey: /path/to/privatekey/fileβ path to the private key.
Defaults:
pk:/var/lib/sbctl/keys/PK/PK.keykek:/var/lib/sbctl/keys/KEK/KEK.keydb:/var/lib/sbctl/keys/db/db.key
pubkey: /path/to/certificate/fileβ path to the public key.
Default:
pk:/var/lib/sbctl/keys/PK/PK.pemkek:/var/lib/sbctl/keys/KEK/KEK.pemdb:/var/lib/sbctl/keys/db/db.pem
type: fileβ the type of key used for this signing key.
Only the key type of file is currently supported by sbctl. That's the whole menu, bestie.
Default: file
π EXAMPLE π
Here's a whole /etc/sbctl/sbctl.conf with all the default values β copy it, love it, make it yours π«Ά
---
keydir: /var/lib/sbctl/keys
guid: /var/lib/sbctl/GUID
files_db: /var/lib/sbctl/files.json
bundles_db: /var/lib/sbctl/bundles.json
landlock: true
db_additions:
- microsoft
files:
- path: /boot/vmlinuz-linux
output: /boot/vmlinuz-linux
- path: /efi/EFI/Linux/arch-linux.efi
output: /efi/EFI/Linux/arch-linux.efi
keys:
pk:
privkey: /var/lib/sbctl/keys/PK/PK.key
pubkey: /var/lib/sbctl/keys/PK/PK.pem
type: file
kek:
privkey: /var/lib/sbctl/keys/KEK/KEK.key
pubkey: /var/lib/sbctl/keys/KEK/KEK.pem
type: file
db:
privkey: /var/lib/sbctl/keys/db/db.key
pubkey: /var/lib/sbctl/keys/db/db.pem
type: file
π SEE ALSO π
sbctl(8) β go read her next, she's the main character π
π AUTHORS π
- Morten Linderud
<morten@linderud.pw>
and that's the tea β β this page isSBCTL.CONF(5), dated11/12/2025. tysm for reading, you ate that ngl π β¨ π¦
π¦ where this page comes from
- opensuse-leap 16.0: sbctl 0.18-bp160.1.1 Β· MIT
- opensuse-leap 16.0: sbctl 0.18-bp160.1.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms