Linux Security and Isolation APIs Essentials course outline
 
        - Course Introduction
- Classical Privileged Programs
            
                - A simple set-user-ID program
- Saved set-user-ID and saved set-group-ID
- Changing process credentials
- A few guidelines for writing privileged programs
 
- Capabilities
            
                - Process and file capabilities
- Permitted and effective capabilities
- Setting and viewing file capabilities
- Text-form capabilities
- Capabilities and execve()
- Capabilities and UID transitions
 
- Namespaces
            
                - An example: UTS namespaces
- Namespaces commands
- Namespaces demonstration (UTS namespaces)
- Namespace types and APIs
- Mount namespaces
- PID namespaces
 
- Namespaces APIs (*)
            
                - API Overview
- Creating a child process in new namespaces: clone()
 
- User Namespaces
            
                - Overview of user namespaces
- Creating and joining a user namespace
- User namespaces: UID and GID mappings
- Combining user namespaces with other namespaces
 
- User Namespaces and Capabilities
            
                - User namespaces and capabilities
- What does it mean to be superuser in a namespace?
 
- Cgroups: Introduction
            
                - Preamble
- What are control groups?
- An example: the pids controller
- Creating, destroying, and populating a cgroup
- Enabling and disabling controllers
 
- Cgroups: Other Controllers (*)
            
                - The cpu controller
- The freezer controller
 
    (*) Topics marked with an asterisk will be covered subject to time
    constraints.
Return to the course overview