What The Hack - Linux Fundamentals - Coach Guide
Introduction
Welcome to the coach’s guide for the Linux Fundamentals Hackathon. Here you will find links to specific guidance for coaches for each of the challenges.
NOTE: If you are a Hackathon participant, this is the answer guide. Don’t cheat yourself by looking at these during the hack! Go learn something. :)
Coach’s Guides
- Challenge 01: Create a Linux Virtual Machine
- A Linux Virtual machine is the prerequisite for the challenges, so create a new Ubuntu Linux VM
- Challenge 02: Handling Directories
- Learn how to perform common directory operations such as displaying your current directory and listing directory contents.
- Challenge 03: Handling Files
- Learn basic commands about file manipulation such as create, rename, find and remove files.
- Challenge 04: File Contents
- Learn about file content manipulation and discover how to count file lines, display specific lines from a file, and more.
- Challenge 05: Standard File Permissions
- Learn about the Linux standard file permissions and understand how to work with file permissioning on a Linux environment.
- Challenge 06: Process Management
- Your objectives will involve basic process management, such as checking running processes and identifying process ids.
- Challenge 07: Group and User Management
- In this challenge you will learn about the creation of user and groups in a Linux environment.
- Challenge 08: Scripting
- Learn some basic stuff on shell scripting and the usage of some commands such as echo, cut, read and grep.
- Challenge 09: Disks, Partitions and File Systems
- You will be working with disks and partitions and learn about Linux filesystems and commands such as fdisk, mkfs and mount.
- Challenge 10: Logical Volume Manager
- Discover about the Logical Volume Manager on Linux, and how to use commands such as pvcreate, vgcreate, lvrcreate, and more.
- Challenge 11: Package Management
- Learn about package management and common activites such as update package distribution lists, install and uninstall packages.
- Challenge 12: Setting up a Webserver
- In this challenge we will setting up a webserver and deploy a simple PHP application into it. The usage of SSL could be a plus.
- Challenge 13: Protecting a Server
- In this challenge we will discover about how to use Fail2Ban to protect services in a Linux environment.
- Challenge 14: Running Containers
- Your objective in this challenge will be to create a container image from a sample application and make it run using Docker.
Coach Prerequisites
This hack has pre-reqs that a coach is responsible for understanding and/or setting up BEFORE hosting an event.
The guide covers the common preparation steps a coach needs to do before the event.
Student Resources
Before the hack, it is the Coach’s responsibility to ensure students can access the contents of the `/Student/Resources` folder.
Azure Requirements
This hack requires students to have access to an Azure subscription where they can create and consume Azure resources. These Azure requirements should be shared with a stakeholder in the organization that will be providing the Azure subscription(s) that will be used by the students.
- For Challenge 01 an Azure subscription with contributor access will be required.
- For all other challenges, at least a contributor access to a pre-created Ubuntu Linux 20.04 virtual machine will be required.
- For the optional advanced challenge from Challenge 12, these are the requirements:
- A public IP attached to the virtual machine
- Access to the public IP of the virtual machine
- Access to the Azure App Service Domain to get a domain or a acess to the DNS management of an existent domain
Repository Contents
./Coach
- Coach’s Guide and related files
./Coach/Solutions
- Solution files with completed example answers to a challenge
./Student
- Student’s Challenge Guide
./Student/Resources
- Resource files, sample code, scripts, etc. meant to be provided to students. (Must be packaged up by the coach and provided to students at the start of event)