as far as my understanding goes, an OS needs to implement some sort of reference monitor, as the entity which grants or denies permissions as an access control decision.
Furthermore, I think the Linux kernel does this by providing Linux Security Modules (LSM) or more precisely "hooks", which enable arbitrary "reference monitor concept implementations" to decide on access control decisions.
Among others, SELinux and AppArmor are officially included in the Linux code base. SELinux for instance is pre-compiled and shipped with Debian. However, as stated in the official Debian documentation it is not enabled by default. AppArmor is not even pre-compiled and shipped.
Hence, the following questions results: If neither SELinux nor AppArmor (and not the other less widley adopted LSMs) are enabled by default, is there even a LSM enabled by default? If not, what happens to the hooking-interface and how are access decisions made then? Which access control mechanism (DAC, MAC; RBAX, ABAC etc.) is used by default (assuming Debian)?

1 Answer 1


I've found out by myself.
By default, so without an activated LSM, Linux uses a discretionary access control (DAC) model, as the user (e.g. john or even root) decide by his own whom access is granted.
On the other side, those LSMs (like SELinux or AppArmor) can be activated and configured. They are managed by an "outside" party, like an organizational administrator, which is not part of the OS users. This administrative entity specifies access policies, which overpower the DAC ones. This is implemented by the Linux kernel hooks, which are triggered for certain events like file open or write and are then evaluated.

The resulting access control mechanism is dependent on the the particular LSM implementation. So in case of SELinux it is MAC (as an administrative entity specifies mandatory policies).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .