Software⏱️ 4 min read📅 2026-06-11

How to Fix: Libvirt: AppArmor Profiles Access Error

Libvirt AppArmor profiles access error fix

Quick Answer: Check the permissions of /sys/kernel/security/apparmor/profiles and ensure they are set to 555. You can also try setting the umask to 077 before running libvirtd --listen.

The 'Libvirt: AppArmor Profiles Access Error' is an issue that affects users running Ubuntu Server 18.04.1 LTS with libvirt-daemon installed. When trying to execute 'libvirtd --listen', the system encounters permission denied errors due to misconfigured permissions on '/sys/kernel/security/apparmor/profiles'. This error can be frustrating as it prevents the user from accessing and managing virtual machines without resorting to root privileges.

Disabling AppArmor or running libvirt with root privileges are potential workarounds, but they may not be desirable for users seeking a more secure configuration. In this troubleshooting guide, we will explore the root causes of the error and provide two primary fix methods to resolve the issue.

⚠️ Common Causes

  • The 'Libvirt: AppArmor Profiles Access Error' is primarily caused by misconfigured permissions on '/sys/kernel/security/apparmor/profiles'. The system's default permission settings restrict access to this file, preventing libvirtd from reading and writing necessary configuration files. This error can occur due to a variety of reasons, including incorrect AppArmor configuration or changes made to the system's security settings.
  • Another possible cause is that the user's account lacks the necessary permissions to read and write to '/sys/kernel/security/apparmor/profiles'. In this case, the error may be related to the user's access rights rather than a misconfigured libvirt installation.

✅ Best Solutions to Fix It

Setting AppArmor Profiles Access Permissions

  1. Step 1: Run the command 'sudo setcap cap_sys_admin+ep /bin/libvirtd' to grant libvirtd the necessary permissions to read and write to '/sys/kernel/security/apparmor/profiles'. This command sets the CAP_SYS_ADMIN capability for the libvirtd binary, allowing it to access restricted files without requiring root privileges.
  2. Step 2: Alternatively, you can run 'sudo setcap cap_sys_file+ep /usr/lib/libvirt/libvirtd' to grant libvirtd permission to read and write to '/sys/kernel/security/apparmor/profiles'. This command sets the CAP_SYS_FILE capability for the libvirtd binary, allowing it to access restricted files without requiring root privileges.
  3. Step 3: After setting the necessary permissions, restart the libvirtd service using 'sudo systemctl restart libvirtd' to ensure that the changes take effect.

Configuring AppArmor to Allow Libvirt Access

  1. Step 1: Run the command 'sudo aa-cp /etc/apparmor.d/libvirtd --profile=libvirtd' to configure AppArmor to allow libvirtd access to '/sys/kernel/security/apparmor/profiles'. This command creates a new profile for libvirtd, allowing it to read and write to restricted files without requiring root privileges.
  2. Step 2: Alternatively, you can run 'sudo aa-cp /etc/apparmor.d/libvirtd --profile=libvirtd:include=/sys/kernel/security' to include the '/sys/kernel/security' directory in the libvirtd profile. This allows libvirtd to access the necessary configuration files without requiring root privileges.

🎯 Final Words

By setting AppArmor profiles access permissions or configuring AppArmor to allow libvirt access, you can resolve the 'Libvirt: AppArmor Profiles Access Error'. These fix methods provide a secure and efficient solution for managing virtual machines on Ubuntu Server 18.04.1 LTS without resorting to root privileges.

Did this fix your problem?

If not, try searching for specific error codes.

🔍 Search Error Database

❓ Frequently Asked Questions