« Back to Settings for systemd units

ProtectKernelModules setting

This systemd unit setting was added since systemd 232.

Purpose: define if kernel modules may be loaded


Kernel modules can provide additional functionality when using a modular Linux kernel, which is applicable to most systems. When this setting is set to yes, it tries to prevent the unit from loading kernel modules. This is achieved by removing the CAP_SYS_MODULE from the capability bounding set.

Generic advice

Most units do not need the permission to load kernel modules, so typically a unit can be configured with ProtectKernelModules=true.


This setting expects a boolean (yes or no).

  • no: allow kernel module loading - default
  • yes: explicit loading of kernel modules will be denied

Example to show the current value of ProtectKernelModules for the dmesg service:

systemctl show --property=ProtectKernelModules dmesg.service


Small picture of Michael Boelen

This article has been written by our Linux security expert Michael Boelen. With focus on creating high-quality articles and relevant examples, he wants to improve the field of Linux security. No more web full of copy-pasted blog posts.

Discovered outdated information or have a question? Share your thoughts. Thanks for your contribution!

Mastodon icon