This document discusses type enforcement access control in SELinux. It explains that in SELinux, access must be explicitly granted through allow rules that specify the source type, target type, object class, and permissions. It uses the example of allowing a user_t process to access bin_t files to illustrate the syntax of allow rules. It then discusses the problems of domain transitions and how SELinux uses entrypoint permissions on executables and type_transition rules to securely allow processes to transition domains and access resources with least privilege, using the example of allowing the passwd program to access the shadow password file when run by a user.