About LinSec
News
Download
Documentation
Developers

OSNY
ETF
LinSec

Capability algorithm change

Capability inheritance algorithm has changed during the testing phase and after writing the first version of the LinSec specification. It has been decided to leave the original document unchanged and publish all the changes as a set of separate documents.

The new capability inheritance algorithm, implemented in kernel/linsec_exec.c function linsec_compute_creds is as follows:

I* = I & fA

P* = (fF | (I* | uP)) & uB & gB

E* = P* & fE

Where I*, P* and E* are the new inheritable, permitted and effective capability sets respectively. fA, fF and fE are file allowed, forced and effective capability sets. uB is user bounding set and gB is global bounding set.

The change of semantics is: inheritance is controlled both by the executing process' inheritable set and the allowed set of the executed program. In this way, the inherited capabilities can be controlled.