Case Study Active Linux

Lab Infrastructure

Linux Exam Sandbox Lab

A repeatable Docker lab for practicing Linux administration, networking, services, permissions, logs, and troubleshooting without risking a daily-use machine.

Problem

Reading command notes is not enough for support work. I need a place where I can repeatedly practice Linux basics, service checks, DNS troubleshooting, and break/fix thinking with a clean reset path.

Built Environment

The lab uses Docker Compose plus a PowerShell helper script so I can start, inspect, enter, reset, and tear down the environment from Windows.

.\sandbox.ps1 up
.\sandbox.ps1 status
.\sandbox.ps1 shell ubuntu
.\sandbox.ps1 shell net-client
.\sandbox.ps1 reset
.\sandbox.ps1 down

Inventory

  • Ubuntu 24.04: core CLI, files, permissions, apt, processes, and logs.
  • Debian 12: service practice, cron, web packages, and Debian-family admin.
  • Rocky Linux 9: Red Hat style practice with dnf, rpm, and SELinux command familiarity.
  • Network client: DNS, routing, curl, dig, ping, traceroute, and packet tools.
  • CoreDNS: local exam.lab zone for controlled DNS tests.
  • Nginx web target: internal HTTP service for connectivity checks.
  • Broken-state container: bad permissions and service files for repair drills.

Study Coverage

  • Navigation, text tools, search, files, and archives.
  • Users, groups, sudo, umask, ownership, modes, ACLs, and special bits.
  • Processes, packages, services, logs, cron, and web service checks.
  • DNS resolution, route inspection, HTTP checks, sockets, and packet capture.
  • Timed mock drills and resettable break/fix practice.

What This Demonstrates

  • Comfort working from PowerShell into Linux shell environments.
  • Practical command repetition instead of one-off tutorial work.
  • Understanding that troubleshooting needs a known-good baseline.
  • Documentation habits: objective, environment, procedure, validation, and next step.

Passing Command Output

This sanitized excerpt shows the validation style I use: run a small command, inspect the expected state, and prove the check passed. Host and user details are removed for public posting.

$ uname -s
Linux

$ stat -c "%a %n" /tmp/sw-lab/check.txt
640 /tmp/sw-lab/check.txt

$ grep -q ok /tmp/sw-lab/check.txt && echo validation=PASS
validation=PASS

Screenshot Evidence

Sanitized Linux validation terminal screenshot
Sanitized terminal screenshot showing a Linux shell, permission check, and pass condition.

What Failed, Isolation, Fix

  • What failed: A practice file had the wrong permission state for the intended validation check.
  • How I isolated it: I inspected the target file with stat instead of guessing from symptoms.
  • How I verified the fix: I changed the mode to the expected value and reran the content check until it returned validation=PASS.

Next Step

Add one completed break/fix note for each major topic area: users and groups, service state, DNS lookup, log review, and package repair.