AppArmor is the Linux security module that uses per-program profiles and was originally developed by Immunix.
Rather than identifying permissions only by a user or group, AppArmor attaches a security profile to an executable. The profile can specify which files and capabilities that program may access, helping contain damage if the application is compromised or behaves unexpectedly.
Immunix developed the technology in the late 1990s, and Novell later acquired Immunix and continued AppArmor’s development. Canonical subsequently became its major sponsor, helping bring AppArmor into Ubuntu and other Linux systems. It entered the mainline Linux kernel in the 2.6.36 era.
AppArmor is commonly contrasted with SELinux. Both are Linux Security Modules and can enforce mandatory access controls, but AppArmor’s policy model is generally path-based and organized around named programs. SELinux primarily uses labels and a broader policy language. TOMOYO Linux and Smack are also security modules, but neither is the profile system described here.