Legacy Applications and the Privilege Model
To accommodate legacy applications, the implementation of privileges works with both the superuser
and the privilege models. The kernel automatically tracks the PRIV_AWARE flag, which indicates
that a program has been designed to work with privileges. Consider a child
process that is not aware of privileges. Any privileges that were inherited from
the parent process are available in the child's permitted and effective sets. If
the child process sets a UID to 0, the child process might not
have full superuser capabilities. The process's effective and permitted sets are restricted to those
privileges in the child's limit set. Thus, the limit set of a
privilege-aware process restricts the root privileges of child processes that are not aware of
privileges.