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