Hi Everyone,
It has been sometime since I posted anything here. Now I think I have something worth to share with you all. I have made a project and open sourced it for everyone to use, share it and grow together.
Learning is unique and personal to everyone!
But the underlying truth is we all learn well when we actively participate and do things with our hands.
Linux is one of it, when one want to learn the standard answer is to read man pages. And they are absolutely right 100%. When we actively read man pages and try the commands. Encounter errors and re-read man pages and re-iterate them to finally have neuron pathways built for that task / command.
If you are part of community and have learning buddies, that would be great. So when you are frustrated you have someone to talk to and gather feedback and perspective with fellow learners!
Tamil Linux Community is doing a great job in that arena! Thanks to all contributors!
Now, Coming back to my project, it is very simple. This idea was originated initially during the tossconf23. But at that time we had no time to implement this.
Recently I found the time and assisted with AI code editors and agents, this project is now a working version rather than a idea in my mind.
The project is to learn linux commands through playing a CTF game. ( If you don’t know what is CTF
is read here )
Basically a text is hidden in a system, your task is to use the skills and tools to fetch it. As the name suggests capture the flag!
Introducing Linux CTF: Hands-On Command Mastery in the Age of AI & Autonomous Agents
Instead of reading passive documentation or following rigid copy-paste tutorials, learners step into realistic, containerized sandboxes, inspect disguised artifacts, analyze server logs, trace processes, and uncover cryptographic flags (FLAG{...}) like a command-line detective.
Why Linux is More Relevant Than Ever in the AI Era
In the era of Generative AI, people often ask: “Will coding and command-line knowledge become obsolete?”
The reality is the exact opposite:
- How LLMs and AI Agents Actually Work: When autonomous coding agents (like Claude Code, Devin, Antigravity, or Copilot Workspace) analyze codebases, run tests, diagnose crashes, or explore unfamiliar projects, they use Linux commands (
grep,find,sort,uniq,ps, pipes|, redirection>). - The “Detective Mindset”: When production breaks or complex bugs arise, waiting for AI hallucinations won’t fix it. Understanding GNU core utilities, standard output streams, process environments, and manual pages (
man) gives you the ability to supercharge or steer AI tools, verify their work, and troubleshoot issues with precision.
Linux isn’t legacy knowledge — it is the runtime fabric of modern computing, cloud infrastructure, and AI systems.
How I Built It: Architectural & Security Highlights
We wanted both repositories to be 100% transparent and public on GitHub so users know exactly what code executes on their machines, without offering a single “cheat code” to players.
Here is how we achieved that:
1. Zero Host Compromise via Rootless Podman
- Traditional Docker setups run a centralized root daemon (
dockerd). We chose Rootless Podman:- User Namespaces (
userns): The root user inside the sandbox maps to your normal, unprivileged user on the host. Even if code achieves root inside the container, it has zero root power on your host. - No Volume Mounts: Containers run strictly on ephemeral storage. Your
$HOME,~/.ssh, and personal files are physically inaccessible. - Network Isolation (
--network none): Containers launch without external or local network access. - Resource & Disk Protections: Memory capped to 512MB, CPU capped to 1 core, PID limits to prevent fork bombs, and a strict 100MB file-size ceiling (
ulimit fsize=100MB) so no runaway script can exhaust your host storage.
- User Namespaces (
2. Kerckhoffs’s Principle (Public Yet Non-Cheatable)
- In cryptography, Kerckhoffs’s Principle states that a system must remain secure even if everything about it is public knowledge except the key.
- Ephemeral Flags: Flags are generated dynamically per session via kernel CSPRNG (
secrets.token_hex(16)andgetrandom()). There are zero static flags in the images or git history. - Podman Secret Mounts: Flags are passed via tmpfs secret mounts (
--secret), leaving zero traces inpodman inspectorps. - In-Container Daemon (
ctf-checkd): State-checking rooms (Rooms 03, 04, 05, 06, 15) communicate with a root-owned background daemon over an AF_UNIX socket (/run/ctf.sock). Verifier binaries contain no hardcoded flags. - Decoy Flood & Brute-Force Throttling: Grep-heavy rooms plant decoy flags with identical entropy, backed by a 300ms throttling penalty on failed guesses to neutralize brute-force loops.
What’s Inside (The Beginner Tier)
The initial release comes with 15 progressive challenge rooms covering the foundational GNU/Linux toolkit:
- Filesystem & Hidden Inspection:
pwd,ls -la,cd,file - File Manipulation & Housekeeping:
cat,cp,mv,mkdir,rm,rmdir - Piping & Redirection:
echo,>,>>,| - Binary & Environment Discovery:
which,whereis,$PATHexploration - Stream & Text Processing:
head,tail,wc -l,tr(ROT13) - Data Filtering & De-duplication:
grep -in,sort,uniq -u,cut - Search & Archiving:
find(size/type qualifiers),tar,gzip - RTFM Mastery: Reading indexed
manandman -kpages
Each room drops you into an interactive terminal with a custom MOTD briefing, hint helper (hint), and instant validation (submit-flag).
Quick Start (Play in 60 Seconds)
Compatible with Linux (Ubuntu, Debian, Fedora, Arch, openSUSE) and macOS (Apple Silicon / Intel).
# 1. Clone the Player Repository
git clone https://github.com/parameshwar-A/linux-ctf.git
cd linux-ctf
# 2. Launch the Cyberpunk TUI Dashboard (automatically handles virtualenv & dependencies)
./scripts/tui.sh
Prefer headless scripting without the TUI? The full CLI is available:
python3 -m linux_ctf.cli list
python3 -m linux_ctf.cli enter 01
python3 -m linux_ctf.cli verify 01 "FLAG{...}"
Repositories & Contributing
Both projects are open-source under permissive licensing:
Player App & TUI Engine: github.com/parameshwar-A/linux-ctf
Challenge Rooms & Author Repo: github.com/parameshwar-A/linux-ctf-rooms
We’d love for community members, students, and system administrators to take it for a spin! Feedback on room difficulty, ideas for intermediate/advanced tiers (networking, permissions, scripting), and pull requests are very welcome.
Looking forward to hearing your thoughts below! ![]()